一、需求与存量功能关系分析
1.1 需求功能与存量功能对比
1.1.1 已实现功能
| 需求功能 | 存量功能 | 代码位置 | 匹配度 |
|---|---|---|---|
| 六大基础能力(identify/create/repair/optimize/compare/generate) | CapabilityRuntime已实现六能力统一接口,规则引擎优先→条件匹配→LLM降级 | server/core/capability-runtime.js | 100% |
| 规则引擎三级防线(create_pre/validate/create_post) | UnifiedRuleEngine v3.0已实现scope分类执行,支持10个作用域 | server/core/rule-engine.js | 100% |
| 规则引擎API路由 | 规则CRUD、执行、导入导出、缓存管理、执行历史已完整实现 | server/routes/rule-engine.js | 100% |
| LLM智能路由(Worker/Solver分工) | LLMRouter已实现多硬件探测、Worker/Solver分层、端侧/云端自动切换 | server/digital-staff/llm-router.js | 100% |
| SmartLLMRouter(36种IntentType) | SmartLLMRouter已实现36种意图类型、关键词匹配、多级降级链路 | server/digital-staff/smart-llm-router.js | 100% |
| YAML Profile数字员工定义 | StaffRegistry从local.yaml加载员工定义,支持pipeline/loop/collaboration/mtclaw配置 | server/boss-scheduler/staff-registry.js | 100% |
| 关键词匹配路由 | StaffRouter已实现完整关键词库(48个员工)、能力模式识别、完成信号 | server/boss-scheduler/staff-router.js | 100% |
| SchedulerFactory(自动降级) | SchedulerFactory已实现MTClaw健康检查、GPU检测、自动降级到BuiltinScheduler | server/scheduler/scheduler-factory.js | 100% |
| MTClawScheduler | 已实现IScheduler接口、MTClaw三层路由、工作流定义加载 | server/scheduler/mtclaw-scheduler.js | 100% |
| BuiltinScheduler | 已实现内置关键词匹配路由、16步工艺优化工作流 | server/scheduler/builtin-scheduler.js | 100% |
| 工作流引擎 | WorkflowEngine已实现状态机执行、步骤路由、异步挂起/恢复 | server/scheduler/workflow-engine.js | 100% |
| 工作流状态持久化 | StatePersistence已实现文件系统持久化、挂起恢复、会话查询 | server/scheduler/state-persistence.js | 100% |
| AI对话×MTClaw前置路由 | scheduler-routes已实现_tryMTClawPreRoute、兼容无MTClaw降级 | server/routes/scheduler-routes.js | 100% |
| 链式协作 | CollaborationChain已实现onTaskCompleted自动触发下游员工 | server/boss-scheduler/collaboration-chain.js | 100% |
| 数据资产估值(三阶段模型) | AssetValuator已实现成本法/收益法/市场法、持久化到asset_valuations表 | server/core/asset-valuator.js | 100% |
| 估值配置 | valuation.yaml已定义三阶段权重(40/40/20)、成本/收益/市场参数 | server/boss-scheduler/profiles/valuation.yaml | 100% |
| MTClaw工具注册 | mtclaw-tools.yaml已定义db_query/check_inventory/calc_bom_cost等工具 | server/boss-scheduler/profiles/mtclaw-tools.yaml | 100% |
| MTClaw Function Router | server.py已实现FastAPI服务、OpenAI兼容接口、三层路由、工具调用 | MTClaw/function_router/server.py | 100% |
| 数字员工Worker脚本 | 20个worker已实现(data-clerk/system-health/procurement/content等) | server/boss-scheduler/workers/ | 100% |
| 健康自愈 | HealthSelfHeal已实现数据库/SCSAI/LLM健康检查和自愈 | server/health-self-heal.js | 100% |
| 规则引擎安全沙箱 | createSafeContext + vm.createContext已实现安全脚本执行 | server/core/rule-engine.js:40-80 | 100% |
| LiteScheduler(本地轻量调度) | 已实现Cron+队列+互斥、CapabilityRuntime集成、五大能力映射 | server/boss-scheduler/lite-scheduler.js | 100% |
| AutoLoopService | 已实现闭环引擎、Skill体验、营销闭环、自进化 | server/core/auto-loop-service.js | 75% |
1.1.2 需要扩展的功能
| 需求功能 | 存量功能 | 差异说明 | 扩展方向 |
|---|---|---|---|
| 43个专业数字员工编排 | local.yaml已定义约30个员工,覆盖采购/BOM/工艺/质量/设备/内容/营销/成本/项目/芯片/数据资产等领域 | 缺少约13个员工定义(数据修复员DS-LOOP-001、价格监控员DS-LOOP-001、目标追踪员DS-LOOP-001等Loop型员工);部分员工缺少pipeline/loop完整配置 | 1. 在local.yaml中补充缺失员工定义 2. 为Loop型员工添加loop配置(trigger/condition/action/max_iterations) 3. 为Pipeline型员工补充完整pipeline步骤定义 |
| Loop闭环引擎三种模式 | AutoLoopService已实现基础闭环逻辑,LiteScheduler已支持cron调度 | 缺少监控型Loop(条件触发持续监控)、目标驱动型Loop(目标达成后执行动作)、自修复型Loop(自动修复+验证循环)的明确分类和配置;Loop配置未与YAML Profile的loop字段完全对齐 | 1. 在LiteScheduler中扩展LoopEngine,支持三种Loop模式 2. YAML Profile的loop字段增加mode字段(monitor/goal_driven/self_repair) 3. 自修复型Loop实现修复后自动校验+重试逻辑 |
| 协同事件onComplete触发 | CollaborationChain已实现链式协作(collaboration.next),但仅支持简单next | 缺少onComplete条件判断(如result.success=true才触发)、缺少任务类型和负载参数传递、缺少循环依赖检测 | 1. 扩展CollaborationChain支持onComplete条件表达式 2. 添加启动时循环依赖检测 3. 支持collaboration.params动态负载 |
| MTClaw加速效果统计 | scheduler-routes已记录_mtclaw_latency,但无聚合统计 | 缺少L1/L2/L3命中分布统计、加速比计算、降级次数统计、MTClaw Stats数据模型持久化 | 1. 新增MTClawStatsCollector统计组件 2. 持久化到mtclaw_stats表 3. 在GET /api/scheduler/status中返回统计信息 |
| Mock数据检测 | 无现有实现 | 全链路闭环演示需要自动扫描执行结果中的mock关键词,确保演示真实性 | 1. 新增MockDataDetector组件 2. 关键词扫描(mock/测试/示例/dummy/placeholder/fake/sample) 3. 集成到演示流程作为内置环节 |
| 全链路闭环演示6阶段 | real-exec.html和closed-loop.html已实现5阶段和6阶段演示页面 | 缺少Step5数据资产化(8类资产估值¥150,000)和Step6私有化部署的真实执行集成;缺少每个阶段真实耗时标注;缺少Mock数据自动检测 | 1. 在演示页面中集成AssetValuator执行 2. 每阶段标注真实测量耗时 3. 演示完成后自动运行MockDataDetector |
| 数据资产8类估值清单 | AssetValuator已实现三阶段估值,但输出粒度为scope级别 | 缺少按8类资产(Part/BOM/Vendor/Document/ECR/ECO/ProcessSpec/Equipment)分别估值的明细输出;总估值目标¥150,000需校准 | 1. 扩展AssetValuator.valuate支持per_asset_type明细 2. 调整估值参数使总估值≈¥150,000 3. 输出8类资产分别估值+总估值 |
| 规则引擎三级防线通过率统计 | 规则引擎已记录审计日志,但缺少通过率聚合 | 缺少create_pre/validate/create_post三级通过率的加权平均计算;目标通过率89%+需要可观测 | 1. 新增RuleEngineStats组件 2. 聚合三级防线通过率 3. 在规则引擎API中暴露通过率指标 |
| 熔断器机制 | SmartLLMRouter已实现基础降级链路,但无熔断器 | 缺少连续降级≥5次触发熔断器、自动禁用故障链路、60s后半开恢复 | 1. 新增CircuitBreaker组件 2. 集成到MTClawScheduler和LLMRouter 3. 实现closed→open→half_open状态机 |
| 调度器状态查询接口 | scheduler-routes已实现GET /api/scheduler/status基础版 | 缺少mtclaw_available/gpu_available/mtclaw_circuit_breaker等状态字段;缺少加速效果指标 | 1. 扩展status接口返回完整状态 2. 包含MTClaw Stats和熔断器状态 |
| 数字员工列表查询接口 | 无独立API | spec要求GET /api/digital-staff/返回员工ID/名称/状态/能力组合 | 1. 新增digital-staff路由 2. 从StaffRegistry读取员工列表 |
| 六大落地案例 | 无现有实现 | 需要展示6个真实客户案例(麻城将军红/罗田气象局/大柴湖移民纪念馆/某省电力公司/军工工艺数据修复/贵州磷化集团) | 1. 新增case-studies.yaml配置文件 2. 新增案例展示API 3. 前端案例展示组件 |
1.1.3 需要新增的功能或接口
数字员工Loop闭环引擎模块
- 输入:YAML Profile的loop配置(mode/trigger/condition/action/max_iterations)
- 输出:Loop执行记录(迭代次数、每次迭代结果、最终状态)
- 核心逻辑:根据loop.mode选择执行策略(monitor/goal_driven/self_repair),循环执行直到条件满足或达到max_iterations
- 依赖:CapabilityRuntime、LiteScheduler
MockDataDetector组件
- 输入:执行结果文本/JSON
- 输出:{ is_mock: boolean, mock_indicators: string[], scanned_at: string }
- 核心逻辑:关键词正则扫描(mock/测试/示例/dummy/placeholder/fake/sample等),返回检测结果
- 依赖:无外部依赖,纯工具模块
MTClawStatsCollector统计组件
- 输入:每次MTClaw调用的路由结果(L1/L2/L3命中、耗时、降级/失败)
- 输出:聚合统计(total_calls/accelerated_calls/l1_hits/l2_hits/l3_hits/acceleration_ratio)
- 核心逻辑:内存累加+定时持久化到SQLite
- 依赖:SQLite(core_runtime.db)
CircuitBreaker熔断器组件
- 输入:每次调用的成功/失败结果
- 输出:熔断器状态(closed/open/half_open)
- 核心逻辑:连续失败≥5次打开熔断器,60s后尝试半开恢复
- 依赖:无外部依赖
数字员工API路由
- GET /api/digital-staff/:返回员工列表(id/name/status/capability/department)
- GET /api/digital-staff/:id:返回员工详情
- 依赖:StaffRegistry
案例展示模块
- GET /api/case-studies/:返回6大落地案例列表
- GET /api/case-studies/:id:返回案例详情
- 依赖:case-studies.yaml配置文件
1.2 存量功能详细分析
CapabilityRuntime(六大基础能力SDK)
接口契约:
identify(itemType, params)→ 4维审计结果(基础完整性/关联完整性/语义质量/生命周期评分+问题清单)create(itemType, data)→ 创建结果(执行create_pre→validate→组装AML→提交SCSAI→create_post)repair(itemType, params)→ 修复结果(Tier1自动/Tier2建议确认/Tier3仅建议)optimize(itemType, params)→ 优化结果(描述润色→命名规范化→分类精化→关联补强→同类对比)compare(itemType, params, mode)→ 比对结果(standard/peer/history三种模式)generate(itemType, params)→ 生成结果(预览→用户确认→输出并关联)
执行策略:规则引擎优先(≤200ms)→ 条件匹配 → LLM降级(≤15s),统计指标记录在_stats对象中。
约束:规则引擎初始化失败时降级到LLM,标记source=llm_fallback_no_rule_engine;LLM调用通过_callLLMViaRouter走Worker/Solver分工。
UnifiedRuleEngine(统一规则引擎v3.0)
接口契约:
execute(scope, context)→ 规则执行结果(匹配规则列表+执行结果)getRulesPage(filters)→ 分页规则列表addRule(rule)/updateRule(id, rule)/deleteRule(id)→ 规则CRUDimportFromAML(amlContent)→ 从AML文件生成规则initialize()→ 初始化规则缓存
业务规则:
- 规则按scope分类(identify/create/create_pre/create_post/repair/optimize/compare/validate/generate/inspect共10个作用域)
- 规则脚本在vm.createContext安全沙箱中执行,限制全局访问
- 多级缓存(RuleCache)保证性能,TTL=5min,maxSize=1000
- 规则工厂模式:从sciot_properties自动生成所有ItemType规则(全覆盖)
约束:规则引擎DB文件路径为server/data/rule_engine.db;规则condition为JavaScript表达式;action_config为JSON对象。
SchedulerFactory(调度器工厂)
接口契约:
SchedulerFactory.create(config)→ IScheduler实例(MTClawScheduler或BuiltinScheduler)
业务规则:
- 检测MTClaw服务可用性(健康检查超时2s)
- 检测GPU硬件(nvidia-smi / mthreads-gmi,超时3s)
- 根据配置和运行时环境决定调度器类型
- MTClaw不可用时自动降级到BuiltinScheduler
约束:降级切换时间需≤3s(当前实现通过AbortSignal.timeout(2000)保证);GPU检测需≤1s。
LLMRouter(LLM智能调度适配层)
接口契约:
call({ prompt, taskType, systemPrompt })→ 推理结果InferenceServiceDetector.detect()→ 可用推理服务列表
业务规则:
- Worker(端侧模型):高频简单任务,~70ms
- Solver(云端大模型):复杂推理任务,~500ms
- 探测顺序:Ollama → 摩尔线程GPU → DeepSeek → 华为昇腾NPU
- 端侧不可用时自动切换云端DeepSeek
约束:Worker超时5s,Solver超时30s;API Key通过环境变量引用。
SmartLLMRouter(智能LLM调度器增强版)
接口契约:
route(userInput, context)→ 路由结果(intentType + staffId + params)chat(userInput, context)→ 对话结果
业务规则:
- 36种IntentType覆盖采购/库存/价格/供应商/分析/成本/文档/内容/目标/变更/估值等
- 多级降级链路:MTCLAW → Ollama → DeepSeek → 规则引擎
- 模型健康检查与熔断机制
- 响应缓存机制
- Subagent意图路由
约束:IntentType扩展到36种,关键词库与StaffRouter的STAFF_KEYWORDS对齐。
CollaborationChain(链式协作)
接口契约:
onTaskCompleted(staffId, taskResult)→ 触发下游员工
业务规则:
- 读取staff.collaboration.next配置
- 自动触发下游员工任务
- 传递_upstreamResult和_upstreamStaffId
约束:当前仅支持简单的next字段,不支持onComplete条件表达式;缺少循环依赖检测。
AssetValuator(数据资产估值器)
接口契约:
valuate(scope, params)→ 估值结果(cost_value/income_value/market_value/weighted_value)generateReport(valuationId)→ 估值报告
业务规则:
- 三阶段估值:成本法(40%)→ 收益法(40%)→ 市场法(20%)
- 成本法:采集成本(5元/条) + 处理成本(3元/条) + 存储成本(50元/GB) + 维护成本(1元/条/年)
- 收益法:预期收益折现(折现率10%,预测5年)
- 市场法:可比交易法(默认20元/条)
- 持久化到asset_valuations表
约束:估值参数从valuation.yaml加载;结果需标注"真实测量"或"模型估算"。
MTClaw Function Router
接口契约:
POST /v1/chat/completions→ OpenAI兼容接口GET /health→ 健康检查
业务规则:
- 三层路由:L1关键词匹配(<5ms)→ L2端侧推理(~70ms)→ L3云端兜底(~5s)
- 工具定义包含system_health_check/inventory_monitor/price_monitor/vendor_review等17+工具
- 命中L1时直接执行工具返回结果
- 未命中L1时使用端侧模型推理
- 端侧模型未命中时转发到云端
约束:监听端口18790;与BossAgents通过HTTP交互;兼容OpenAI function calling格式。
二、增量设计方案
2.1 实现模型
2.1.1 上下文视图
@startuml
!define RECTANGLE class
rectangle "用户\n(工艺工程师/采购工程师/\n成本分析师/数据管理员/\n内容运营/企业老板)" as User
rectangle "BossAgents\n(:3006)" as BA {
rectangle "统一API入口\nPOST /api/agent/chat" as API
rectangle "LiteScheduler\n(Cron+队列+互斥)" as LS
rectangle "MTClawScheduler\n(三层路由加速)" as MS
rectangle "BuiltinScheduler\n(内置关键词路由)" as BS
rectangle "CapabilityRuntime\n(六能力SDK)" as CR
rectangle "规则引擎\n(三级防线)" as RE
rectangle "SmartLLMRouter\n(36种IntentType)" as SLR
rectangle "LoopEngine\n(三种闭环模式)" as LE
rectangle "CollaborationChain\n(协同事件触发)" as CC
rectangle "MTClawStatsCollector\n(加速效果统计)" as SC
rectangle "MockDataDetector\n(Mock数据检测)" as MD
rectangle "CircuitBreaker\n(熔断器)" as CB
rectangle "AssetValuator\n(三阶段估值)" as AV
}
cloud "MTClaw\nFunction Router\n(:18790)" as MT
cloud "SCSAI PLM" as SCSAI
cloud "上游LLM\n(Ollama/DeepSeek)" as LLM
cloud "审批系统" as APPROVAL
cloud "飞书/邮件" as NOTIFY
User --> API : 自然语言请求
API --> LS : 调度
LS --> MS : MTClaw可用
LS --> BS : MTClaw不可用
MS --> MT : L1/L2/L3路由
BS --> CR : 能力调用
CR --> RE : 规则优先
CR --> SLR : LLM降级
CR --> AV : 估值能力
LS --> LE : Loop闭环
LS --> CC : 协同触发
MS --> CB : 熔断保护
MT --> SC : 统计上报
API --> MD : Mock检测
CR --> SCSAI : AML提交
SLR --> LLM : Worker/Solver
LS --> APPROVAL : 推送审批
LS --> NOTIFY : 发送通知
APPROVAL --> LS : 审批回调
@enduml
2.1.2 服务/组件总体架构
@startuml
package "L0 入口层" {
[scheduler-routes] as Routes
[POST /api/agent/chat] as ChatAPI
[GET /api/scheduler/status] as StatusAPI
[GET /api/digital-staff/] as StaffAPI
}
package "L1 调度层" {
[SchedulerFactory] as Factory
[MTClawScheduler] as MTSched
[BuiltinScheduler] as BuiltSched
[LiteScheduler] as LiteSched
[WorkflowEngine] as WFE
[StatePersistence] as SP
}
package "L2 能力层" {
[CapabilityRuntime] as CR
[LoopEngine] as LoopE
[CollaborationChain] as Collab
[MTClawStatsCollector] as Stats
[MockDataDetector] as MockD
[CircuitBreaker] as CB
[AssetValuator] as AV
}
package "L3 员工层" {
[StaffRegistry] as SR
[StaffRouter] as SRouter
[YAML Profile\n(local.yaml)] as YAML
[Worker脚本\n(20个)] as Workers
}
package "L4 引擎层" {
[UnifiedRuleEngine] as RE
[SmartLLMRouter] as SLR
[LLMRouter] as LLMR
[InferenceServiceDetector] as ISD
}
package "L5 数据层" {
[SQLite\n(core_runtime.db)] as DB
[SQLite\n(rule_engine.db)] as REDB
[文件系统\n(workflow-states/)] as FS
}
Routes --> Factory
Factory --> MTSched : MTClaw可用
Factory --> BuiltSched : MTClaw不可用
MTSched --> WFE
BuiltSched --> WFE
WFE --> SP
LiteSched --> CR
CR --> RE : 规则优先
CR --> SLR : LLM降级
CR --> AV : 估值
LiteSched --> LoopE
LiteSched --> Collab
MTSched --> CB
MTSched --> Stats
Routes --> MockD
SR --> YAML
SRouter --> SR
Workers --> CR
SLR --> LLMR
LLMR --> ISD
RE --> REDB
AV --> DB
SP --> FS
Stats --> DB
@enduml
2.1.3 实现设计文档
#### 2.1.3.1 Loop闭环引擎状态机设计
@startuml
[*] --> Idle : 员工配置loop.enabled=true
Idle --> Checking : cron触发/手动触发
state Checking {
[*] --> EvaluateCondition
EvaluateCondition --> ConditionMet : 条件满足
EvaluateCondition --> ConditionNotMet : 条件不满足
}
Checking --> Executing : 条件满足(monitor/goal_driven)
Checking --> RepairAndVerify : 条件满足(self_repair)
state Executing {
[*] --> RunCapability
RunCapability --> CheckGoal
CheckGoal --> GoalMet : 目标达成
CheckGoal --> GoalNotMet : 目标未达成
}
state RepairAndVerify {
[*] --> RunRepair
RunRepair --> RunValidate
RunValidate --> ValidatePass : 校验通过
RunValidate --> ValidateFail : 校验失败
}
Executing --> Completed : GoalMet/达到max_iterations
Executing --> Checking : GoalNotMet且未达max_iterations
RepairAndVerify --> Completed : ValidatePass
RepairAndVerify --> RunRepair : ValidateFail且未达max_iterations
RepairAndVerify --> Completed : 达到max_iterations
Completed --> Idle : 等待下次触发
@enduml
三种Loop模式说明:
| 模式 | YAML配置 | 触发条件 | 执行动作 | 终止条件 |
|------|---------|---------|---------|---------|
| monitor(监控型) | mode: monitor | cron定时触发 | 检查condition→满足则执行action | condition不满足或max_iterations |
| goal_driven(目标驱动型) | mode: goal_driven | cron定时触发 | 检查goal→未达成则执行action | goal达成或max_iterations |
| self_repair(自修复型) | mode: self_repair | cron定时触发 | repair→validate→失败则重试 | validate通过或max_iterations |
#### 2.1.3.2 MTClaw双引擎协同决策流程
@startuml
start
:接收用户请求;
:规则引擎查询;
if (规则命中?) then (是)
:规则引擎直接返回(≤200ms);
:标记source=rule_engine;
stop
else (否)
endif
:检查MTClaw可用性;
if (MTClaw可用?) then (是)
:MTClaw三层路由;
if (L1关键词命中?) then (是)
:精确动作映射(<5ms);
:标记source=mtclaw_l1;
stop
elseif (L2端侧推理命中?) then (是)
:端侧推理结果(~70ms);
:标记source=mtclaw_l2;
stop
else (L3云端兜底)
:云端推理结果(~5s);
:标记source=mtclaw_l3;
stop
endif
else (否)
:降级到LLM Router;
:Worker/Solver路由;
if (Worker可用?) then (是)
:Worker端侧推理(~70ms);
:标记source=llm_worker;
else (否)
:Solver云端推理(~5s);
:标记source=llm_solver;
endif
:记录降级次数;
:检查熔断器;
if (连续降级≥5次?) then (是)
:熔断器打开;
:60s后半开恢复;
endif
stop
endif
@enduml
#### 2.1.3.3 全链路闭环演示流程设计
@startuml
start
:启动全链路演示;
partition "Step1: 产品创建(~8s)" {
:CapabilityRuntime.create(Part, data);
:规则引擎create_pre双库查重;
:规则引擎validate必填补全;
:组装AML提交SCSAI;
:规则引擎create_post关联完整性;
:记录duration_ms;
}
partition "Step2: BOM生成(~700ms)" {
:CapabilityRuntime.generate(BOM, {part_id});
:规则引擎优先→LLM降级;
:记录duration_ms;
}
partition "Step3: 商城上架(~72ms)" {
:自动生成商品页面+SKU;
:确定性操作,规则引擎直接处理;
:记录duration_ms;
}
partition "Step4: 内容+文档(~84ms)" {
:并行生成海报/说明书/宣传册;
:CapabilityRuntime.generate(Content, params);
:记录duration_ms;
}
partition "Step5: 数据资产化" {
:AssetValuator.valuate(all);
:成本法估值(40%权重);
:收益法估值(40%权重);
:市场法估值(20%权重);
:输出8类资产估值清单;
:总估值≈¥150,000;
:记录duration_ms;
}
partition "Step6: 私有化部署" {
:从体验到企业专属平台;
:展示部署配置;
:记录duration_ms;
}
:MockDataDetector扫描所有输出;
:汇总6阶段结果+Mock检测结果;
:标注每阶段真实测量耗时;
stop
@enduml
#### 2.1.3.4 熔断器状态机设计
@startuml
[*] --> Closed : 初始状态
Closed --> Open : 连续失败≥5次
Open --> HalfOpen : 60s后尝试恢复
HalfOpen --> Closed : 探测成功
HalfOpen --> Open : 探测失败
state Closed {
:正常转发请求;
:重置失败计数器;
}
state Open {
:直接走LLM Router;
:不尝试MTClaw;
:记录熔断事件;
}
state HalfOpen {
:放行1个探测请求;
:成功→Closed;
:失败→Open;
}
@enduml
2.2 接口设计
2.2.1 总体设计
| 接口分类 | 接口名称 | 方法 | 路径 | 稳定性 |
|---------|---------|------|------|--------|
| 统一入口 | AI对话 | POST | /api/agent/chat | 稳定 |
| 调度器状态 | 查询调度器状态 | GET | /api/scheduler/status | 稳定 |
| 工作流管理 | 查询工作流列表 | GET | /api/workflows | 稳定 |
| 工作流管理 | 审批回调 | POST | /api/callbacks/approval | 稳定 |
| 工具调用 | 执行工具 | POST | /api/tools/execute | 稳定 |
| 数字员工 | 查询员工列表 | GET | /api/digital-staff/ | 稳定 |
| 数字员工 | 查询员工详情 | GET | /api/digital-staff/:id | 稳定 |
| 规则引擎 | 规则CRUD | GET/POST/PUT/DELETE | /api/rule-engine/rules | 稳定 |
| 规则引擎 | 规则执行 | POST | /api/rule-engine/execute | 稳定 |
| 规则引擎 | 规则导入 | POST | /api/rule-engine/import | 稳定 |
| 案例展示 | 查询案例列表 | GET | /api/case-studies/ | 实验 |
| 案例展示 | 查询案例详情 | GET | /api/case-studies/:id | 实验 |
接口变更策略:
- 稳定接口:仅向后兼容变更,破坏性变更需版本化(/v2/)
- 实验接口:可能调整参数和返回格式,调用方需容错
- 所有接口响应格式统一为
{ success: boolean, data?: any, message?: string, error?: string }
2.2.2 接口清单
#### POST /api/agent/chat
接口签名:
interface AgentChatRequest {
messages: Array<{ role: 'user' | 'assistant' | 'system'; content: string }>;
stream?: boolean;
model?: string;
session_key?: string;
}
interface AgentChatResponse {
id: string;
object: 'chat.completion';
choices: Array<{
index: number;
message: { role: 'assistant'; content: string };
finish_reason: 'stop' | 'tool_calls';
}>;
usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number };
_scheduler_response: SchedulerResponse;
_mtclaw_routed?: boolean;
_mtclaw_latency?: number;
}
interface SchedulerResponse {
staff_id: string;
staff_name: string;
capability: string;
source: 'rule_engine' | 'mtclaw_l1' | 'mtclaw_l2' | 'mtclaw_l3' | 'llm_worker' | 'llm_solver' | 'llm_fallback';
output: string | object;
duration_ms: number;
pipeline_results?: PipelineStepResult[];
loop_iterations?: number;
}
业务说明:统一AI对话入口,自动路由到匹配的数字员工,支持MTClaw前置加速和降级。
前置条件:调度器已初始化(SchedulerFactory.create成功)。
后置条件:执行结果记录到digital-staff-logs.json,MTClaw统计上报到MTClawStatsCollector。
异常映射:
- 调度器未初始化 → 503
{ message: '调度器未初始化' } - messages参数无效 → 400
{ message: 'messages参数无效' } - LLM超时 → 504
{ message: 'LLM_TIMEOUT', code: 'LLM_TIMEOUT' }
#### GET /api/scheduler/status
接口签名:
interface SchedulerStatusResponse {
success: boolean;
data: {
scheduler_type: 'mtclaw' | 'builtin' | 'lite';
model_provider: 'edge' | 'cloud';
mtclaw_available: boolean;
gpu_available: boolean;
mtclaw_circuit_breaker: 'closed' | 'open' | 'half_open';
mtclaw_stats: MTClawStats;
staff_count: number;
active_workflows: number;
uptime_seconds: number;
};
}
interface MTClawStats {
total_calls: number;
accelerated_calls: number;
degraded_calls: number;
failed_calls: number;
avg_duration_ms: number;
l1_hits: number;
l2_hits: number;
l3_hits: number;
acceleration_ratio: number;
}
业务说明:查询当前调度器运行状态,包含MTClaw可用性、GPU状态、熔断器状态、加速效果统计。
前置条件:无。
后置条件:无副作用。
#### GET /api/digital-staff/
接口签名:
interface DigitalStaffListResponse {
success: boolean;
data: Array<{
id: string;
name: string;
title: string;
capability: string;
department: string;
enabled: boolean;
mtclaw_enabled: boolean;
pipeline: string[];
loop: { enabled: boolean; mode?: string } | null;
collaboration: { next?: string } | null;
keywords: string[];
}>;
total: number;
}
业务说明:查询所有数字员工列表,从StaffRegistry读取YAML Profile定义。
前置条件:StaffRegistry已加载Profile。
后置条件:无副作用。
#### GET /api/case-studies/
接口签名:
interface CaseStudyListResponse {
success: boolean;
data: Array<{
id: string;
name: string;
industry: string;
deployment_mode: string;
summary: string;
metrics: Array<{ label: string; value: string; source: '真实测量' | '客户反馈' | '内部统计' }>;
}>;
}
业务说明:查询六大落地案例列表,从case-studies.yaml加载。
前置条件:case-studies.yaml配置文件存在。
后置条件:无副作用。
2.3 数据模型
2.3.1 设计目标
- 支持的业务场景:
- 数字员工YAML Profile定义与运行时状态管理
- 规则引擎三级防线审计与通过率统计
- MTClaw三层路由加速效果统计
- 数据资产三阶段估值与8类资产明细
- 全链路闭环演示6阶段结果与Mock检测
- 工作流实例状态持久化与恢复
- 六大落地案例展示
- 性能目标:
- 规则引擎查询≤50ms(多级缓存保证)
- MTClaw统计写入≤10ms(内存累加+定时批量持久化)
- 估值计算≤500ms(规则引擎优先)
- 数字员工列表查询≤100ms(内存缓存)
- 兼容策略:
- YAML Profile为配置真相源,DB为运行时真相源
- 新增表不修改现有表结构
- 规则引擎DB(rule_engine.db)与业务DB(core_runtime.db)分离
2.3.2 模型实现
@startuml
class DigitalStaffProfile {
id: string
name: string
title: string
capability: string
department: string
enabled: boolean
llm: boolean
mtclaw_enabled: boolean
mtclaw_high_frequency_actions: string[]
keywords: string[]
pipeline: PipelineStep[]
loop: LoopConfig
collaboration: CollaborationConfig
}
class PipelineStep {
capability: string
item_types: string[]
params: Record<string, any>
}
class LoopConfig {
enabled: boolean
mode: 'monitor' | 'goal_driven' | 'self_repair'
trigger: string
condition: string
action: string
max_iterations: number
}
class CollaborationConfig {
next: string
condition: string
params: Record<string, any>
}
class RuleEngineStats {
scope: string
total_executions: number
passed: number
failed: number
pass_rate: number
avg_duration_ms: number
last_calculated_at: string
}
class MTClawStats {
total_calls: number
accelerated_calls: number
degraded_calls: number
failed_calls: number
avg_duration_ms: number
l1_hits: number
l2_hits: number
l3_hits: number
acceleration_ratio: number
recorded_at: string
}
class AssetValuation {
id: string
scope: string
asset_count: number
cost_value: number
cost_breakdown: Record<string, number>
income_value: number
income_breakdown: Record<string, number>
market_value: number
market_breakdown: Record<string, number>
weighted_value: number
weights: Record<string, number>
rule_engine_used: boolean
rule_params: Record<string, any>
valuated_at: string
}
class DemoResult {
stages: DemoStage[]
total_duration_ms: number
mock_detection: MockDetection
report_path: string
}
class DemoStage {
stage_id: string
stage_name: string
duration_ms: number
status: 'success' | 'timeout' | 'error'
result: Record<string, any>
}
class MockDetection {
is_mock: boolean
mock_indicators: string[]
scanned_at: string
}
class CircuitBreakerState {
target: string
state: 'closed' | 'open' | 'half_open'
failure_count: number
last_failure_at: string
opened_at: string
}
class CaseStudy {
id: string
name: string
industry: string
deployment_mode: string
summary: string
metrics: CaseStudyMetric[]
}
class CaseStudyMetric {
label: string
value: string
source: string
}
DigitalStaffProfile "1" *-- "0..*" PipelineStep
DigitalStaffProfile "1" *-- "0..1" LoopConfig
DigitalStaffProfile "1" *-- "0..1" CollaborationConfig
DemoResult "1" *-- "6" DemoStage
DemoResult "1" *-- "1" MockDetection
CaseStudy "1" *-- "1..*" CaseStudyMetric
@enduml
对象创建和销毁策略:
| 对象 | 创建时机 | 销毁/回收策略 |
|------|---------|-------------|
| DigitalStaffProfile | 服务启动时从YAML加载到内存 | 服务停止时释放,无显式销毁 |
| RuleEngineStats | 每次规则执行后累加,定时聚合 | 保留最近500条审计记录 |
| MTClawStats | 每次MTClaw调用后累加,每60s持久化 | 持久化到mtclaw_stats表,保留最近30天 |
| AssetValuation | 每次估值执行后创建并持久化 | 持久化到asset_valuations表,支持历史查询 |
| DemoResult | 每次演示执行后创建 | 持久化到文件系统,演示报告保留7天 |
| CircuitBreakerState | 服务启动时初始化 | 内存对象,进程重启后重置为closed |
持久化策略:
| 数据 | 存储方式 | 存储位置 |
|------|---------|---------|
| 数字员工定义 | YAML文件(配置真相源)+ 内存缓存(运行时真相源) | server/boss-scheduler/profiles/local.yaml |
| 规则引擎规则 | SQLite(rule_engine.db) | server/data/rule_engine.db |
| 规则引擎审计 | SQLite(rule_engine.db)+ 内存缓存 | server/data/rule_engine.db |
| MTClaw统计 | 内存累加 + 定时持久化到SQLite | server/data/core_runtime.db (mtclaw_stats表) |
| 资产估值 | SQLite | server/data/core_runtime.db (asset_valuations表) |
| 工作流状态 | 文件系统JSON | server/data/workflow-states/ |
| 演示结果 | 文件系统JSON | server/data/demo/ |
| 案例数据 | YAML文件 | server/boss-scheduler/profiles/case-studies.yaml |
BossAgents