aps-agent/docs/product/application-completion-audi...

192 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# APS Agent 整个应用完成度审查
日期:2026-09-09。审查对象:当前 main 工作区,HEAD=f9873ee,包含尚未提交的聊天/目录排产修复。
目的:回答“整个应用现在还没有完善什么”,不是重述架构蓝图,也不是用页面数量、测试数量换算完成百分比。
## 1. 总体判断
当前系统已有真实排产算法、订单和主数据管理、确认审批、图纸解析、知识检索及许多业务工具,能够完成受限数据条件下的本地试排。
距离用户要求的“学习真实计划员工作方式、由 Pi 调度多个 Agent、以通俗交互完成真实工厂排产”的完整产品,仍有明显的内部软件缺口。不能再归结为“功能基本完成,只等客户接口与外部验收”。
最主要的断点是:
1. 用户提供材料,不同入口并不进入同一条完整数据管线。
2. 读取、导入、自动补全、规则确认和方案生成的业务状态尚未统一。
3. 知识库和偏好学习已有,但学习计划员工作流程并形成经验证规则的闭环尚未形成。
4. Pi 主入口、外部 Pi API、Mesh 编排、Plan 运行时各有实现,尚未组成统一的任务调度中心。
5. ERP/WMS 的实际适配仍是模拟实现,MCP 总线尚不能代替统一业务模型和厂商连接器。
6. 结果展示、报告版本、长任务恢复、正式授权和部署验收还存在具体缺口。
## 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,与主线源码差异一致。
后续应以本清单逐项完成业务验收和回写状态,而不是继续累加入口、技术名词或“模块已实现”标签。