任意对象六能力覆盖 — 探查与数据源统一记录(2026-07-12)
用户意图
"现已能识别/创建/修复/优化/比对/生成对象,想实现任意对象都能走这六能力。"
已完成(本次)
- SCSAI 2379 条规则拉取至本地标准库
server/data/sciot_import.db(只读同步,不动 SCSAI)。
- 脚本:
server/scripts/sync-rules-SCSAI-to-local.js(分页拉取 + INSERT OR REPLACE 去重) - 结果:标准库从 2367 → 含 2379 条 SCSAI 规则(gen-* 前缀,与 builtin 不冲突)
- 补齐 32 条独有 builtin 规则到标准库(之前只在 rule_engine.db,标准库缺)。
- 脚本:
server/scripts/merge-builtin-raw.js(用原始 sql.js 绕过 db-adapter debounce 落盘坑) - 结果:标准库
sciot_rules_v2从 2367 → 2399 条(76 builtin + 2323 SCSAI)
- 引擎 init 时从标准库合并 SCSAI 规则:改
rule-engine.js,_syncBuiltinRules之后新增_mergeStdRules(),启动时把标准库 2323 条 SCSAI 规则 INSERT 进引擎运行时库。
- 验证:
[RuleEngine] 从标准库合并了 2323 条规则(含 SCSAI 全量)✅ - getRules 实际查到合并后数据(identify/Part → 2 条,validate/Part → 6 条)
关键发现(阻断"任意对象"的真正瓶颈)
- SCSAI 2379 条规则执行体不兼容:它们是
gen-*前缀、用bossagent_generated_aml当执行体,引擎_evaluateCondition不认,matched 但不产生结果(噪音,非能力)。 - 引擎运行时库
rule_engine.db元数据覆盖太窄:
sciot_properties仅 276 个 ItemType(2821 字段)- 标准库
sciot_import.db的sciot_properties覆盖 1204 个 ItemType rule_engine.db的is_required=1只有 12 条 → 规则工厂"必填校验"基本空转
- 规则工厂模式已存在且是"任意对象"的正解:
rule-engine.js内置通配规则(item_type_name=null):
builtin-generic-required-check(必填校验,依赖 sciott_properties.is_required / templates.required_fields)builtin-generic-list-check/builtin-generic-length-check/builtin-generic-defaults/builtin-generic-sequence-gen- 这些规则通过
_injectTypeContext从sciot_properties注入该 ItemType 的字段约束,对任何有元数据的 ItemType 生效。
- 双 DB 历史坑再现:
createDatabaseFresh返回的实例与引擎this.db可能是不同实例;db-adapter 的save()是 debounce,进程快速退出会丢写(必须用原始 sql.js 或save()/close 强制落盘)。
结论
- 六能力框架完整,规则工厂机制支持任意 ItemType。
- 但引擎运行时库元数据覆盖窄(276 vs 1204)、必填定义缺失 → 规则工厂对"任意对象"目前基本空转。
- 让"任意对象"真正可用 = 引擎 init 时同步全量元数据(sciot_properties/templates/list_values 从标准库→引擎库),使规则工厂覆盖 1204 类。必填校验还需可靠的必填定义源(SCSAI 模板或手动补)。
待决策
- A) 同步全量元数据让规则工厂覆盖 1204 类(推荐,低风险、 additive)
- B) 适配引擎执行 SCSAI 2379 条的 generated_aml(工作量大,且 SCSAI 规则语义未必契合本地引擎)
- C) 未知类型走 LLM 动态生成规则
- 必填字段定义源:从 SCSAI 抓每类 required_fields,还是接受"任意对象仅做 list/长度/默认值校验,必填靠核心类已补数据"?
修改文件
server/core/rule-engine.js:initialize()加await this._mergeStdRules();新增_mergeStdRules()从标准库合并 SCSAI 规则server/scripts/sync-rules-SCSAI-to-local.js(新增,只读同步脚本)server/scripts/merge-builtin-raw.js(新增,补齐 builtin 到标准库)server/data/sciot_import.db(2367 → 2399 条规则)
BossAgents