BossAgents 六大能力增强 — 需求规格文档
版本:v1.0 | 日期:2026-06-25 | 基于六大能力深度审计分析
1. 组件定位
1.1 核心职责
本组件负责增强 BossAgents CapabilityRuntime 六大能力(identify、create、repair、optimize、compare、generate)的规则驱动深度与关系感知广度,实现从"LLM兜底"到"规则驱动+关系感知"的能力跃迁。
1.2 核心输入
- 用户业务请求:通过 CapabilityDispatcher 调度传入的 identify/create/repair/optimize/compare/generate 能力请求
- 规则引擎上下文:来自
sciot_rules_v2表和内置规则的规则定义与条件数据 - SCSAI 对象数据:从 SCSAI agent 平台查询/写入的工业对象属性与关系数据
- 模板数据:来自
prompt_templates表的生成模板定义 - 关系发现请求:RelationshipCapability 和 RelationshipResolver 的关系识别/发现调用
1.3 核心输出
- 能力执行结果:包含规则命中、LLM降级、修复动作、优化建议的结构化响应
- SCSAI AML 指令:向 SCSAI agent 提交的 AML 操作指令(含 Relationships 节点)
- 关系发现结果:识别查询返回的关联对象信息
- 优化执行结果:auto_fix 类型规则自动提交 SCSAI 后的变更确认
- 规则命中统计:规则执行历史记录与命中率数据
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_count和last_hit_at - 能力增强的变更 SHALL 记录到
sciot_rule_history表
4.5 兼容性
- 新增内置规则 SHALL 不破坏现有数据库规则的执行优先级
- AMLGenerator 输出格式变更 SHALL 与 AMLBuilder 保持一致
- identify 能力集成关系发现 SHALL 保持现有无关系返回的兼容性
5. 核心能力
5.1 generate 能力规则驱动增强(P0-1)
5.1.1 业务规则
- generate 内置规则注册:系统 SHALL 为 GENERATE scope 注册内置规则,实现基于模板的规则驱动生成。
a. 验收条件:When 用户调用 generate 能力且规则引擎可用,the RuleEngine SHALL 匹配 GENERATE scope 内置规则并返回模板化生成结果。
- transform 内置规则注册:系统 SHALL 为 TRANSFORM scope 注册内置规则,实现数据转换的规则驱动处理。
a. 验收条件:When 用户调用 generate 能力并指定 transform 操作,the RuleEngine SHALL 匹配 TRANSFORM scope 内置规则并返回转换结果。
- 模板化生成:generate 规则 SHALL 引用
prompt_templates表中的模板,通过prompt_template_id字段关联。
a. 验收条件:When generate 规则配置了 prompt_template_id,the RuleEngine SHALL 从 prompt_templates 表加载模板并填充变量后作为生成指令。
- 复杂对象类专用规则:系统 SHALL 为 ECO、BOM、Document 等复杂 ItemType 注册专用 generate 规则。
a. 验收条件:When 用户请求生成 ECO 类型对象,the RuleEngine SHALL 匹配 ECO 专用 generate 规则并返回结构化的生成模板。
- 禁止项: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 异常场景
- 模板不存在
a. 触发条件:generate 规则引用的 prompt_template_id 在 prompt_templates 表中不存在
b. 系统行为:跳过该规则,继续匹配下一条规则
c. 用户感知:无感知,降级到 LLM 生成
- 模板变量缺失
a. 触发条件:模板中引用的变量在 context 中不存在
b. 系统行为:用空字符串替换缺失变量,记录 WARNING 日志
c. 用户感知:生成结果中对应变量位置为空
- 所有 generate 规则均未命中
a. 触发条件:GENERATE scope 无匹配规则
b. 系统行为:降级到 SmartLLMRouter
c. 用户感知:返回 LLM 生成结果,source 标记为 llm_router
5.2 AMLGenerator Relationships 支持(P0-2)
5.2.1 业务规则
- Relationships 节点输出:AMLGenerator._buildAML() SHALL 在生成 AML 时包含
节点。
a. 验收条件:When 输入数据包含 relationships 字段,the AMLGenerator SHALL 在 AML 输出中包含 节点及其子项。
- 关系项格式:Relationships 节点中的每个关系项 SHALL 符合 SCSAI AML 标准,包含
type、action和相关属性。
a. 验收条件:When 生成包含关系的 AML,each Relationship Item SHALL 包含 type 属性、action 属性和必要的属性字段。
- 与 AMLBuilder 一致性:AMLGenerator 的 Relationships 输出格式 SHALL 与 AMLBuilder 保持一致。
a. 验收条件:When 对同一组关系数据分别用 AMLGenerator 和 AMLBuilder 生成 AML,the Relationships 节点结构 SHALL 完全一致。
- 空关系兼容:When 输入数据不包含
relationships字段或为空数组,the AMLGenerator SHALL 不输出节点。
a. 验收条件:When 输入数据无关系信息,the 生成的 AML SHALL 不包含 标签。
- 降级路径关系保持: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 异常场景
- 关系项缺少必要字段
a. 触发条件:relationships 数组中的某个关系项缺少 type 或 action 字段
b. 系统行为:跳过该关系项,记录 WARNING 日志,继续处理其他关系项
c. 用户感知:部分关系未创建,日志中有跳过记录
- 关系项引用的对象不存在
a. 触发条件:关系项中 related_id 引用的对象在 SCSAI 中不存在
b. 系统行为:SCSAI 返回错误,AMLGenerator 记录错误但不中断主对象创建
c. 用户感知:主对象创建成功但部分关系创建失败,返回结果中包含关系创建错误信息
5.3 identify 能力集成关系发现(P0-3)
5.3.1 业务规则
- 关系发现集成:CapabilityRuntime.identify() SHALL 在识别查询时调用 RelationshipCapability.identifyRelations() 获取关联信息。
a. 验收条件:When 用户执行 identify 查询且查询返回对象数据,the CapabilityRuntime SHALL 同时调用 identifyRelations() 并将关系信息附加到返回结果中。
- 关系信息附加格式:identify 返回结果 SHALL 包含
related_objects字段,存储关系发现的结果。
a. 验收条件:When identify 查询成功且关系发现返回结果,the 响应中 SHALL 包含 related_objects 数组,每个元素包含 relationship_type、related_item 和 direction 字段。
- 关系发现失败不影响主查询:RelationshipCapability.identifyRelations() 调用失败时,SHALL 不影响 identify 主查询结果的返回。
a. 验收条件:When identifyRelations() 抛出异常,the identify 查询 SHALL 正常返回主结果,related_objects 字段为空数组,日志记录关系发现失败原因。
- 关系发现可选控制:identify 方法 SHALL 支持通过
options.includeRelations参数控制是否执行关系发现。
a. 验收条件:When 调用 identify 时传入 includeRelations: false,the CapabilityRuntime SHALL 跳过关系发现调用。
- 关系发现性能约束:关系发现调用 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 异常场景
- RelationshipCapability 不可用
a. 触发条件:RelationshipCapability 初始化失败或 sciot_import.db 不可用
b. 系统行为:跳过关系发现,返回纯识别结果
c. 用户感知:返回结果中 related_objects 为空数组,source 标记为 rule_engine_only
- 关系发现超时
a. 触发条件:identifyRelations() 执行超过 2 秒
b. 系统行为:取消关系发现 Promise,返回主查询结果
c. 用户感知:返回结果中 related_objects 为空数组,日志记录超时
- 关系发现返回大量关联
a. 触发条件:关系发现返回超过 50 个关联对象
b. 系统行为:截取前 20 个关联对象,附加 has_more: true 标记
c. 用户感知:返回部分关联对象,提示可进一步查询
5.4 compare 能力关系层对比(P1-1)
5.4.1 业务规则
- Relationships 差异检测:RuleEngine._computeFieldDiffs() SHALL 支持 Relationships 节点的差异对比。
a. 验收条件:When 对比两个包含 Relationships 的对象,the _computeFieldDiffs() SHALL 输出关系层的差异(新增关系、删除关系、修改关系属性)。
- 关系差异分类:关系差异 SHALL 按以下类型分类:
relation_added、relation_removed、relation_modified。
a. 验收条件:When 检测到关系差异,each 差异项 SHALL 包含 change_type 字段,值为 relation_added/relation_removed/relation_modified 之一。
- 关系差异详情:每个关系差异项 SHALL 包含
relationship_type、related_item_type、related_item_id和变更详情。
a. 验收条件:When 输出关系差异,each 差异项 SHALL 包含 relationship_type、related_item_type、related_item_id 字段,以及变更前后的值。
- 与字段差异合并输出:关系差异 SHALL 与字段差异统一输出在
field_diffs数组中,通过change_type前缀区分。
a. 验收条件:When executeCompare() 返回结果,the field_diffs 数组 SHALL 同时包含属性差异和关系差异,关系差异的 change_type 以 relation_ 前缀标识。
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 异常场景
- 对象无 Relationships 数据
a. 触发条件:对比的对象不包含 Relationships 节点
b. 系统行为:跳过关系差异检测,仅返回属性差异
c. 用户感知:对比结果中无关系差异项
- 关系类型不匹配
a. 触发条件:两个对象的关系类型集合不同
b. 系统行为:将不匹配的关系类型标记为 relation_added 或 relation_removed
c. 用户感知:对比结果中显示关系类型的新增和删除
5.5 optimize 能力自动执行增强(P1-2)
5.5.1 业务规则
- auto_fix 类型优化规则:系统 SHALL 支持
action_type: 'auto_fix'的优化规则,优化结果自动提交 SCSAI。
a. 验收条件:When optimize 规则的 action_type 为 auto_fix 且规则匹配成功,the RuleEngine SHALL 自动将优化变更提交到 SCSAI。
- 自动执行前置校验:auto_fix 优化规则自动提交前 SHALL 校验变更的影响范围和安全性。
a. 验收条件:When auto_fix 优化规则准备自动提交,the RuleEngine SHALL 验证变更字段列表不包含受保护字段(如 id、created_by、created_on)。
- 自动执行结果确认:auto_fix 优化规则自动提交后 SHALL 返回 SCSAI 的操作确认结果。
a. 验收条件:When auto_fix 优化规则自动提交 SCSAI 成功,the 返回结果 SHALL 包含 auto_applied: true 和 SCSAI 返回的 item_id。
- 自动执行失败回滚:auto_fix 优化规则自动提交失败时 SHALL 记录错误并返回失败信息。
a. 验收条件:When auto_fix 优化规则自动提交 SCSAI 失败,the 返回结果 SHALL 包含 auto_applied: false、error 信息和原始建议内容。
- 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 异常场景
- 受保护字段变更被阻止
a. 触发条件:auto_fix 规则的变更列表包含受保护字段(id、created_by 等)
b. 系统行为:拒绝自动提交,降级为 suggest 返回
c. 用户感知:返回优化建议而非自动执行结果,提示"涉及受保护字段,需人工确认"
- SCSAI 提交冲突
a. 触发条件:auto_fix 提交时对象已被其他操作修改
b. 系统行为:记录冲突信息,返回 suggest 结果
c. 用户感知:返回优化建议,提示"数据已变更,请重新评估"
5.6 repair 能力关系修复增强(P1-3)
5.6.1 业务规则
- 关系修复 AML 生成:RuleEngine._buildRepairAML() SHALL 支持在修复 AML 中包含 Relationships 节点。
a. 验收条件:When repair 规则的修复变更包含关系操作(创建/修改关系),the _buildRepairAML() SHALL 在 AML 中输出 节点。
- 关系创建支持:repair 能力 SHALL 支持在修复时同时创建新的关系。
a. 验收条件:When repair 规则的 action_config 包含 add_relations 指令,the RuleEngine SHALL 在修复 AML 中添加关系创建的 Item 节点。
- 关系修改支持:repair 能力 SHALL 支持在修复时修改已有关系的属性。
a. 验收条件:When repair 规则的 action_config 包含 edit_relations 指令,the RuleEngine SHALL 在修复 AML 中添加关系编辑的 Item 节点(action="edit")。
- 属性修复与关系修复合并:属性修复和关系修复 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 异常场景
- 关系修复引用无效对象
a. 触发条件:关系修复中引用的 related_id 在 SCSAI 中不存在
b. 系统行为:SCSAI 返回错误,整体修复失败
c. 用户感知:返回修复失败错误,提示"关联对象不存在"
- 关系修复与属性修复部分成功
a. 触发条件:属性修复成功但关系修复失败
b. 系统行为:SCSAI 事务回滚,属性修复也撤销
c. 用户感知:返回修复失败,提示"关系修复失败导致整体回滚"
5.7 create_post 规则扩展(P1-4)
5.7.1 业务规则
- ECO 创建后规则:系统 SHALL 为 ECO ItemType 注册 CREATE_POST scope 内置规则,处理工程变更单创建后的补充操作。
a. 验收条件:When ECO 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 ECO 专用 CREATE_POST 规则,自动创建 ECO Affected Item 关系。
- BOM 创建后规则:系统 SHALL 为 BOM ItemType 注册 CREATE_POST scope 内置规则,处理物料清单创建后的结构验证和关系补全。
a. 验收条件:When BOM 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 BOM 专用 CREATE_POST 规则,验证 BOM 结构完整性并补全缺失关系。
- Document 创建后规则:系统 SHALL 为 Document ItemType 注册 CREATE_POST scope 内置规则,处理文档创建后的分类和关联操作。
a. 验收条件:When Document 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Document 专用 CREATE_POST 规则,自动关联到对应的项目或产品。
- Part 创建后规则:系统 SHALL 为 Part ItemType 注册 CREATE_POST scope 内置规则,处理零件创建后的编号规范和关系建立。
a. 验收条件:When Part 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Part 专用 CREATE_POST 规则,验证编号格式并建立与 BOM 的默认关系。
- Vendor 创建后规则:系统 SHALL 为 Vendor ItemType 注册 CREATE_POST scope 内置规则,处理供应商创建后的资质关联和分类。
a. 验收条件:When Vendor 对象在 SCSAI 创建成功,the RuleEngine SHALL 执行 Vendor 专用 CREATE_POST 规则,自动创建供应商分类关系。
- 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 异常场景
- CREATE_POST 规则执行失败
a. 触发条件:CREATE_POST 规则执行抛出异常
b. 系统行为:主对象创建不回滚,记录后置规则失败日志
c. 用户感知:主对象创建成功,返回结果中包含 post_action_warning 提示后置操作失败
- CREATE_POST 规则导致的 SCSAI 操作失败
a. 触发条件:CREATE_POST 规则提交的 AML 被 SCSAI 拒绝
b. 系统行为:主对象保留,记录 SCSAI 错误信息
c. 用户感知:主对象创建成功,但关系/补充操作未完成,需手动处理
5.8 identify 内置规则扩展(P2-1)
5.8.1 业务规则
- Part 识别规则:系统 SHALL 为 Part ItemType 注册专用 IDENTIFY scope 内置规则。
a. 验收条件:When 用户查询 Part 类型对象,the RuleEngine SHALL 匹配 Part 专用识别规则,返回包含零件属性模板和分类信息的识别结果。
- BOM 识别规则:系统 SHALL 为 BOM ItemType 注册专用 IDENTIFY scope 内置规则。
a. 验收条件:When 用户查询 BOM 类型对象,the RuleEngine SHALL 匹配 BOM 专用识别规则,返回包含 BOM 结构和层级信息的识别结果。
- ECO 识别规则:系统 SHALL 为 ECO ItemType 注册专用 IDENTIFY scope 内置规则。
a. 验收条件:When 用户查询 ECO 类型对象,the RuleEngine SHALL 匹配 ECO 专用识别规则,返回包含变更影响范围和审批状态的识别结果。
- Vendor 识别规则:系统 SHALL 为 Vendor ItemType 注册专用 IDENTIFY scope 内置规则。
a. 验收条件:When 用户查询 Vendor 类型对象,the RuleEngine SHALL 匹配 Vendor 专用识别规则,返回包含供应商评分和资质信息的识别结果。
- 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 异常场景
- 专用规则条件不匹配
a. 触发条件:ItemType 专用识别规则的条件与查询上下文不匹配
b. 系统行为:降级到通用识别规则
c. 用户感知:返回通用识别结果,source 标记为 builtin-identify-001
5.9 RelationshipResolver SCSAI 关系查询增强(P2-2)
5.9.1 业务规则
- SCSAI 已有关系查询:RelationshipResolver.discoverRelations() SHALL 在关系发现时查询 SCSAI 中已存在的关系。
a. 验收条件:When discoverRelations() 执行关系发现,the RelationshipResolver SHALL 先查询 SCSAI 获取对象已有的关系列表,避免重复创建。
- 去重逻辑:discoverRelations() SHALL 将 RelationshipCapability 识别的候选关系与 SCSAI 已有关系进行去重。
a. 验收条件:When 候选关系与 SCSAI 已有关系重复,the discoverRelations() SHALL 在返回结果中标记 already_exists: true,不纳入待创建列表。
- 已有关系信息附加:discoverRelations() 返回结果 SHALL 包含 SCSAI 已有关系的信息。
a. 验收条件:When discoverRelations() 返回结果,the 结果 SHALL 包含 existing_relations 数组,列出 SCSAI 中已存在的关系。
- 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 异常场景
- SCSAI 查询超时
a. 触发条件:SCSAI 关系查询超过 3 秒未响应
b. 系统行为:取消 SCSAI 查询,仅返回本地关系发现结果
c. 用户感知:existing_relations 为空,可能包含重复关系的候选
- SCSAI 返回格式异常
a. 触发条件:SCSAI 返回的关系数据无法解析
b. 系统行为:跳过 SCSAI 关系列表,仅使用本地发现结果
c. 用户感知:existing_relations 为空,日志记录解析错误
6. 数据约束
6.1 规则对象(sciot_rules_v2)
- id:唯一标识,格式为
builtin-{scope}-{序号},如builtin-generate-001 - scope:必须为 RULE_SCOPES 枚举值之一(IDENTIFY/CREATE/CREATE_PRE/CREATE_POST/REPAIR/OPTIMIZE/COMPARE/GENERATE/TRANSFORM/INSPECT)
- item_type_name:ItemType 专用规则必须填写,通用规则为 null
- action_type:必须为
suggest、auto_fix、block、warn之一 - priority:P0 > P1 > P2,同优先级按 id 排序
- is_builtin:内置规则为 1,数据库规则为 0
- is_active:规则启用状态,默认为 1
6.2 关系发现结果(discoverRelations 返回值)
- existing_relations:SCSAI 已有关系数组,每个元素包含
relationship_type、related_id、related_type - new_relations:待创建关系数组,每个元素包含
relationship_type、related_item_type、related_item_id、action - already_exists:布尔标记,当候选关系与已有关系重复时为 true
6.3 identify 返回结果(含关系信息)
- related_objects:关联对象数组,每个元素包含
relationship_type、related_item、direction - has_more:布尔标记,当关联对象超过 20 个时为 true
- source:结果来源标记,值为
rule_engine、llm_router、rule_engine_only之一
6.4 AML Relationships 节点
- Relationships:XML 节点,包含零到多个
子节点 - Relationship Item:必须包含
type属性(关系类型名)和action属性(add/edit/delete) - related_id:关系引用的对象 ID,必须是 SCSAI 标准 22 位格式
- properties:关系属性,格式与主对象属性一致
6.5 compare 差异结果(含关系差异)
- field_diffs:统一差异数组,同时包含属性差异和关系差异
- change_type:属性差异为
added/removed/modified,关系差异为relation_added/relation_removed/relation_modified - relationship_type:关系差异项必须包含此字段,标识关系类型名
BossAgents