AnalysisPlan Spec

表达分析计划的定义语义。AnalysisPlan 是统一 Definition Resource,资源类型为 ANALYSIS_PLAN,用于承载 S5 AnalysisIntent DSL。

资源类型与自然键

资源类型自然键说明
ANALYSIS_PLANname分析计划名称,workspace 内唯一

AnalysisPlanSpecDTO

字段类型说明
namestring计划名(必填,对应 fd_analysis_plan.name)
displayNamestring显示名称,对应 canonical metadata.displayName
descriptionstring计划描述,对应 canonical metadata.description
platformMap<String, Object>平台验证产物快照(planHash / sourcePlanId / verifiedRunId 等),仅溯源用
intentMap<String, Object>分析意图(AnalysisIntentSpec JSON:goal / inputs / evidence / output / steps)

定义层只做自然键与 JSON 反序列化,不对 intent 做语义校验;结构校验与编译在运行态 AnalysisPlanService / IntentValidator / IntentCompiler 完成。

AnalysisIntent DSL 概要

字段类型说明
schemaVersionstringDSL 版本,当前 "1.0"
goalstring分析目标一句话(必填)
inputsMap<String, IntentInput>入参声明,编译为 START inputParams
stepsIntentStep[]有序步骤;拓扑由编译器按引用推导
outputIntentOutput结论输出,编译为 END outputMappings
evidencestringrequired(默认,须至少一个 rule 步骤)/ none

步骤原语按字段存在性判别,一个步骤只声明一种:

原语关键字段编译目标
factfact / where / window / select / aggregate / groupBy / take / limitONTOLOGY_QUERY
rulerule / target / facts / explainRULE_EVALUATION
traversetraverse.from / traverse.id / traverse.path / traverse.direction / traverse.maxDepth / traverse.limit / collectONTOLOGY_TRAVERSE
capabilitycapability / capabilityVersion / args / purposeANALYSIS_OPERATOR
expertexpert.type / expert.config安全子集节点直通
looploop.iterateOver / loop.body / loop.maxIterations / loop.parallel / loop.concurrency / loop.continueOnError / loop.perItemTimeoutSecondsLOOP

完整 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(内部规范)) — 意图层完整规范