BossAgents 六大能力增强 — 需求规格文档

BossAgents 六大能力增强 — 需求规格文档

版本:v1.0 | 日期:2026-06-25 | 基于六大能力深度审计分析


1. 组件定位

1.1 核心职责

本组件负责增强 BossAgents CapabilityRuntime 六大能力(identify、create、repair、optimize、compare、generate)的规则驱动深度与关系感知广度,实现从"LLM兜底"到"规则驱动+关系感知"的能力跃迁。

1.2 核心输入

  1. 用户业务请求:通过 CapabilityDispatcher 调度传入的 identify/create/repair/optimize/compare/generate 能力请求
  2. 规则引擎上下文:来自 sciot_rules_v2 表和内置规则的规则定义与条件数据
  3. SCSAI 对象数据:从 SCSAI agent 平台查询/写入的工业对象属性与关系数据
  4. 模板数据:来自 prompt_templates 表的生成模板定义
  5. 关系发现请求:RelationshipCapability 和 RelationshipResolver 的关系识别/发现调用

1.3 核心输出

  1. 能力执行结果:包含规则命中、LLM降级、修复动作、优化建议的结构化响应
  2. SCSAI AML 指令:向 SCSAI agent 提交的 AML 操作指令(含 Relationships 节点)
  3. 关系发现结果:识别查询返回的关联对象信息
  4. 优化执行结果:auto_fix 类型规则自动提交 SCSAI 后的变更确认
  5. 规则命中统计:规则执行历史记录与命中率数据

1.4 职责边界

  • 不负责:LLM Router 的模型选择与降级链路调度(SmartLLMRouter 职责)
  • 不负责:数字员工的任务编排与协作链调度(LiteScheduler 职责)
  • 不负责:记忆系统的存储与检索(MemoryService 职责)
  • 不负责:前端交互与消息通道(Channel 职责)
  • 不负责:数据库 Schema 设计与迁移(基础设施职责)

2. 领域术语

六大能力(Six Capabilities)

: CapabilityRuntime 提供的六个核心业务能力:identify(识别查询)、create(创建)、repair(修复)、optimize(优化)、compare(对比)、generate(生成)。

规则引擎(Rule Engine)

: 基于 sciot_rules_v2 表驱动的业务规则执行引擎,支持多 scope(IDENTIFY/CREATE/CREATE_PRE/CREATE_POST/REPAIR/OPTIMIZE/COMPARE/GENERATE/TRANSFORM/INSPECT)的规则匹配与动作执行。

EARS

: Easy Approach to Requirements Syntax,一种需求语法规范,通过 When/While/If/Where 等关键词结构化描述系统行为。

AML

: SCSAI Markup Language,SCSAI agent 平台的 XML 操作语言,用于对象的增删改查与关系操作。

Relationships 节点

: AML 中描述对象间关联关系的 XML 片段,格式为 ...

关系发现(Relation Discovery)

: 通过 RelationshipCapability.identifyRelations() 和 RelationshipResolver.discoverRelations() 自动识别对象应建立的关联关系。

降级路径(Fallback Path)

: 当规则引擎无法处理时,降级到 LLM Router 进行智能处理的能力执行链路。

内置规则(Builtin Rules)

: 在 _loadBuiltinRules() 中硬编码的默认规则,作为数据库规则的补充和兜底。

auto_fix

: 规则动作类型之一,表示规则匹配后自动执行修复并提交 SCSAI,区别于仅返回建议的 suggest 类型。

create_post

: 对象创建后执行的规则 scope,用于在 SCSAI 创建成功后执行补充操作(如关系创建、编号补全等)。

prompt_templates

: 数据库中存储的提示词模板表,可被 generate/transform scope 规则引用以实现模板化生成。


3. 角色与边界

3.1 核心角色

  • 业务用户:通过 IM/Web/小程序发起业务请求,触发六大能力执行
  • 系统管理员:管理规则配置、模板定义、关系类型映射

