状态:方案讨论稿;仅设计,尚未实施。目标是为本仓库建立独立的 Python 智能体服务,并通过受控接口覆盖实际业务链路。
九个业务场景的触发、取证、计算、结果、审批边界与仓库接入核对见 场景蓝图。
框架已确定为 LangGraph;以 LangGraph 技术方案 为工程实现依据,其中明确了检查点存储、图状态与审批恢复细节,并修订早期存储建议。
企业初次上线与日常补录新增核心主线:WPS 等工作文件分析、多轮核对与业务入库,与运营场景并列建设。
本仓库以 Spring Boot 模块承载业务规则、权限、审批和数据,Python 项目负责跨模块理解、检索、分析、规划与建议。用户从现有前端或业务单据发起任务;Java 网关鉴权并提供工具接口;Python 智能体生成带证据的建议或待审批操作;所有业务写入仍经原有 Java 服务完成。
设计目标是“一个智能体平台 + 多个领域能力包 + 跨领域流程”,而不是为每个模块复制一个聊天机器人。平台先接入全部业务对象的**目录和只读能力**,再按风险逐步开放可审批的动作。目录覆盖不等于第一版就有完整的自动执行能力。
docs/project-business/data/modules.json 给出了 MDM、CRM、SRM、ERP、生产、仓储、质量、质检报告、设备、售后、HRM、BPM、AI 的业务对象与上下游。yudao-module-ai 已有模型配置、知识库和 AiChatApi;CRM 报价 OCR、ERP 来票 OCR、MES 质检建议与四类生产预测已有调用点。新 Python 服务应对接或逐步迁移这些能力,避免双套答案与配置。yudao-module-mes 有设备、点检、维修、工单、库存、检验等领域;yudao-module-bi 有仪表盘与图表配置。archive、finance、research、ums、wxcp 在当前源码中缺少可直接证明的管理端控制器,先放入能力目录,待逐一核实接口后开放。im 与 member 模块虽有代码,现有业务地图将其列为主链路未消费或遗留能力。默认不把它们作为首批生产工具。flowchart LR
U[Vue / 移动端 / 单据按钮] --> J[Java 智能体网关]
J --> P[Python FastAPI 智能体服务]
P --> O[任务编排与状态机]
O --> R[领域工具目录]
O --> K[知识检索]
O --> M[模型与规则 / 预测器]
R --> J
J --> B[现有 Java 业务 Service / API]
B --> D[(业务库)]
O --> A[(智能体会话 / 证据 / 审计)]
O --> H[人工审批队列]
H --> J
责任划分
| 层 | 职责 | 不承担 |
|---|---|---|
| Java 智能体网关 | 现有登录态、RBAC、数据范围、业务 API 封装、审批与幂等写入 | 模型推理与跨域规划 |
| Python 智能体服务 | 意图路由、工具计划、证据汇总、约束校验、建议生成、会话审计 | 直连并修改业务表、绕过 BPM |
| 领域工具 | 结构化查询、计算、模拟与受控命令;每个工具声明权限、字段和版本 | 返回不受控的整库数据 |
| 知识层 | SOP、工艺、质检规范、产品手册、制度等文档检索 | 把知识文档当作实时库存或审批状态 |
| 规则与模型层 | 确定性校验、预测模型、LLM 语言解释 | 让 LLM 决定硬性业务规则 |
关键请求上下文:user_id、部门/数据范围、tenant_id(即使当前关闭也保留字段)、task_id、trace_id、场景、业务对象引用和权限快照。Python 不可信任前端传入的权限声明;每次工具调用由 Java 服务端按当前用户重新鉴权。
下表是**目标工具目录**,不是对现有接口均已可用的声明。每行先交付只读工具和引用链接,写动作另行进行接口与权限核实。
| 领域 | 首批只读能力 | 后续建议或审批动作 |
|---|---|---|
| MDM 主数据 | 物料/SKU、计量单位、仓库、批次属性查询;编码消歧 | 主数据重复项修订建议 |
| CRM 销售 | 客户、商机、报价、合同、回款计划、销售目标摘要 | 跟进建议、合同风险提示、报价草稿 |
| SRM 供应商 | 供应商资质、招投标、交付与绩效查询 | 资质到期提醒、候选供应商比较 |
| ERP 采购/销售/资金 | 采购申请与订单、来票付款、销售订单、收款状态 | 缺货采购建议、订单异常解释、对账候选项 |
| MES 生产 | MPS、工单、工序任务、报工、工艺路线、工单 BOM | 缺料/工时/风险/交付预测整合,排程方案模拟 |
| MES 仓储 | 库存维度、占用、冻结、批次/SN、出入库事务 | 调拨/补货建议,追溯链生成 |
| MES 质量 | IQC/IPQC/OQC/RQC、指标、缺陷、NCR | 检验判定建议、异常归因、NCR 处置草稿 |
| 质检报告 | 模板版本、报告实例、冻结快照引用 | 报告缺口解释与生成前检查 |
| 设备/工装/排班/能耗 | 设备状态、点检/维修、工装、班组、能耗记录 | 维修优先级、设备风险、排班冲突建议 |
| 售后 | 工单、维修、退货、质检与退款回调状态 | 客诉归因、退货进度解释、处理草稿 |
| HRM | 人员可用性、排班、考勤与交接状态的最小必要摘要 | 人力缺口建议;薪酬数据默认不进入通用会话 |
| BPM | 流程实例、当前任务、审批轨迹、业务回调状态 | 待办解释、审批材料缺口提示;审批决定仍由审批人执行 |
| BI | 指标定义、仪表盘聚合结果 | 跨域经营解释、异常钻取、指标口径引用 |
| AI/知识 | 现有模型与知识库、OCR/预测调用登记 | 统一模型网关、提示词版本与评估 |
| System/Infra | 用户可见范围、字典、附件引用、任务/审计日志 | 管理配置建议;高权限工具单独审批 |
| Archive/Finance/Research/UMS/WXCP | 建立模块清单、核实是否有业务 API | 有实际接口与责任人后加入工具目录 |
| IM/Member | 保留兼容入口,不在默认业务助手搜索范围内 | 业务确认启用后再接入 |
跨域语义层统一使用 BusinessRef(module, object_type, id, code) 和业务事件关系,避免在提示词中拼接表名。优先连接“销售订单→MPS→工单→领料/报工→质检→入库/出库→回款/售后”等真实单据引用;没有确定关联时明确显示“待核实”,不靠名称猜测。
输入销售订单或合同编号。读取 CRM 合同、ERP 销售订单、MPS/工单/报工、库存占用、采购到货、设备停机、质检阻断与历史交付。确定性计算缺口和预计完成范围;模型说明主要风险、证据、下一步与责任岗位。输出是“风险卡 + 证据引用 + 可选处理方案”,排程或采购仅生成草稿。
输入 IQC/IPQC/OQC/RQC/NCR 或批次号。沿供应商、来料、库存批次、工单工序、设备、检验指标、销售出库和售后链路追溯。输出影响批次/订单清单、时间线、已知与未知环节。任何库存冻结、返工、退货和报废动作进入原有审批流。
用户提问“本周交付为何下降?”之类问题。先识别可访问的 BI 指标口径,再查聚合数据和相关单据,引用具体时间范围与来源。区分事实、计算结果与推测;没有足够数据时给出缺失清单。该入口可覆盖全部已接入模块,但仅返回用户可见的数据。
接收任务 → 鉴权/识别业务对象 → 选用场景模板 → 规划只读工具
→ 并行取证 → 校验时间、单位、口径与关联 → 规则/预测计算
→ 生成带来源的答案/方案 → 如需写入则形成待审批命令
→ Java 再鉴权与业务校验 → BPM/人工确认 → 执行并回读结果
工具调用使用 JSON Schema/Pydantic 输入输出。每个工具登记:name、domain、read_or_write、permission、data_scope、timeout、schema_version、idempotency_key。查询默认分页与限时;跨域任务限制最大步骤、最大工具调用次数和成本。失败时返回已核实部分与缺失证据,不伪造结论。
输出统一为 answer、facts[]、inferences[]、unknowns[]、citations[]、risk_level、proposed_actions[]、approval_required。每条来源包含业务对象、接口版本、采集时间和可在原系统打开的链接。对于金额、库存、合格判定、审批权限等硬约束,以业务服务返回的规则和状态为准。
industrial-agent/
pyproject.toml
src/industrial_agent/
api/ # FastAPI 路由:会话、任务、审批草稿、健康检查
core/ # 状态机、计划器、工具调度、上下文、审计
contracts/ # Pydantic DTO 与版本化工具契约
domains/ # mdm/crm/srm/erp/mes/qc/aftersales/hrm/bpm/bi ...
workflows/ # 交付风险、质量追溯、跨域问答
integrations/ # Java 网关、模型、知识库、事件总线适配器
policies/ # 权限范围、敏感字段、审批门槛、预算
evaluation/ # 场景样本、回归指标、结果标注
tests/
docs/
建议选用 Python 3.11+、FastAPI、Pydantic、httpx;任务状态与审计存储采用仓库现有 MySQL/Redis 体系,但使用独立 schema/表和服务账号,不直接修改业务表。模型适配层兼容已有 AI 模型配置,具体复用方式要在实施前核对认证与 API。RAG 可以先消费现有 AI 知识库能力,不预设再次部署向量库。
POST /agent/tasks:带业务对象引用与用户意图,返回 task_id。GET /agent/tasks/{id}:流式或轮询获取状态、证据和结果。POST /agent/tasks/{id}/proposals:生成结构化待审批命令;不直接写业务单据。POST /agent/tasks/{id}/approve:由 Java 网关与 BPM 处理审批,不接受 Python 自报审批通过。source_ref;内部通信使用服务认证,用户上下文由网关签发并限时。| 方案 | 形态 | 优点 | 代价/适用情况 |
|---|---|---|---|
| A:统一问答层 | Python 服务只调只读工具和知识库 | 接入快、风险低,适合先做统一入口 | 很难覆盖审批与执行闭环 |
| B:平台 + 领域能力包(推荐) | 统一任务编排、领域工具、跨域工作流、分级审批 | 能逐步覆盖所有业务,又保留各模块规则 | 需要建设 Java 网关和工具契约 |
| C:多自治智能体群 | 每个领域独立规划与协商 | 领域团队可独立演进 | 协调、审计、权限和结果一致性复杂,当前不宜直接作为首版 |
推荐 B 的第一阶段只读运行,保留未来从单一编排器发展为领域专长智能体的接口。选择方案时重点比较:想先解决的跨域任务、现有 Java API 的可复用程度、是否允许智能体提交审批草稿,以及上线期限。
trace_id;答案有来源链接。首批评估集应包含缺料、重复库存占用、质检不合格、已存在维修单、跨部门越权、已撤销审批、数据过期、接口超时、关联断链等案例。上线采用观察模式,先比对建议与人工处理,再扩大可执行范围。
yudao-module-ai 配置,还是由 Python 独立管理?这需要核对当前模型服务的可调用接口与运维方式。以上选定后,再收敛接口清单、交互流程、数据库表、部署图和验收样例,形成可实施版本。