岗位助手(数字员工)系统状态评估 — 2026-08-10
评估方式:静态结构审计(61 个员工定义 / 39 个 worker 实现 / 路由表)+ 真实运行冒烟测试(runStaffOnce 跑 4 个代表性员工 + 12 条关键词路由)。
结论:整体可用。发现并修复了 1 个会导致全部「能力型」员工瘫痪的硬性 Bug(rule_engine.db 旧 schema),另修复 1 个非致命的覆盖增强缺口。
一、架构与规模
- 入口:
server.js→startDigitalStaff()→boss-scheduler/index.js(统一版 BossScheduler,本地 LiteScheduler)→runStaffOnce(staffId, intent)。 - 调度分发顺序(lite-scheduler
_dispatchWorkerPath):loop/goal→pipeline→worker 脚本→capability 单能力→generic。 - 员工定义源:
server/boss-scheduler/profiles/local.yaml,61 个员工全部 enabled。 - Worker 实现:
server/boss-scheduler/workers/下 39 个 .js 文件;lite-scheduler 的WORKERS映射表 35 个 key。
| 维度 | 数量 | 说明 |
|---|---|---|
| 已定义员工 | 61 | 全部 enabled |
| 有可用 worker 实现 | 43 | key 在 WORKERS 映射且文件存在 |
| 仅 capability(无 worker) | 7 | import / inspect / repair / compare / valuate / collect / identify |
| 无 worker 但含 pipeline/loop 配置 | 11 | 走 pipeline / loop / generic 路径 |
| 孤儿 worker 文件(未被任何员工引用) | 4 | asset-valuator / inspect-worker / repair-worker / report-i18n |
二、关键词路由测试(staff-router.matchStaff)
对 12 条真实业务语句做路由,11 条命中正确,1 条偏差:
| 用户语句 | 命中员工 | 评分 | 备注 |
|---|---|---|---|
| 检查磷酸萃取工序质量数据 | DS-OPS-001 | 20 | ✅ |
| 分析精密转轴成本结构 | DS-COST-001 | 20 | ✅ |
| 库存是否缺料 | DS-STOCK-001 | 10 | ✅ |
| 供应商评审 | DS-VEN-001 | 30 | ✅ |
| 跑白酒行业知识库管道 | DS-KBPIPE-001 | 30 | ✅ |
| 工艺参数异常帮我修复 | DS-SUPPLY-001 | 15 | ⚠️ 应为 DS-REPAIR-001 / DS-INSPECT-001 |
| 系统健康吗 | DS-BOSS-002 | 30 | ✅ |
| 生成经营分析报告 | DS-REPORT-001 | 45 | ✅ |
| 查 NCR 调查单 | DS-NCR-001 | 20 | ✅ |
| SPC 控制图超界 | DS-SPC-001 | 20 | ✅ |
| 今天有什么新闻 | DS-NEWS-001 | 10 | ✅ |
| 写一份产品文案 | DS-CONTENT-001 | 5 | ✅(低分仍命中) |
三、真实运行冒烟测试(runStaffOnce)
全部 success=true,且返回的是真实数据(非空壳):
| 员工 | 耗时 | 结果 |
|---|---|---|
| DS-SYS-001 系统运维师 | 485ms | 系统全部健康 ✅ |
| DS-PROC-DATA-001 工艺数据修复员 | 1.5s | 读 sccapp_process_data.db,发现 PPS 主数据质量问题:工艺文件空 5217 / 孤儿 3230 / 无名 3489 / 字段空 47980,生成 HTML 报告 ✅ |
| DS-INSPECT-001 数据巡检员(capability 路径) | 5.2s | 走 identify→inspect→generate 管线 ✅(修复前此路径瘫痪,见第四节) |
| DS-STOCK-001 库存管家(SCSAI 后端) | 54ms | 查 SCSAI 得 6 个库存项、4 项低于安全水位,预估补货 ¥485,504 ✅ |
注:MTClaw 本地加速服务未启动,能力型员工自动降级到规则引擎(仍可工作,仅更慢)。
四、发现并修复的硬性 Bug(关键)
Bug 1:rule_engine.db 旧 schema 导致规则引擎初始化失败(已修复)
- 现象:所有走「能力 / 规则引擎」路径的员工(import / inspect / repair / compare / valuate / collect / identify 等 7 个 + 规则引擎兜底)启动时报
[sqlite-compat] exec 失败 (rule_engine.db): no such column: rule_id,规则引擎初始化中断,每次执行卡 ~10s/步后降级。 - 根因:
rule_engine.db由旧版代码创建,sciot_corrections/sciot_rule_candidates/sciot_rule_history三张表结构与新版不一致(缺rule_id等列)。_ensureTables用CREATE TABLE IF NOT EXISTS对已有表是 no-op,于是后续的CREATE INDEX ... ON sciot_corrections(rule_id)直接失败。 - 修复:在
server/core/rule-engine.js的initialize()开头新增幂等的_migrateStaleColumns()(对缺列做ALTER TABLE ADD COLUMN,安全保留原数据)。 - 验证:修复后规则引擎初始化成功、覆盖增强 0%→100%、4 个冒烟测试全部通过、0 条 schema 报错。
- 备份:
server/data/rule_engine.db.bak-20260810(修复前)。
Bug 2:sciot_item_types 缺列导致覆盖增强跳过(非致命,已修复)
- 现象:
[RuleEngine] 规则覆盖增强失败(非致命): no such column: is_core_business,五维全覆盖增强不执行。 - 根因:
rule-coverage-enhancer.js只补了category列,漏补is_core_business。 - 修复:在
server/core/rule-coverage-enhancer.js的 Phase 0 中,对category与is_core_business两列统一做「存在性检查 + 缺失补列」。
五、遗留项 / 建议(非阻塞)
- MTClaw 未启动:能力型员工目前走规则引擎兜底。若要提高复杂任务质量,需启动本地 MTClaw 加速服务(
http://127.0.0.1:18790)。 - 18 个无 worker 员工仅抽样验证:capability/pipeline/loop 路径机制已通(inspect 实测 OK),但未逐一跑测。建议对 7 个 capability-only 员工各跑一次确认。
- 4 个孤儿 worker 未接线:
inspect-worker.js/repair-worker.js已存在,但DS-INSPECT-001/DS-REPAIR-001走的是 capability 路径。如需更丰富行为,可在 YAML 中加worker:指向它们。 - server.js 当前未运行:routes 已 grep 无冲突标记(可启动)。HTTP 接口
/api/digital-staff/run复用同一runStaffOnce路径。 - Lite 模式 LLM 默认关闭:纯
generic路径(无 worker/capability/pipeline/loop)的员工依赖 LLM 才能产出实质内容。
六、结论
能用。 框架可启动、可路由、可对大多数员工执行真实任务。此前阻断「能力型」员工(7 个核心质量/数据员工)的规则引擎 schema Bug 已修复并验证。剩余项均为增强项,不影响"端到端可用"。
BossAgents