3.2 外部系统

  • SCSAI agent:工业对象存储与关系管理平台,六大能力的最终数据目的地
  • SmartLLMRouter:LLM 调度服务,规则引擎降级时的处理方
  • CapabilityDispatcher:统一调度入口,将用户请求路由到 CapabilityRuntime
  • MemoryService:记忆服务,为能力执行提供用户画像和历史上下文

3.3 交互上下文

@startuml
left to right direction

actor "业务用户" as user
rectangle "BossAgents 六大能力增强" as core {
  usecase "CapabilityRuntime\n(identify/create/repair/\noptimize/compare/generate)" as rt
}
system "SCSAI agent" as SCSAI
system "SmartLLMRouter" as llm
system "RelationshipCapability\n+ RelationshipResolver" as rel
system "CapabilityDispatcher" as disp

user --> disp : 业务请求
disp --> rt : 能力调度
rt --> SCSAI : AML操作(含Relationships)
rt --> llm : 规则未命中时降级
rt --> rel : 关系发现/识别
rel --> SCSAI : 关系查询
@enduml

4. DFX约束

4.1 性能

  • 规则引擎单次匹配响应时间 SHALL 不超过 50ms(内置规则路径)
  • LLM 降级路径响应时间 SHALL 不超过 5s(含 SmartLLMRouter 调度)
  • 关系发现集成后 identify 能力总响应时间增量 SHALL 不超过 500ms

4.2 可靠性

  • 规则引擎与 LLM 双路降级 SHALL 保证至少一路可用,不允许同时失败
  • auto_fix 类型规则自动提交 SCSAI 失败时 SHALL 回滚并记录审计日志
  • Relationships 节点生成失败 SHALL 不影响主对象属性的创建/修改

4.3 安全性

  • auto_fix 规则自动提交 SCSAI 前 SHALL 通过权限校验
  • 规则 action_script 执行 SHALL 在安全沙箱(vm.createContext)中运行
  • 关系发现结果 SHALL 不泄露跨租户的对象信息

4.4 可维护性

  • 新增内置规则 SHALL 遵循现有 _loadBuiltinRules() 的注册模式
  • 规则命中统计 SHALL 实时更新 sciot_rules_v2.hit_countlast_hit_at
  • 能力增强的变更 SHALL 记录到 sciot_rule_history

4.5 兼容性

  • 新增内置规则 SHALL 不破坏现有数据库规则的执行优先级
  • AMLGenerator 输出格式变更 SHALL 与 AMLBuilder 保持一致
  • identify 能力集成关系发现 SHALL 保持现有无关系返回的兼容性

5. 核心能力

5.1 generate 能力规则驱动增强(P0-1)

5.1.1 业务规则

  1. generate 内置规则注册:系统 SHALL 为 GENERATE scope 注册内置规则,实现基于模板的规则驱动生成。

a. 验收条件:When 用户调用 generate 能力且规则引擎可用,the RuleEngine SHALL 匹配 GENERATE scope 内置规则并返回模板化生成结果。

  1. transform 内置规则注册:系统 SHALL 为 TRANSFORM scope 注册内置规则,实现数据转换的规则驱动处理。

a. 验收条件:When 用户调用 generate 能力并指定 transform 操作,the RuleEngine SHALL 匹配 TRANSFORM scope 内置规则并返回转换结果。

  1. 模板化生成:generate 规则 SHALL 引用 prompt_templates 表中的模板,通过 prompt_template_id 字段关联。

a. 验收条件:When generate 规则配置了 prompt_template_id,the RuleEngine SHALL 从 prompt_templates 表加载模板并填充变量后作为生成指令。

  1. 复杂对象类专用规则:系统 SHALL 为 ECO、BOM、Document 等复杂 ItemType 注册专用 generate 规则。

a. 验收条件:When 用户请求生成 ECO 类型对象,the RuleEngine SHALL 匹配 ECO 专用 generate 规则并返回结构化的生成模板。

  1. 禁止项:generate 规则 SHALL NOT 直接硬编码生成内容,必须通过模板或 action_script 实现。

a. 验收条件:When 审计 generate 内置规则,each 规则 SHALL 引用 prompt_template_id 或包含 action_script,而非硬编码输出。

