21 KiB
APS Agent 整个应用完成度审查
日期:2026-09-09。审查对象:当前 main 工作区,HEAD=f9873ee,包含尚未提交的聊天/目录排产修复。
目的:回答“整个应用现在还没有完善什么”,不是重述架构蓝图,也不是用页面数量、测试数量换算完成百分比。
1. 总体判断
当前系统已有真实排产算法、订单和主数据管理、确认审批、图纸解析、知识检索及许多业务工具,能够完成受限数据条件下的本地试排。
距离用户要求的“学习真实计划员工作方式、由 Pi 调度多个 Agent、以通俗交互完成真实工厂排产”的完整产品,仍有明显的内部软件缺口。不能再归结为“功能基本完成,只等客户接口与外部验收”。
最主要的断点是:
- 用户提供材料,不同入口并不进入同一条完整数据管线。
- 读取、导入、自动补全、规则确认和方案生成的业务状态尚未统一。
- 知识库和偏好学习已有,但学习计划员工作流程并形成经验证规则的闭环尚未形成。
- Pi 主入口、外部 Pi API、Mesh 编排、Plan 运行时各有实现,尚未组成统一的任务调度中心。
- ERP/WMS 的实际适配仍是模拟实现,MCP 总线尚不能代替统一业务模型和厂商连接器。
- 结果展示、报告版本、长任务恢复、正式授权和部署验收还存在具体缺口。
2. 证据口径
- “代码确认”:直接检查了本工作区对应组件、接口和实现;不表示已在用户当前运行实例上复现。
- “已有本地链路”:实现和对应测试/历史验收存在,但不等同工厂生产验收。
- “尚未接通”:入口或单独模块存在,但所需业务流程没有接到一起。
- “待外部验证”:有适配或构建代码,但本次没有新的真实环境验收证据。
- 本次不修改产品代码,不重跑全量测试、不启动或重启用户服务、不合并或推送分支。只新增本审查文档。
- 既有浏览器控制通道在本会话中持续返回 nodeRepl.fetch request failed,本审查不声称完成了全应用实屏 E2E。
3. 按整个业务流程检查
| 编号 | 能力域 | 当前已经有的部分 | 尚未完善的部分及用户影响 | 判定 |
|---|---|---|---|---|
| A01 | 普通计划员主流程 | 对话、订单、图纸、主数据、柔性工作台、时间线等入口;上一轮修了部分下一步提示 | 还没有围绕“本次排哪些单、使用什么数据/规则、正在做什么、哪版可下发”的统一任务对象和跨页面进度;用户仍需自己拼接各面板 | 产品主流程未收口 |
| A02 | 聊天附件 | Excel/CSV/TXT 可预览,摘要进入对话 | 聊天“+”只将摘要与少量样例转成文本;没有在这条路径保存为项目文件或提交完整批次。项目文件上传是另一条路径。用户以为已交付完整材料,后续工作流可能仍使用项目原有数据 | 入口与数据管线未接通 |
| A03 | 支持的附件类型 | 文件选择器允许 PDF、Word、图片等;另有知识和图纸专用上传接口 | sendDraft 实际只处理 xlsx/xlsm/csv/txt,其余只回复“不支持”;.xls 也可选却不在此解析白名单。入口承诺与实际能力不一致 | 确认的功能缺口 |
| A04 | 数据真实性与人工确认 | 有来源指纹、冻结数据、审批、部分模板/推断标记 | 深度“分析”会导入主数据、创建产品占位并应用知识模板;纯读取、建议补全、用户确认入库尚未分开。真实、推断和模板资料的统一使用边界未完成 | 数据治理不完整 |
| A05 | 主数据维护 | 资源树、工位/设备维护、BOM/工艺编辑与版本发布/回滚、周班次与节假日已实现 | 页面有“主数据”“主数据维护”“柔性资源”多个入口,维护的数据也分 equipment/flexEquipment、shiftCalendar/flexCalendar 等模型;尚未形成统一的工厂数据准备向导与清晰权威来源 | 功能已有,模型与交互整合未完成 |
| A06 | 销售订单 | 新建、编辑、审核、取消、预测和插单,订单分解与追溯已实现 | 维护接口仍按一个 productId/quantity 操作首条明细,列表以首条产品为主。真实 ERP 多行订单的逐行数量、交期、工艺版本管理不完整;新建还固定填数量×100金额、V1.0版本 | 真实订单语义不完整 |
| A07 | 预测订单 | 预测台账、按置信度试排、整条预测转为正式订单 | 转正将整条标为 CONSUMED,未形成正式订单分次到来时的部分冲减、余额和跨周期消费流程 | 完成基础切片 |
| A08 | 月/周计划与 MPS | 分桶、粗能力、可行性、削峰建议;MPS 保存、关联排产、采用、差异追溯已有 | AP 粗能力按产线件/天相加、周一至周五算工作日;产供建议有固定加班/扩能比例及成本指数。尚不能当作按真实设备、班次和订单工时计算的现场产供决策;MPS 本地事实不等于 ERP/MES 闭环 | 基础计划能力有,现场决策未完成 |
| A09 | MRP、采购和委外 | 多层 BOM、MAKE/BUY/OUTSOURCE、自制需求、采购/委外草稿及本地下达 | 下达主要改变本地 RELEASED 状态,预计到料可按前置期推算;不是供应商或 ERP 已接收/已承诺的真实供应。对外正式订单、变更、收货回执仍需接通 | 本地业务切片完成,外部履约未完成 |
| A10 | 排产算法 | Rule、CP、Hybrid、GA、NSGA-II,以及日历、容量、换型、冻结、资源约束、诊断等有真实实现 | 缺少以工厂真实规则/规模为依据的统一算法适用性和验收基准;不同功能使用不同数据轨与口径。算法有结果不能证明现场输入完整、方案可执行或是工厂认可的最优取舍 | 算法底座较完整,现场适配待验收 |
| A11 | 手工调程与异常调整 | 两类甘特都有拖动时间→预校验→确认→保存;另有插单、局部换机和分级重排工具 | 甘特拖动入口传工单 ID 和新开始时间,跨设备拖动、批量联动不是这条交互的已接通能力;人工修改理由、例外与效果未回流为可学习经验 | 局部调整有,计划员日常操作闭环不完整 |
| A12 | 方案版本和报告 | 对比、甘特、版本历史、订单/设备 XLSX 指定版本导出已有 | 通用计划报告/Word 报告没有传入 versionId,内部选最新版本;会话结果缓存固定轨优先。缺统一结果标识,使用户正在看/准备导出的版本口径仍有不一致风险 | 版本一致性存在代码缺口 |
| A13 | 知识库与检索 | 文档上传、分段、出处、工艺模板、混合检索、本地/API embedding 已有 | 当前主要是资料与检索工具;没有把一个工厂的作业习惯、例外和现场确认统一组织为可执行知识闭环。不能把“能问知识库”等同“理解本厂排产工作方式” | 检索已有,领域学习未完成 |
| A14 | 学习计划员经验 | 记录策略选择,按订单/VIP/紧迫度等特征归纳条件偏好 | 信号主要来自固定轨试排和方案采用;没有完整采集人工拖动、插单取舍、换机理由、例外与实际效果,再提出规则并由计划员确认的链路 | 核心产品定位尚未完整实现 |
| A15 | 自然语言规则到约束 | 已有 SOP 编译预览及确认应用 | 编译是模板/关键词逻辑,换线分钟数可落到固定默认值;对任意工厂规则的范围、条件、例外、冲突、回放和生效审批未形成完整产品流程 | 规则能力为受限切片 |
| A16 | Pi 主助手与外部接入 | Pi 真实进程调用、主回复、受控工具、兜底计划已有 | 当前 main 外部 Agent API 仍只读;完整 P2/P3/P4 位于 Round 85,未完整合入主线。主助手、外部 API、Plan、状态建议没有形成统一任务上下文 | 已接入,但完整集成未完成 |
| A17 | 多 Agent 调度中心 | 角色模板、Goal、任务依赖、执行线程、消息记录、看门狗已有 | 同一 Goal 当前逐个执行预设/提交的 intent 任务,未见 Pi 按用户目标动态创建专业 Agent 任务图的接线;会自动批准确认卡,并通过部分文本关键词判断失败。缺真实并行编排、统一结果合同与待人工确认状态 | 有编排基础,目标调度中心未完成 |
| A18 | ERP/SAP 对接 | 订单/库存拉取、状态同步、出站证据与本地镜像流程 | sap_sync 直接调用 sap_stub;没有真实 RFC/OData 适配器,也未有统一 ERP 厂商适配层 | 模拟集成 |
| A19 | MES 对接和执行反馈 | 有 HTTP 适配器、下发校验、幂等、回执、报工、撤单和就绪检查 | 未配置 HTTP 地址时走本地模拟;工厂端点、字段、状态和真实回执待联调。工作台还有“一键模拟完工”,其结果不能作为车间执行证据 | 实现部分真实适配,现场闭环未验收 |
| A20 | WMS 与断连补推 | 库存/缺料事件、回放、补偿链有本地实现;断连报工可记 PENDING_SYNC | WMS 事件源直接用 wms_stub;真实库存、预留、在途口径和事件接入待完成;PENDING_SYNC 自动补推未完成,恢复后目前主要展示对账结果 | 模拟事件链,生产同步未完成 |
| A21 | 标准可插拔连接器 | MCP manifest、权限、健康、启停、本地 handler 和 HTTP 调用已有 | 远端调用是约定的 /mcp/tools/{name} HTTP 形态,不能直接等同兼容所有标准 MCP 服务;更缺统一业务对象、映射版本、分页/增量水位、来源冲突和厂商合同。连接中心还要求改 .env | 工具总线有,标准工厂接入产品未完成 |
| A22 | 图纸、图片和语音 | DXF/PDF 上传、解析、预览、审核候选与关联;文本型图纸 AI 提取;浏览器语音入口已有 | PDF 主路径抽文本;drawing_ai 将文本证据传给普通 chat_json/chat_text,没有真实图像输入。图像元数据提取器明确 requiresVlm;后端 ASR/OCR/VLM 服务未完整接入。不能承诺扫描图纸自动理解与准确工时生成 | 文件图纸链路已有,多模态理解不完整 |
| A23 | 项目、权限和审批 | 项目/会话持久化、成员/租户隔离、确认与检查点、审计及数据库审批已有 | 不同入口的确认体验/状态投影仍分散;Mesh 自动批准与人工主流程不一致;MySQL 多主机、物理 WORM/KMS 等属于未证实的生产环境验收 | 治理底座已有,全入口和生产环境未收口 |
| A24 | 长任务、部署与正式交付 | 异步提交/查询/取消、Web 构建、桌面 Sidecar、升级/回滚有实现 | 通用 JobQueue 只保存在进程内,后台长任务不具备持久恢复;桌面授权 provider 只有 mock/unconfigured;签名、干净离线机、信创多架构和正式发布矩阵缺当前验收 | 单机能力有,生产交付不完整 |
上述 24 个能力域不是同等权重需求,不能把它们简单平均成百分比。A02/A04 等内部缺口也不能列为“等现场环境”的理由。
4. 最重要的代码证据
以下路径相对仓库根目录,行号为本次审查工作区位置。
F01 聊天附件未进入完整数据工作流
apps/web/src/chat/ChatPanel.tsx:84:formatImportPreview 每个 batch 最多取 2 条样例、每条前 5 个字段。apps/web/src/chat/ChatPanel.tsx:322:sendDraft 只调用 postImportPreview,再将文字拼接到 send(payload);没有在此调用项目文件上传、import.commit 或文件引用接口。apps/web/src/chat/ChatPanel.tsx:339:实际支持扩展名与文件选择器不一致。apps/web/src/projects/ProjectPanel.tsx:244:项目文件上传另走 uploadProjectFiles。
影响:聊天发进来的完整 Excel 并没有因此成为 folder.schedule 的完整数据源。需要统一附件资产、项目绑定、预览、确认和本次数据快照。
F02 “分析数据”含写入和自动补模板
server/aps_domain/project_analyze.py:168附近:缺物料创建 FINISHED_PRODUCT 占位,库存/在途等填 0。- 同文件
_fill_from_knowledge:选择第一个推荐工艺模板并 apply_template_to_product。 server/aps_domain/project_analyze.py:413:深度分析直接执行该补全。server/aps_domain/workflow.py的 data.analyze/folder.analyze 分支传入实际 store.data 后保存。
影响:用户想了解数据,项目内容可能同时被改变。虽然部分标记说明推断/模板,仍缺“候选建议→核对→正式使用”的统一业务边界。本次没有断言所有模板都可通过生产下发校验。
F03 订单界面不是完整多行 ERP 订单维护
server/aps_domain/orders.py:264:列表读取首条 items 作为产品和数量展示。server/aps_domain/orders.py:631:更新首条订单明细。server/aps_domain/orders.py:665:新建总金额为 quantity * 100;items中 bomVersion/routingVersion 固定 V1.0。server/aps_domain/orders.py:235:flex→sales 同步按单条明细组织。
影响:多产品、分批交期、真实订单行号和版本对应关系需要补齐。固定金额不能用作真实商务或成本数据。
F04 计划层有简化计算,不能当作现场精确决策
server/aps_domain/planning.py:38:工作日按周一至周五计算。server/aps_domain/planning.py:50:日产能按各 ACTIVE 产线的件/天合计。server/aps_domain/planning.py:791:固定相对成本指数;加班增能 25%、扩线增能 40%。
这些是明确的粗估规则,不是算法未实现。缺口在于现场单位/工时/班次、成本和取舍的统一输入及验证。不同产品一件的工作量不同,不能仅靠件数汇总给出精确承诺。
F05 选中历史方案与通用报告口径未统一
server/gateway/app.py:5089:report_export 接受 versionId。server/gateway/app.py:5102:Word 计划报告调用未传 versionId。server/gateway/app.py:5118:只有订单/设备 XLSX 分支传入 versionId。server/aps_domain/reports.py:215、:555:通用计划/Word 报告选择最新柔性版本。apps/web/src/App.tsx:306:会话结果快照优先使用固定轨版本号,并合并不同视图结果。
影响:需要建立统一的“当前正在审阅的方案”引用,并贯穿图表、报告、审批和下发。这里是代码确认的口径差异,尚未在用户浏览器上复现某次具体误导出。
F06 经验学习主要是策略偏好,尚未覆盖实际作业经验
server/knowledge/preferences.py:132:record 的主要输入是 strategy/source/features。server/aps_domain/workflow.py:173、server/gateway/app.py:3891:调用来自 schedule.run/scenario.apply。server/knowledge/preferences.py:250后已有特征分箱与条件偏好,不能称完全没有学习。server/aps_domain/sop_rules.py:46:SOP 编译为模板和关键词逻辑;换型时长存在默认 60/30 分钟。
尚需:调整理由/例外采集、经验候选、作用域、现场确认、规则冲突、历史回放、版本生效及效果反馈。这是本项目产品定位的核心缺口。
F07 Mesh 还不是 Pi 动态多 Agent 调度中心
server/agent_core/mesh.py:55:默认模板是一条分析→分解→下达→排产→报告链;API 也能接收 tasks,但不等于 Pi 已自动生成这些任务。server/agent_core/mesh.py:396:单 Goal 的 run 循环取下一就绪任务并同步执行。server/agent_core/mesh.py:465:返回确认卡后自动批准。server/agent_core/mesh.py:475:通过“被阻断/无法生成/没有可下达”等文本判定部分失败。server/agent_core/mesh.py:525:专业角色执行的是 handle_intent,没有在该执行点调用独立 Pi 专业 Agent。
缺少动态任务分解、专业上下文与工具范围、并行候选隔离、结构化成功条件、人工决策暂停/恢复及统一任务事实。
F08 工厂连接器不只是缺 URL 和 Token
server/aps_domain/sap_sync.py:13固定导入 sap_stub。server/aps_domain/wms_events.py:409、:557、:563调用 wms_stub。server/aps_domain/mes.py:20可根据 MES_HTTP_BASE_URL 选择真实 HTTP 适配器;没有配置时使用 stub。server/agent_core/mcp_bus.py:724:本地 handler 或固定 HTTP 工具路由。apps/web/src/gov/GovConsole.tsx:1275:“外部连接将在 M4 开放”,与别处已存在的插件页状态不一致。
缺口包含内部标准对象和厂商映射合同,不是单纯现场验收。连接器应处理类型/单位、分页、增量/删除、重复/乱序、来源版本、写回回执和未知结果对账。
F09 图纸解析已做,多模态完整理解未做完
server/aps_domain/drawing_pdf.py:71附近:使用 page.extract_text。server/aps_domain/drawing_ai.py:36:证据组装为文本;:217、:224调用 chat_json/chat_text。server/aps_domain/multimodal.py:473后 ImageMetaExtractor 只用元数据线索,结果标记 requiresVlm。apps/web/src/chat/ChatPanel.tsx:375:语音用浏览器 SpeechRecognition。
因此不能把现有 DXF/PDF 解析和文本 AI 提取描述为已接通扫描图 OCR、图像视觉模型或工业环境语音识别。标准工时和设备能力还必须从可靠来源获取或由工艺人员确认。
F10 长任务恢复和正式桌面授权缺实现
server/agent_core/async_jobs.py:67:JobQueue._jobs 为内存字典;submit 起 daemon 线程;没有在该队列中保存任务和恢复执行的实现。server/auth/licenses.py:107、:115、:301:只有未配置和 Mock 授权 provider;get_license_provider 没有选择真实商业授权服务的分支。
影响:长时敏感性/蒙特卡洛任务遇到服务重启会丢失该队列的任务状态。桌面打包能启动也不代表已有可交付的正式授权、席位和生命周期管理。
5. 必须纠正的旧结论
不能继续按旧清单说“设备维护没做、BOM 版本没做、周日历没做、向量检索没做、甘特拖动没做”。当前都有相应实现:
| 已核实存在的能力 | 当前证据 |
|---|---|
| 工位/设备 CRUD,BOM/工艺版本发布与回滚,周模板/节假日 | server/gateway/masterdata_api.py;apps/web/src/masterdata/MasterDataPanel.tsx |
| 向量/混合检索 | server/knowledge/embedding.py:本地 sentence-transformers、API embedding、降级检索 |
| 固定/柔性甘特时间拖动的预校验与确认保存 | apps/web/src/viewport/GanttView.tsx:124;FlexGanttView.tsx:181 |
| MPS 保存、排产关联、采用/发布事实、差异追溯 | server/aps_domain/mps_planning.py;server/gateway/mps_api.py |
| 真实算法与 CP 日历/容量、时间物化 | server/engines;docs/round-84-cp-direct-materialization-record.md |
| 康尼九文件、10 订单/72 工序、五策略与导出本地链路 | docs/round-76-kangni-real-data-trial-work-plan.md:128 |
同时,旧总表 50 Done / 10 Partial 的日期是 2026-08-20,且很多“已完成”定义是首切片或本地验收。它既漏记后续已做功能,也没有覆盖用户现在要求的完整 Pi 调度和经验学习产品,不能拿来认定当前仅剩外部资源问题。
6. 优先级:先补什么才会改变实际可用性
| 优先级 | 必须补齐的事项 | 可检查的完成标准 |
|---|---|---|
| 第一批:能信任输入与结果 | 聊天附件/项目文件统一管线;真实/模板/推断来源隔离;订单明细;方案版本统一绑定 | 上传完整文件后全量记录可追溯;未确认假设不成为事实;选哪版就导出/审批哪版 |
| 第二批:能作为计划员助手 | 单一排产任务状态;Pi 和 Plan/Mesh 接线;人工决策暂停/继续;失败恢复 | 用户一句业务目标能走完准备→计算→检查;等待确认时不会重复启动任务;失败不误报完成 |
| 第三批:能学会本厂做法 | 经验采集、规则候选、确认、回放、版本生效和反馈 | 一条真实规则具有来源、人工确认、回放对比,并影响后续方案;可以撤销 |
| 第四批:能接工厂真实闭环 | 标准业务模型和连接器;真实 ERP/WMS;MES 字段/回执;断连对账与补推 | 真实订单/库存/在制→排产→确认下发→外部回执→反馈→调整,有完整证据 |
| 第五批:能稳定交付 | 持久化后台任务、正式授权、角色菜单、术语整理、目标环境安装/升级验收 | 重启可恢复;普通计划员无须操作 Goal/Intent/ApiKey;正式环境的安装、升级、授权及恢复通过 |
这些批次表达依赖和业务价值,不是新一轮实施已获完成的声明。ERP 标准模型设计和现场数据采集可在前几批同步准备。
7. 本次审查边界与交付状态
本次已检查主导航、聊天/附件、订单/预测、主数据、MPS/AP、MRP、排产/调程、报告、知识/经验/SOP、Pi/Mesh、ERP/MES/WMS/MCP、图纸/多模态、审批/权限、异步任务和部署授权的代码与相关文档。
本次没有修改产品代码,也没有新增修复承诺。上一轮 108 项后台回归、64 项 Node 和 Web 构建通过,只证明上一轮修改范围;不是本报告全部能力已通过的证据。康尼的真实数据试排历史记录也不证明 ERP/MES/WMS 生产闭环。
当前 main 的外部 Pi API 仍只读;Round 85 的完整接入实现与验收在独立分支。git merge-base --is-ancestor round/85-pi-agent-integration main 返回 1,与主线源码差异一致。
后续应以本清单逐项完成业务验收和回写状态,而不是继续累加入口、技术名词或“模块已实现”标签。