AnalysisPlan Spec
表达分析计划的定义语义。AnalysisPlan 是统一 Definition Resource,资源类型为 ANALYSIS_PLAN,用于承载 S5 AnalysisIntent DSL。
资源类型与自然键
| 资源类型 | 自然键 | 说明 |
|---|---|---|
ANALYSIS_PLAN | name | 分析计划名称,workspace 内唯一 |
AnalysisPlanSpecDTO
| 字段 | 类型 | 说明 |
|---|---|---|
name | string | 计划名(必填,对应 fd_analysis_plan.name) |
displayName | string | 显示名称,对应 canonical metadata.displayName |
description | string | 计划描述,对应 canonical metadata.description |
platform | Map<String, Object> | 平台验证产物快照(planHash / sourcePlanId / verifiedRunId 等),仅溯源用 |
intent | Map<String, Object> | 分析意图(AnalysisIntentSpec JSON:goal / inputs / evidence / output / steps) |
定义层只做自然键与 JSON 反序列化,不对
intent做语义校验;结构校验与编译在运行态AnalysisPlanService/IntentValidator/IntentCompiler完成。
AnalysisIntent DSL 概要
| 字段 | 类型 | 说明 |
|---|---|---|
schemaVersion | string | DSL 版本,当前 "1.0" |
goal | string | 分析目标一句话(必填) |
inputs | Map<String, IntentInput> | 入参声明,编译为 START inputParams |
steps | IntentStep[] | 有序步骤;拓扑由编译器按引用推导 |
output | IntentOutput | 结论输出,编译为 END outputMappings |
evidence | string | required(默认,须至少一个 rule 步骤)/ none |
步骤原语按字段存在性判别,一个步骤只声明一种:
| 原语 | 关键字段 | 编译目标 |
|---|---|---|
fact | fact / where / window / select / aggregate / groupBy / take / limit | ONTOLOGY_QUERY |
rule | rule / target / facts / explain | RULE_EVALUATION |
traverse | traverse.from / traverse.id / traverse.path / traverse.direction / traverse.maxDepth / traverse.limit / collect | ONTOLOGY_TRAVERSE |
capability | capability / capabilityVersion / args / purpose | ANALYSIS_OPERATOR |
expert | expert.type / expert.config | 安全子集节点直通 |
loop | loop.iterateOver / loop.body / loop.maxIterations / loop.parallel / loop.concurrency / loop.continueOnError / loop.perItemTimeoutSeconds | LOOP |
完整 DSL 语义、引用/插值规则与示例见 AnalysisIntent DSL 规范(见 docs/pr/pr-116/analysis-intent-dsl.md(内部规范))。
安装与运行态
- Bundle 中通过
analysisPlans提交;安装为运行态草稿,由AnalysisPlanService在运行态执行意图校验与编译。 - 单资源保存:
POST /api/v1/definitions/analysis-plans/{name}:save;也可使用通用入口POST /api/v1/definitions/resources/ANALYSIS_PLAN/{name}:save。 - 发布后
intent的planHash作为冻结标识;platform.workflowSchema为编译缓存,可随compilerVersion重建。
示例
apiVersion: foundry.loambase.ai/v1alpha1
kind: AnalysisPlan
metadata:
name: slow-moving-stock-analysis
displayName: 呆滞库存分析
description: 识别呆滞物料并给出处置建议
spec:
name: slow-moving-stock-analysis
displayName: 呆滞库存分析
description: 识别呆滞物料并给出处置建议
intent:
schemaVersion: "1.0"
goal: 识别呆滞物料并判断是否需要替代/处置
inputs:
material:
type: string
required: true
description: 物料编码
evidence: required
steps:
- id: slow_stock
fact: SL_SlowMovingStock
where:
material: "{{material}}"
is_slow_moving: "X"
select: [plant, slow_moving_days]
take: 1
- id: verdict
rule: [sl_bom_replacement]
target:
object: SL_FactoryMaterial
key: "{{material}}"
output:
verdictFrom: verdict
include: [slow_stock]相关文档
- 核心概念 — CanonicalSpec 与 Bundle
- Bundle API — 分析计划保存与 Bundle 字段
- AnalysisIntent DSL(见
docs/pr/pr-116/analysis-intent-dsl.md(内部规范)) — 意图层完整规范