5.1.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re
database "prompt_templates" as pt
participant "SmartLLMRouter" as llm
participant "SCSAI" as SCSAI

user -> rt : generate(item_type, data)
rt -> re : executeGenerate(context)
re -> re : 匹配 GENERATE scope 规则
alt 规则命中
  re -> pt : 加载 prompt_template
  pt --> re : 模板内容
  re -> re : 填充模板变量
  re --> rt : 模板化生成结果
else 规则未命中
  re --> rt : executed=false
  rt -> llm : LLM降级生成
  llm --> rt : LLM生成结果
end
rt --> user : 生成结果
@enduml

5.1.3 异常场景

  1. 模板不存在

a. 触发条件:generate 规则引用的 prompt_template_idprompt_templates 表中不存在

b. 系统行为:跳过该规则,继续匹配下一条规则

c. 用户感知:无感知,降级到 LLM 生成

  1. 模板变量缺失

a. 触发条件:模板中引用的变量在 context 中不存在

b. 系统行为:用空字符串替换缺失变量,记录 WARNING 日志

c. 用户感知:生成结果中对应变量位置为空

  1. 所有 generate 规则均未命中

a. 触发条件:GENERATE scope 无匹配规则

b. 系统行为:降级到 SmartLLMRouter

c. 用户感知:返回 LLM 生成结果,source 标记为 llm_router


5.2 AMLGenerator Relationships 支持(P0-2)

5.2.1 业务规则

  1. Relationships 节点输出:AMLGenerator._buildAML() SHALL 在生成 AML 时包含 节点。

a. 验收条件:When 输入数据包含 relationships 字段,the AMLGenerator SHALL 在 AML 输出中包含 节点及其子项。

  1. 关系项格式:Relationships 节点中的每个关系项 SHALL 符合 SCSAI AML 标准,包含 typeaction 和相关属性。

a. 验收条件:When 生成包含关系的 AML,each Relationship Item SHALL 包含 type 属性、action 属性和必要的属性字段。

  1. 与 AMLBuilder 一致性:AMLGenerator 的 Relationships 输出格式 SHALL 与 AMLBuilder 保持一致。

a. 验收条件:When 对同一组关系数据分别用 AMLGenerator 和 AMLBuilder 生成 AML,the Relationships 节点结构 SHALL 完全一致。

  1. 空关系兼容:When 输入数据不包含 relationships 字段或为空数组,the AMLGenerator SHALL 不输出 节点。

a. 验收条件:When 输入数据无关系信息,the 生成的 AML SHALL 不包含 标签。

  1. 降级路径关系保持:LLM 降级创建对象时,关系数据 SHALL 通过 AMLGenerator 正确输出到 SCSAI。

a. 验收条件:When CapabilityRuntime.create() 降级到 LLM 路径且 context 包含关系数据,the AMLGenerator SHALL 在 AML 中包含 Relationships 节点。

5.2.2 交互流程

@startuml
actor "CapabilityRuntime" as rt
participant "AMLGenerator" as gen
participant "SCSAI" as SCSAI

rt -> gen : _buildAML(data, schema, options)
gen -> gen : 构建属性 XML
gen -> gen : 检查 data.relationships
alt 存在关系数据
  gen -> gen : 构建 Relationships XML
  gen -> gen : 合并属性+关系
else 无关系数据
  gen -> gen : 仅输出属性 XML
end
gen --> rt : 完整 AML(含/不含 Relationships)
rt -> SCSAI : applyAML(aml)
SCSAI --> rt : 操作结果
@enduml

5.2.3 异常场景

  1. 关系项缺少必要字段

a. 触发条件:relationships 数组中的某个关系项缺少 typeaction 字段

b. 系统行为:跳过该关系项,记录 WARNING 日志,继续处理其他关系项

c. 用户感知:部分关系未创建,日志中有跳过记录

  1. 关系项引用的对象不存在

a. 触发条件:关系项中 related_id 引用的对象在 SCSAI 中不存在

b. 系统行为:SCSAI 返回错误,AMLGenerator 记录错误但不中断主对象创建

