SCSAI 数字员工平台 — 规则引擎 SOUL
版本: 3.0
更新日期: 2026-05-09
核心理念: 自然语言 → 关键词识别 → 规则匹配 → 工具调用 → 结果返回
终极目标: 自运维、自进化的工业数字员工系统
一、系统灵魂(SOUL)
1.1 这是什么
SCSAI 是一个规则驱动的数字员工平台,它不是一个简单的聊天机器人,而是一个闭环的业务操作系统:
``
老板/员工 下达指令(自然语言)
↓
关键词识别引擎(L1:纯规则,无需LLM)
↓
规则模板匹配(ai-agent-rules.json)
↓
┌─ need_llm=false → 直接调用API执行
└─ need_llm=true → LLM辅助理解 + 确认后执行
↓
执行结果返回(前端/飞书/自动运维)
↓
系统自学习、自优化
`
1.2 三级智能策略
| 级别 | 触发条件 | 处理方式 | 延迟 | 成本 |
|------|----------|----------|------|------|
| L1 规则直通 | 关键词命中 need_llm=false 的规则 | 直接调用工具API | <100ms | 零 |
| L2 规则+LLM | 关键词命中 need_llm=true 的规则 | LLM提取参数 → 用户确认 → 执行 | 1-3s | 低 |
| L3 纯LLM | 关键词未命中任何规则 | LLM理解意图 → 推理工具 → 确认 → 执行 | 3-10s | 中 |
核心原则:能用规则解决的绝不调用LLM,能用L1的绝不升级到L2/L3。
二、规则模板系统(RULES)
2.1 规则模板结构
每条规则就是一个"灵魂片段",定义了系统如何理解一类指令:
`json
{
"id": "规则唯一标识",
"name": "规则名称(中文)",
"keywords": ["关键词1", "关键词2"],
"need_llm": false,
"action": {
"tool": "工具名称",
"params": { "参数名": "参数值模板" },
"required_fields": ["必填参数"],
"SCSAI_type": "SCSAI对象类名(可选)",
"SCSAI_select": "SCSAI查询字段(可选)"
},
"examples": ["示例指令1", "示例指令2"]
}
`
2.2 规则匹配算法
`
输入: 用户消息 "创建供应商华为,电话12345678"
↓
- 转小写: "创建供应商华为,电话12345678"
↓
- 遍历所有规则,计算每个规则的关键词命中数:
- create_vendor: "创建"✓ "供应商"✓ "vendor"✓ → 得分3
- create_project: "创建"✓ → 得分1
- query_vendors: "供应商"✓ "vendor"✓ → 得分2
↓
- 最高分规则: create_vendor (得分3)
↓
- need_llm=true → 尝试从消息中提取参数:
- name: "华为" (从消息中提取)
- phone: "12345678" (从消息中提取)
↓
- 返回确认: "我理解您想要创建供应商:华为,确认执行吗?"
↓
- 用户确认 → 调用 create_vendor 工具 → 执行
`
2.3 完整规则清单(47条)
#### 🔍 查询类规则(L1 直通,无需LLM)
| ID | 规则名称 | 关键词 | 工具 | 说明 |
|----|----------|--------|------|------|
| query_item_types | 查询对象类列表 | 对象类/列表/ItemType/类型 | search_item_types | 查看系统所有对象类定义 |
| query_inventory | 查询库存 | 库存/查询/物料/stock | list_data(inventory_items) | 查看库存物料列表 |
| query_projects | 查询项目 | 项目/列表/进度/project | list_data(projects) | 查看项目列表和进度 |
| query_quality | 查询质量数据 | 质量/检验/NCR/合格率 | list_data(inspections) | 查看质量检验记录 |
| query_vendors | 查询供应商 | 供应商/vendor/厂家/列表 | list_data(vendors) | 查看供应商列表 |
| query_documents | 查询文档 | 文档/图纸/document/文件 | list_data(documents) | 查看文档列表 |
| query_cad | 查询CAD图纸 | CAD/图纸/cad | list_data(documents) | 查看CAD图纸 |
| query_customers | 查询客户 | 客户/customer/客户列表 | list_data(customers) | 查看客户列表 |
| query_work_orders | 查询工单 | 工单/生产/work_order | list_data(orders) | 查看生产工单 |
| dashboard | 数据概览 | 概览/统计/仪表盘/数据 | dashboard_summary | 仪表盘数据汇总 |
| compare_item_types | 比对对象类 | 比对/比较/差异/compare | compare_item_types | 本地vs SCSAI差异比对 |
| system_health | 系统健康检查 | 健康/状态/系统/检查 | system_health | 数据库/SCSAI/LLM状态 |
| export_data | 导出数据 | 导出/下载/export/excel | export_data | 导出模块数据 |
#### 🔧 系统运维类规则(L1 直通)
| ID | 规则名称 | 关键词 | 工具 | 说明 |
|----|----------|--------|------|------|
| optimize_item_types | 批量优化对象类 | 优化/对象类/属性/补全 | optimize_item_types | 自动补全缺失属性 |
| import_item_types | 导入对象类 | 导入/同步/对象类/AML | import_item_types | 从AML文件导入 |
| repair_item_type | 修复对象类 | 修复/对象类/完整性 | repair_item_type | 修复对象类定义 |
#### ✏️ 创建类规则(L2 需要LLM辅助理解)
| ID | 规则名称 | 关键词 | 工具 | SCSAI类型 | 必填字段 |
|----|----------|--------|------|----------|----------|
| create_vendor | 创建供应商 | 创建/新增/供应商/vendor/厂家 | create_vendor | Vendor | name |
| create_project | 创建项目 | 创建/新增/项目/project | create_project | Project | name |
| create_ecr | 创建变更请求 | 创建/新增/变更请求/ECR/变更 | create_SCSAI_item | ECR | name |
| create_ncr | 创建不合格品报告 | 创建/新增/不合格/NCR/质量 | create_ncr | NCR | title |
| create_purchase_order | 创建采购单 | 创建/采购/purchase/PO | create_SCSAI_item | pop_purchase_order | name |
| create_sales_order | 创建销售单 | 创建/销售/sales/SO/订单 | create_SCSAI_item | sop_sale_order | name |
| create_work_order | 创建工单 | 创建/工单/work_order/生产单 | create_SCSAI_item | Work_Order | name |
| create_document | 创建文档 | 创建/文档/上传/document | create_SCSAI_item | Document | name |
#### 📦 库存操作类规则(L2 需要LLM辅助理解)
| ID | 规则名称 | 关键词 | 工具 | SCSAI类型 | 必填字段 |
|----|----------|--------|------|----------|----------|
| inventory_outbound | 库存出库 | 出库/领料/发货/扣减库存 | inventory_transaction | stk_issue | part_number, quantity |
| inventory_inbound | 库存入库 | 入库/收货/入库单 | inventory_transaction | stk_issue | part_number, quantity |
#### 🏷️ 标记类规则(L2 需要LLM辅助理解)
| ID | 规则名称 | 关键词 | 工具 | 必填字段 |
|----|----------|--------|------|----------|
| toggle_core | 设为核心对象 | 核心/业务对象/标记 | toggle_core_business | item_type_name |
#### 📊 分析类规则(L2 需要LLM辅助理解)
| ID | 规则名称 | 关键词 | 工具 | 必填字段 |
|----|----------|--------|------|----------|
| analyze_trends | 趋势分析 | 趋势/分析/统计/报表 | analyze_trends | module |
三、工具注册表(TOOLS)
3.1 工具定义
每个工具是规则模板的"手脚",定义了具体的执行逻辑:
| 工具名 | 描述 | 必填参数 | 数据源 |
|--------|------|----------|--------|
| search_item_types | 搜索对象类 | 无 | SQLite |
| get_item_type_detail | 获取对象类详情 | name | SQLite |
| list_data | 查询业务数据列表 | module | SQLite |
| create_vendor | 创建供应商 | name | SQLite + SCSAI |
| create_project | 创建项目 | name | SQLite |
| create_ncr | 创建NCR | title | SQLite |
| create_quality_inspection | 创建质量检验 | title, inspection_type | SQLite |
| create_inventory_item | 创建库存物品 | part_number, part_name | SQLite |
| inventory_transaction | 出入库操作 | part_number, transaction_type, quantity | SQLite |
| create_SCSAI_item | 通用SCSAI对象创建 | item_type, name | SQLite + SCSAI |
| optimize_item_types | 批量优化对象类 | 无 | SQLite |
| repair_item_type | 修复对象类 | name | SQLite |
| toggle_core_business | 设置核心对象标记 | item_type_name, is_core | SQLite |
| import_item_types | 从AML导入对象类 | source | AML文件 + SQLite |
| compare_item_types | 比对对象类差异 | 无 | SQLite + SCSAI |
| dashboard_summary | 仪表盘汇总 | 无 | SQLite |
| system_health | 系统健康检查 | 无 | SQLite + SCSAI + LLM |
| analyze_trends | 趋势分析 | module | SQLite |
| export_data | 数据导出 | module | SQLite |
3.2 工具执行流程
`
executeTool(toolName, params)
↓
- 在 TOOLS 数组中查找工具
↓
- 验证必填参数(required)
↓
- 调用 tool.handler(params)
↓
- 返回 { type: 'result', success: true, data: ... }
或 { type: 'error', message: '...' }
`
四、SCSAI 对象类映射
4.1 PLM 核心对象类
| 对象类 | SCSAI类型名 | AML文件路径 | 用途 |
|---|---|---|---|
| 零件 | Part | PLM/Import/ItemType/Part.xml | BOM管理 |
| 文档 | Document | PLM/Import/ItemType/Document.xml | 文档管理 |
| CAD图纸 | CAD | PLM/Import/ItemType/CAD.xml | 图纸管理 |
| 供应商 | Vendor | PLM/Import/ItemType/Vendor.xml | 供应商管理 |
| 客户 | Customer | PLM/Import/ItemType/Customer.xml | 客户管理 |
| 变更请求 | ECR | PLM/Import/ItemType/ECR.xml | 工程变更 |
4.2 SCIOT 扩展对象类
| 对象类 | SCSAI类型名 | AML文件路径 | 用途 |
|---|---|---|---|
| 项目 | Project | SCIOT/SCIOT/Project/Import/ItemType/Project.xml | 项目管理 |
| 项目任务 | Project Task | SCIOT/SCIOT/Project/Import/ItemType/Project Task.xml | 任务管理 |
| 不合格品报告 | NCR | SCIOT/SCIOT/QS/Import/ItemType/NCR.xml | 质量管理 |
| 纠正预防措施 | QAP | SCIOT/SCIOT/QS/Import/ItemType/QAP.xml | 质量管理 |
| 库存设置 | stk_stock_setup | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/stk_stock_setup.xml | 库存管理 |
| 出库单 | stk_issue | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/stk_issue.xml | 库存管理 |
| 库存调拨 | stk_stock_transfer | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/stk_stock_transfer.xml | 库存管理 |
| 采购订单 | pop_purchase_order | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/pop_purchase_order.xml | 采购管理 |
| 销售订单 | sop_sale_order | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/sop_sale_order.xml | 销售管理 |
| 工单 | Work_Order | SCIOT/SCIOT/WEFIC_ACCOUNTING/Import/ItemType/Work_Order.xml | 生产管理 |
4.3 SCIOT 对象类关系类型
从 ItemType.xml 中发现的真实关系类型(非 SCSAI 标准名称):
| 关系类型 | 查询方式 | 说明 |
|----------|----------|------|
| Property | | 直接关系 |
| Method | | 直接关系 |
| View | | 直接关系 |
| Allowed Permission | | 直接关系 |
| Server Event | | 直接关系 |
| Item Action | | 直接关系 |
| RelationshipType | | 通过source_id查询 |
五、闭环执行示例
示例1:L1 直通 — "查看库存"
`
用户: "查看库存"
↓
关键词匹配: "库存"✓ "查询"✓ → query_inventory (得分2, need_llm=false)
↓
直接执行: list_data({ module: "inventory_items" })
↓
SQL: SELECT * FROM inventory_items ORDER BY created_at DESC LIMIT 50
↓
返回: { type: 'result', data: { total: 156, items: [...] } }
↓
前端展示库存列表
`
示例2:L2 规则+LLM — "创建供应商华为,电话12345678"
`
用户: "创建供应商华为,电话12345678"
↓
关键词匹配: "创建"✓ "供应商"✓ "vendor"✓ → create_vendor (得分3, need_llm=true)
↓
参数提取: name="华为", phone="12345678"
↓
返回确认: { type: 'confirm', message: "我理解您想要创建供应商:华为\n\n确认执行吗?" }
↓
用户点击"确认"
↓
执行: create_vendor({ name: "华为", phone: "12345678" })
↓
- SQLite: INSERT INTO vendors (id, name, phone, ...) VALUES (...)
- SCSAI: POST /server/odata/Part → 创建 Vendor 对象
↓
返回: { type: 'result', message: "供应商创建成功(已同步SCSAI)" }
`
示例3:飞书远程指令 — "库存预警"
`
老板在飞书群 @数字员工助手: "库存预警"
↓
飞书事件推送 → POST /api/feishu/webhook
↓
handleMessageEvent → aiAgent.processMessage("库存预警")
↓
关键词匹配: "库存"✓ "预警"✗ → query_inventory (得分1, need_llm=false)
↓
执行: list_data({ module: "inventory_items" })
↓
飞书回复: "当前库存预警物料共12项:\n1. R001 电阻 - 当前0 安全100\n2. ..."
`
六、AI巡检系统(自进化核心)
6.1 巡检架构
AI巡检系统是平台自进化的核心引擎,通过持续检测SCSAI对象类的数据质量问题,自动修复并验证:
`
巡检(1197个对象类)→ 发现问题(5类规则)→ 一键修复(SSE实时进度)→ 自动重新巡检验证
`
6.2 巡检规则(5条,全部可自动修复)
| 规则ID | 名称 | 分类 | 严重级别 | 修复方式 |
|---|---|---|---|---|
| rule-001 | 必须有中文标签 | 基础规范 | error | 内置翻译映射表(100+词条) + DeepSeek备用 |
| rule-002 | 必须有编号字段 | 数据完整性 | error | 自动添加item_number属性 |
| rule-003 | 必须有名称字段 | 数据完整性 | error | 自动添加name属性 |
| rule-004 | 必须有状态字段 | 生命周期 | warning | 自动添加state属性 |
| rule-005 | 必须有审计字段 | 审计追踪 | warning | 自动添加created_by_id属性 |
6.3 修复技术要点
- 串行执行 + 200ms延迟:避免SCSAI数据库死锁
- 重试机制:死锁自动重试最多2次
- SSE实时推送:每个修复项完成后立即推送到前端
- 数据分离:SSE只推summary,完整issues通过JSON接口获取(避免大数据卡住前端)
- 认证透传:前端当前登录用户的认证信息传递到服务端,使用该用户权限执行修复
6.4 API接口
| 路由 | 方法 | 功能 |
|---|---|---|
| /api/ai-inspector/inspect-stream | POST | SSE流式巡检 |
| /api/ai-inspector/fix-stream | POST | SSE流式修复 |
| /api/ai-inspector/last-result | POST | 获取最近巡检完整结果 |
| /api/ai-inspector/rules | GET | 获取规则列表 |
七、数字员工团队
7.1 当前在岗员工(4人)
| 工号 | 名称 | 职位 | 部门 | 调度周期 | 核心能力 |
|---|---|---|---|---|---|
| DS-ECR-001 | 小智-ECR审核员 | 变更管理初级审核员 | 质量部 | 每15分钟 | LLM智能初审ECR,置信度>0.8自动审批 |
| DS-VEN-001 | 小智-供应商管家 | 供应商质量管理专员 | 采购部 | 每30分钟 | 供应商质量评分监控,低于75分触发诊断 |
| DS-COST-001 | 小智-成本优化师 | 成本分析工程师 | 财务部 | 每天凌晨2点 | BOM成本扫描,替代料推荐,ROI分析 |
| DS-DATA-001 | 小智-数据书记员 | 数据同步工程师 | IT部 | 每小时 | SCSAI数据同步到本地缓存(6种对象类型) |
7.2 LLM大脑能力
| 能力 | 角色设定 | 输出 |
|---|---|---|
| ECR智能审核 | CCB专家 | decision / confidence / riskLevel |
| 供应商智能诊断 | 质量专家 | 健康度 / 风险 / 改进方案 |
| BOM成本优化 | 成本专家 | 替代料推荐 / ROI分析 |
| 5Why根因分析 | 6 Sigma黑带 | 5层Why链 / 纠正预防措施 |
八、自运维自进化路线
阶段一:规则驱动(✅ 已完成)
- ✅ 47条规则模板覆盖核心业务
- ✅ 42个工具函数实现业务操作
- ✅ 三级智能策略(L1/L2/L3)
- ✅ 飞书机器人远程指令
- ✅ 关键词匹配 + LLM降级
- ✅ AI巡检系统(5条规则,SSE实时修复)
- ✅ 4个数字员工自主工作
- ✅ SCSAI SOAP API集成
- ✅ 数据双写架构(SCSAI + SQLite)
阶段二:自学习(🔲 进行中)
- 🔲 操作日志分析 → 自动发现高频指令 → 自动生成新规则
- 🔲 用户反馈收集 → 优化规则关键词权重
- 🔲 规则冲突检测 → 自动调整优先级
- 🔲 AML变更监听 → 自动同步对象类定义
- 🔲 巡检规则扩展(关系类型/生命周期/权限/命名规范)
阶段三:自运维(🔲 规划中)
- ✅ 定时健康检查 → 数据书记员已实现
- 🔲 库存预警 → 自动触发采购建议
- 🔲 质量趋势分析 → 自动发起纠正措施
- 🔲 系统异常检测 → 自动诊断并修复
- 🔲 对象类完整性自动巡检 → 自动修复(AI巡检系统已实现基础版)
阶段四:自进化(🔲 远期)
- 🔲 业务流程挖掘 → 自动发现标准流程
- 🔲 规则自动生成 → 从历史操作中学习新规则
- 🔲 跨模块联动 → 自动触发关联操作
- 🔲 预测性运维 → 提前发现潜在问题
九、核心业务模块映射
9.1 业务模块 → SCSAI对象类 → 规则/工具 映射
| 业务模块 | SCSAI对象类 | 已实现规则 | 已实现工具 | 数字员工 |
|---|---|---|---|---|
| BOM管理 | Part, CAD | query_item_types | optimize_item_types | 成本优化师 |
| 变更管理 | ECR, ECO | create_ecr | create_SCSAI_item | ECR审核员 |
| 项目管理 | Project, Project Task | create_project | create_project | - |
| 质量管理 | NCR, QAP | create_ncr, analyze_root_cause | create_ncr, analyze_root_cause, generate_quality_report | - |
| 工艺管理 | - | optimize_process_params | optimize_process_params, run_mold_flow_analysis | - |
| 供应商管理 | Vendor, Manufacturer | create_vendor, query_vendors | create_vendor | 供应商管家 |
| 客户管理 | Customer | query_customers | create_SCSAI_item | - |
| 库存管理 | stk_stock_setup, stk_issue | inventory_inbound/outbound | inventory_transaction, create_inventory_item | - |
| 采购管理 | pop_purchase_order | create_purchase_order | create_SCSAI_item | - |
| 销售管理 | sop_sale_order | create_sales_order | create_SCSAI_item | - |
| 生产管理 | Work_Order | create_work_order | create_SCSAI_item, get_production_status | - |
| 设备管理 | - | predict_health, predict_tool_wear | predict_device_health, predict_tool_wear | - |
| 绿色制造 | - | carbon_management | calculate_carbon_footprint | - |
9.2 待完善的业务模块
| 业务模块 | 缺失内容 | 优先级 |
|---|---|---|
| 项目管理 | 缺少项目进度追踪、甘特图、里程碑管理工具 | 高 |
| 质量管理 | 缺少SPC实时监控、CPK自动计算工具 | 高 |
| 工艺管理 | 工艺参数寻优为模拟实现,需接入真实模型 | 中 |
| 设备管理 | 设备健康预测为模拟实现,需接入IoT数据 | 中 |
| 客户管理 | 缺少客户分级、信用评估、订单分析工具 | 中 |
十、已知限制与改进方向
10.1 当前限制
- 模拟实现:约13个高级工具(视觉检测、设备预测、工艺优化等)仍为模拟数据
- 巡检规则不足:仅5条基础规则,缺少关系类型、生命周期、权限等检查
- 数据同步局限:仅同步6种SCSAI对象类型,缺少BOM/Project/Customer等
- 数字员工覆盖不足:47条规则仅4个数字员工覆盖
- 缺少测试体系:无单元测试和集成测试
10.2 近期改进方向
- 扩展巡检规则:增加关系类型完整性、属性标签中文化、命名规范等规则
- 新增数字员工:质量检验员、库存管理员、生产调度员
- 业务闭环:巡检发现 → 自动修复 → 验证 → 持续监控
- 大模型集成:巡检修复 + LLM规则模板结合,实现智能修复决策
十一、如何扩展
7.1 添加新规则
编辑 server/ai-agent-rules.json,在 rules 数组中添加:
`json
{
"id": "你的规则ID",
"name": "规则名称",
"keywords": ["关键词1", "关键词2"],
"need_llm": false,
"action": {
"tool": "对应工具名",
"params": {}
},
"examples": ["示例指令"]
}
`
7.2 添加新工具
编辑 server/ai-agent.js,在 TOOLS 数组中添加:
`javascript
{
name: 'your_tool_name',
description: '工具描述',
parameters: {
type: 'object',
properties: {
param1: { type: 'string', description: '参数描述' }
},
required: ['param1']
},
handler: async (params) => {
// 实现你的业务逻辑
return { result: 'success' };
}
}
`
7.3 添加新SCSAI对象类
- 在 SCSAI/SCIOT 中创建 ItemType 的 AML 定义文件
- 在 ai-agent-rules.json
中添加对应的创建/查询规则 - 在 ai-agent.js
中如果需要特殊逻辑,添加对应工具 - 系统会自动通过 import_item_types
同步新对象类
十二、文件索引
| 文件 | 作用 |
|---|---|
| server/ai-agent-rules.json | 规则模板定义(31条规则) |
| server/ai-agent.js | AI代理核心(19个工具 + 意图识别 + 执行引擎) |
| server/digital-staff/llm-brain.js | LLM大脑(ECR审核/供应商分析/BOM优化/5Why根因) |
| server/feishu-bot.js | 飞书机器人集成(事件接收 + 消息回复 + 主动推送) |
| server/routes/aml.js | AML路由(优化/修复/比对/核心标记) |
| server/database1.js | 数据库管理(SQLite + 自动迁移) |
| server/utils/SCSAI-connection.js | SCSAI连接工具(SOAP API封装) |
| frontend/app.js | 前端应用(Vue 3 + SCSAI集成 + AI助手界面) |
| index-vue.html | 主页面(侧边栏 + 12个标签页 + AI助手) |
| frontend/styles.css` | 样式(深浅主题 + 响应式布局) |
BossAgents