c. 用户感知:主对象创建成功但部分关系创建失败,返回结果中包含关系创建错误信息


5.3 identify 能力集成关系发现(P0-3)

5.3.1 业务规则

  1. 关系发现集成:CapabilityRuntime.identify() SHALL 在识别查询时调用 RelationshipCapability.identifyRelations() 获取关联信息。

a. 验收条件:When 用户执行 identify 查询且查询返回对象数据,the CapabilityRuntime SHALL 同时调用 identifyRelations() 并将关系信息附加到返回结果中。

  1. 关系信息附加格式:identify 返回结果 SHALL 包含 related_objects 字段,存储关系发现的结果。

a. 验收条件:When identify 查询成功且关系发现返回结果,the 响应中 SHALL 包含 related_objects 数组,每个元素包含 relationship_typerelated_itemdirection 字段。

  1. 关系发现失败不影响主查询:RelationshipCapability.identifyRelations() 调用失败时,SHALL 不影响 identify 主查询结果的返回。

a. 验收条件:When identifyRelations() 抛出异常,the identify 查询 SHALL 正常返回主结果,related_objects 字段为空数组,日志记录关系发现失败原因。

  1. 关系发现可选控制:identify 方法 SHALL 支持通过 options.includeRelations 参数控制是否执行关系发现。

a. 验收条件:When 调用 identify 时传入 includeRelations: false,the CapabilityRuntime SHALL 跳过关系发现调用。

  1. 关系发现性能约束:关系发现调用 SHALL 设置超时限制,避免长时间阻塞主查询。

a. 验收条件:When identifyRelations() 执行超过 2 秒,the CapabilityRuntime SHALL 取消关系发现并返回主结果。

5.3.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re
participant "RelationshipCapability" as rc
participant "SmartLLMRouter" as llm

user -> rt : identify(context, options)
rt -> re : executeIdentify(context)
re --> rt : 识别结果

rt -> rc : identifyRelations(item_type, item_data)
rc --> rt : 关联对象列表

alt 关系发现成功
  rt -> rt : 合并识别结果+关系信息
else 关系发现失败/超时
  rt -> rt : 仅返回识别结果
end

rt --> user : identify 结果(含 related_objects)
@enduml

5.3.3 异常场景

  1. RelationshipCapability 不可用

a. 触发条件:RelationshipCapability 初始化失败或 sciot_import.db 不可用

b. 系统行为:跳过关系发现,返回纯识别结果

c. 用户感知:返回结果中 related_objects 为空数组,source 标记为 rule_engine_only

  1. 关系发现超时

a. 触发条件:identifyRelations() 执行超过 2 秒

b. 系统行为:取消关系发现 Promise,返回主查询结果

c. 用户感知:返回结果中 related_objects 为空数组,日志记录超时

  1. 关系发现返回大量关联

a. 触发条件:关系发现返回超过 50 个关联对象

b. 系统行为:截取前 20 个关联对象,附加 has_more: true 标记

c. 用户感知:返回部分关联对象,提示可进一步查询


5.4 compare 能力关系层对比(P1-1)

5.4.1 业务规则

  1. Relationships 差异检测:RuleEngine._computeFieldDiffs() SHALL 支持 Relationships 节点的差异对比。

a. 验收条件:When 对比两个包含 Relationships 的对象,the _computeFieldDiffs() SHALL 输出关系层的差异(新增关系、删除关系、修改关系属性)。

  1. 关系差异分类:关系差异 SHALL 按以下类型分类:relation_addedrelation_removedrelation_modified

a. 验收条件:When 检测到关系差异,each 差异项 SHALL 包含 change_type 字段,值为 relation_added/relation_removed/relation_modified 之一。

  1. 关系差异详情:每个关系差异项 SHALL 包含 relationship_typerelated_item_typerelated_item_id 和变更详情。

a. 验收条件:When 输出关系差异,each 差异项 SHALL 包含 relationship_typerelated_item_typerelated_item_id 字段,以及变更前后的值。

  1. 与字段差异合并输出:关系差异 SHALL 与字段差异统一输出在 field_diffs 数组中,通过 change_type 前缀区分。

a. 验收条件:When executeCompare() 返回结果,the field_diffs 数组 SHALL 同时包含属性差异和关系差异,关系差异的 change_typerelation_ 前缀标识。

5.4.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re

user -> rt : compare(context)
rt -> re : executeCompare(context)
re -> re : 查询对象A和对象B
re -> re : _computeFieldDiffs(属性)
re -> re : _computeRelationDiffs(关系)
re -> re : 合并属性差异+关系差异
re --> rt : 对比结果(含关系差异)
rt --> user : 对比结果
@enduml

5.4.3 异常场景

  1. 对象无 Relationships 数据

a. 触发条件:对比的对象不包含 Relationships 节点

b. 系统行为:跳过关系差异检测,仅返回属性差异

c. 用户感知:对比结果中无关系差异项

  1. 关系类型不匹配

a. 触发条件:两个对象的关系类型集合不同

b. 系统行为:将不匹配的关系类型标记为 relation_addedrelation_removed

c. 用户感知:对比结果中显示关系类型的新增和删除


5.5 optimize 能力自动执行增强(P1-2)

5.5.1 业务规则

  1. auto_fix 类型优化规则:系统 SHALL 支持 action_type: 'auto_fix' 的优化规则,优化结果自动提交 SCSAI。

a. 验收条件:When optimize 规则的 action_typeauto_fix 且规则匹配成功,the RuleEngine SHALL 自动将优化变更提交到 SCSAI。

  1. 自动执行前置校验:auto_fix 优化规则自动提交前 SHALL 校验变更的影响范围和安全性。

a. 验收条件:When auto_fix 优化规则准备自动提交,the RuleEngine SHALL 验证变更字段列表不包含受保护字段(如 idcreated_bycreated_on)。

  1. 自动执行结果确认:auto_fix 优化规则自动提交后 SHALL 返回 SCSAI 的操作确认结果。

a. 验收条件:When auto_fix 优化规则自动提交 SCSAI 成功,the 返回结果 SHALL 包含 auto_applied: true 和 SCSAI 返回的 item_id

  1. 自动执行失败回滚:auto_fix 优化规则自动提交失败时 SHALL 记录错误并返回失败信息。

a. 验收条件:When auto_fix 优化规则自动提交 SCSAI 失败,the 返回结果 SHALL 包含 auto_applied: falseerror 信息和原始建议内容。

  1. suggest 与 auto_fix 共存:同一 scope 下 SHALL 允许 suggest 和 auto_fix 规则共存,按优先级依次执行。

a. 验收条件:When 同一 ItemType 同时存在 suggest 和 auto_fix 优化规则,the RuleEngine SHALL 按优先级依次执行,suggest 规则返回建议,auto_fix 规则自动执行。

5.5.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re
participant "SCSAI" as SCSAI

user -> rt : optimize(context)
rt -> re : executeOptimize(context)
re -> re : 匹配 OPTIMIZE scope 规则

loop 遍历匹配规则
  alt action_type = suggest
    re --> rt : 优化建议
  else action_type = auto_fix
    re -> re : 前置校验
    re -> SCSAI : applyAML(优化AML)
    SCSAI --> re : 操作结果
    re --> rt : 自动执行结果
  end
end

rt --> user : 优化结果(含建议+自动执行)
@enduml

5.5.3 异常场景

  1. 受保护字段变更被阻止

a. 触发条件:auto_fix 规则的变更列表包含受保护字段(id、created_by 等)

b. 系统行为:拒绝自动提交,降级为 suggest 返回

c. 用户感知:返回优化建议而非自动执行结果,提示"涉及受保护字段,需人工确认"

  1. SCSAI 提交冲突

a. 触发条件:auto_fix 提交时对象已被其他操作修改

b. 系统行为:记录冲突信息,返回 suggest 结果

c. 用户感知:返回优化建议,提示"数据已变更,请重新评估"


5.6 repair 能力关系修复增强(P1-3)

5.6.1 业务规则

  1. 关系修复 AML 生成:RuleEngine._buildRepairAML() SHALL 支持在修复 AML 中包含 Relationships 节点。

a. 验收条件:When repair 规则的修复变更包含关系操作(创建/修改关系),the _buildRepairAML() SHALL 在 AML 中输出 节点。

  1. 关系创建支持:repair 能力 SHALL 支持在修复时同时创建新的关系。

a. 验收条件:When repair 规则的 action_config 包含 add_relations 指令,the RuleEngine SHALL 在修复 AML 中添加关系创建的 Item 节点。

  1. 关系修改支持:repair 能力 SHALL 支持在修复时修改已有关系的属性。

a. 验收条件:When repair 规则的 action_config 包含 edit_relations 指令,the RuleEngine SHALL 在修复 AML 中添加关系编辑的 Item 节点(action="edit")。

  1. 属性修复与关系修复合并:属性修复和关系修复 SHALL 在同一条 AML 中提交,确保原子性。

a. 验收条件:When repair 同时涉及属性修复和关系修复,the 生成的 AML SHALL 在同一个 节点内同时包含属性变更和 Relationships 节点。

5.6.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re
participant "SCSAI" as SCSAI

user -> rt : repair(context)
rt -> re : executeRepair(context)
re -> re : 匹配 REPAIR scope 规则
re -> re : 收集属性修复变更
re -> re : 收集关系修复变更
re -> re : _buildRepairAML(属性+关系)
re -> SCSAI : applyAML(修复AML)
SCSAI --> re : 操作结果
re --> rt : 修复结果
rt --> user : 修复完成
@enduml

5.6.3 异常场景

  1. 关系修复引用无效对象

a. 触发条件:关系修复中引用的 related_id 在 SCSAI 中不存在

b. 系统行为:SCSAI 返回错误,整体修复失败

c. 用户感知:返回修复失败错误,提示"关联对象不存在"

  1. 关系修复与属性修复部分成功

a. 触发条件:属性修复成功但关系修复失败

b. 系统行为:SCSAI 事务回滚,属性修复也撤销

c. 用户感知:返回修复失败,提示"关系修复失败导致整体回滚"


5.7 create_post 规则扩展(P1-4)

5.7.1 业务规则

  1. ECO 创建后规则:系统 SHALL 为 ECO ItemType 注册 CREATE_POST scope 内置规则,处理工程变更单创建后的补充操作。

a. 验收条件:When ECO 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 ECO 专用 CREATE_POST 规则,自动创建 ECO Affected Item 关系。

  1. BOM 创建后规则:系统 SHALL 为 BOM ItemType 注册 CREATE_POST scope 内置规则,处理物料清单创建后的结构验证和关系补全。

a. 验收条件:When BOM 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 BOM 专用 CREATE_POST 规则,验证 BOM 结构完整性并补全缺失关系。

  1. Document 创建后规则:系统 SHALL 为 Document ItemType 注册 CREATE_POST scope 内置规则,处理文档创建后的分类和关联操作。

a. 验收条件:When Document 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Document 专用 CREATE_POST 规则,自动关联到对应的项目或产品。

  1. Part 创建后规则:系统 SHALL 为 Part ItemType 注册 CREATE_POST scope 内置规则,处理零件创建后的编号规范和关系建立。

a. 验收条件:When Part 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Part 专用 CREATE_POST 规则,验证编号格式并建立与 BOM 的默认关系。

  1. Vendor 创建后规则:系统 SHALL 为 Vendor ItemType 注册 CREATE_POST scope 内置规则,处理供应商创建后的资质关联和分类。

a. 验收条件:When Vendor 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Vendor 专用 CREATE_POST 规则,自动创建供应商分类关系。

  1. create_post 规则执行时序:CREATE_POST 规则 SHALL 在 SCSAI 主对象创建成功后、返回结果前执行。

a. 验收条件:When create 流程执行,the CREATE_POST 规则 SHALL 在 SCSAI 返回主对象 ID 后触发,且在最终返回给用户前完成。

5.7.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re
participant "SCSAI" as SCSAI

user -> rt : create(context)
rt -> re : executeCreate(context)
re -> SCSAI : applyAML(创建AML)
SCSAI --> re : 主对象ID
re -> re : 匹配 CREATE_POST 规则
re -> re : 执行 CREATE_POST 规则
re -> SCSAI : applyAML(后置AML)
SCSAI --> re : 后置操作结果
re --> rt : 创建结果(含后置操作)
rt --> user : 创建完成
@enduml

5.7.3 异常场景

  1. CREATE_POST 规则执行失败

a. 触发条件:CREATE_POST 规则执行抛出异常

b. 系统行为:主对象创建不回滚,记录后置规则失败日志

c. 用户感知:主对象创建成功,返回结果中包含 post_action_warning 提示后置操作失败

  1. CREATE_POST 规则导致的 SCSAI 操作失败

a. 触发条件:CREATE_POST 规则提交的 AML 被 SCSAI 拒绝

b. 系统行为:主对象保留,记录 SCSAI 错误信息

c. 用户感知:主对象创建成功,但关系/补充操作未完成,需手动处理


5.8 identify 内置规则扩展(P2-1)

5.8.1 业务规则

  1. Part 识别规则:系统 SHALL 为 Part ItemType 注册专用 IDENTIFY scope 内置规则。

a. 验收条件:When 用户查询 Part 类型对象,the RuleEngine SHALL 匹配 Part 专用识别规则,返回包含零件属性模板和分类信息的识别结果。

  1. BOM 识别规则:系统 SHALL 为 BOM ItemType 注册专用 IDENTIFY scope 内置规则。

a. 验收条件:When 用户查询 BOM 类型对象,the RuleEngine SHALL 匹配 BOM 专用识别规则,返回包含 BOM 结构和层级信息的识别结果。

  1. ECO 识别规则:系统 SHALL 为 ECO ItemType 注册专用 IDENTIFY scope 内置规则。

a. 验收条件:When 用户查询 ECO 类型对象,the RuleEngine SHALL 匹配 ECO 专用识别规则,返回包含变更影响范围和审批状态的识别结果。

  1. Vendor 识别规则:系统 SHALL 为 Vendor ItemType 注册专用 IDENTIFY scope 内置规则。

a. 验收条件:When 用户查询 Vendor 类型对象,the RuleEngine SHALL 匹配 Vendor 专用识别规则,返回包含供应商评分和资质信息的识别结果。

  1. Document 识别规则:系统 SHALL 为 Document ItemType 注册专用 IDENTIFY scope 内置规则。

a. 验收条件:When 用户查询 Document 类型对象,the RuleEngine SHALL 匹配 Document 专用识别规则,返回包含文档分类和关联对象的识别结果。

5.8.2 交互流程

@startuml
actor "用户" as user
participant "CapabilityRuntime" as rt
participant "RuleEngine" as re

user -> rt : identify(item_type, query)
rt -> re : executeIdentify(context)
re -> re : 匹配通用 IDENTIFY 规则
re -> re : 匹配 ItemType 专用 IDENTIFY 规则
alt 专用规则命中
  re --> rt : 专用识别结果(含类型特有信息)
else 仅通用规则命中
  re --> rt : 通用识别结果
end
rt --> user : 识别结果
@enduml

5.8.3 异常场景

  1. 专用规则条件不匹配

a. 触发条件:ItemType 专用识别规则的条件与查询上下文不匹配

b. 系统行为:降级到通用识别规则

c. 用户感知:返回通用识别结果,source 标记为 builtin-identify-001


5.9 RelationshipResolver SCSAI 关系查询增强(P2-2)

5.9.1 业务规则

  1. SCSAI 已有关系查询:RelationshipResolver.discoverRelations() SHALL 在关系发现时查询 SCSAI 中已存在的关系。

a. 验收条件:When discoverRelations() 执行关系发现,the RelationshipResolver SHALL 先查询 SCSAI 获取对象已有的关系列表,避免重复创建。

  1. 去重逻辑:discoverRelations() SHALL 将 RelationshipCapability 识别的候选关系与 SCSAI 已有关系进行去重。

a. 验收条件:When 候选关系与 SCSAI 已有关系重复,the discoverRelations() SHALL 在返回结果中标记 already_exists: true,不纳入待创建列表。

  1. 已有关系信息附加:discoverRelations() 返回结果 SHALL 包含 SCSAI 已有关系的信息。

a. 验收条件:When discoverRelations() 返回结果,the 结果 SHALL 包含 existing_relations 数组,列出 SCSAI 中已存在的关系。

  1. SCSAI 查询失败容错:SCSAI 关系查询失败时 SHALL 不影响 RelationshipCapability 的本地关系发现。

a. 验收条件:When SCSAI 关系查询超时或失败,the discoverRelations() SHALL 继续执行本地关系发现,existing_relations 为空数组。

5.9.2 交互流程

@startuml
actor "CapabilityRuntime" as rt
participant "RelationshipResolver" as rr
participant "SCSAI" as SCSAI
participant "RelationshipCapability" as rc

rt -> rr : discoverRelations(item_type, items)
rr -> SCSAI : 查询已有关系
SCSAI --> rr : 已有关系列表
rr -> rc : identifyRelations(item_type, item_data)
rc --> rr : 候选关系列表
rr -> rr : 去重:候选 vs 已有
rr --> rt : 发现结果(含 existing_relations + new_relations)
@enduml

5.9.3 异常场景

  1. SCSAI 查询超时

a. 触发条件:SCSAI 关系查询超过 3 秒未响应

b. 系统行为:取消 SCSAI 查询,仅返回本地关系发现结果

c. 用户感知:existing_relations 为空,可能包含重复关系的候选

  1. SCSAI 返回格式异常

a. 触发条件:SCSAI 返回的关系数据无法解析

b. 系统行为:跳过 SCSAI 关系列表,仅使用本地发现结果

c. 用户感知:existing_relations 为空,日志记录解析错误


6. 数据约束

6.1 规则对象(sciot_rules_v2)

  1. id:唯一标识,格式为 builtin-{scope}-{序号},如 builtin-generate-001
  2. scope:必须为 RULE_SCOPES 枚举值之一(IDENTIFY/CREATE/CREATE_PRE/CREATE_POST/REPAIR/OPTIMIZE/COMPARE/GENERATE/TRANSFORM/INSPECT)
  3. item_type_name:ItemType 专用规则必须填写,通用规则为 null
  4. action_type:必须为 suggestauto_fixblockwarn 之一
  5. priority:P0 > P1 > P2,同优先级按 id 排序
  6. is_builtin:内置规则为 1,数据库规则为 0
  7. is_active:规则启用状态,默认为 1

6.2 关系发现结果(discoverRelations 返回值)

  1. existing_relations:SCSAI 已有关系数组,每个元素包含 relationship_typerelated_idrelated_type
  2. new_relations:待创建关系数组,每个元素包含 relationship_typerelated_item_typerelated_item_idaction
  3. already_exists:布尔标记,当候选关系与已有关系重复时为 true

6.3 identify 返回结果(含关系信息)

  1. related_objects:关联对象数组,每个元素包含 relationship_typerelated_itemdirection
  2. has_more:布尔标记,当关联对象超过 20 个时为 true
  3. source:结果来源标记,值为 rule_enginellm_routerrule_engine_only 之一

6.4 AML Relationships 节点

  1. Relationships:XML 节点,包含零到多个 子节点
  2. Relationship Item:必须包含 type 属性(关系类型名)和 action 属性(add/edit/delete)
  3. related_id:关系引用的对象 ID,必须是 SCSAI 标准 22 位格式
  4. properties:关系属性,格式与主对象属性一致

6.5 compare 差异结果(含关系差异)

  1. field_diffs:统一差异数组,同时包含属性差异和关系差异
  2. change_type:属性差异为 added/removed/modified,关系差异为 relation_added/relation_removed/relation_modified
  3. relationship_type:关系差异项必须包含此字段,标识关系类型名
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