aps-agent/docs/plan/roadmap.md

5.7 KiB
Raw Permalink Blame History

长程路线图:平台主线 / 前端界面 / APS 独立化

三条长程线,六个里程碑,五个决策门。任务表里已有的编号直接引用,不另起一套。

1 三条线的终点

线 终点 判据
L1 平台主线(服务端 + Core) 一个引擎中立的平台服务:能对话、能调业务系统、写操作可控可查 A5 只读跑通 + A6 写操作幂等 + A4 安全验收
L2 前端与桌面 与现有 APS 项目一致的界面与桌面壳;工作区能承载 Provider 视图 A10.2 只读视图 + A10.5 桌面壳 + A10.8 干净机器验收
L3 APS 独立化 APS 作为独立系统运行:自己的网关、库、治理、界面、回归基线 B-G 独立化验收(不依赖平台任何模块)

三条线的交界只有两处:Provider 契约(L1 ↔ L3)与 provider-view 视图契约(L2 ↔ L3)。其余互不阻塞。

2 里程碑

# 里程碑 交付 依赖 估时
M1 平台可对话(假引擎) A3.1 引擎接口、A3.2 FakeRuntime、A2.7 评测跑通 无(A1/A2 已完成) 3–4 人日
M2 真引擎接入 A3.3 子进程 Pi、A3.4 工具桥、A3.10 进程管理、A3.11 扩展桥、A3.5 身份过滤、A3.7 落库、A3.8 上下文、A3.9 可替换验证 M1;决策 G1(模型与端点) 12–16 人日
M3 控制面成型 A4.1–A4.6 + A4-G:身份、策略、凭据、确认卡、审计 M2 12–15 人日
M4 首个真实系统只读 A5.1–A5.6:APS Provider、字段映射、账号绑定、健康探测、真实数据验收 M3;L3 到 B5 6–8 人日
M5 写操作与可插拔 A6 写操作幂等、A7 Provider 安装与可视化、A8 第二系统与跨系统流程 M4 18–24 人日
M6 多 Sub-agent 与发布 A9 Goal/Plan/Task 与受限 Sub-agent、A10 工作区/桌面端/门禁 M5 14–18 人日

3 L2 前端:分两批迁移

第一批(插在 M1 之后,建议新增工作包 A3.12):

搬什么 从哪来 为什么先搬
三栏壳对齐(导航轨、面板、分栏、命令面板、菜单栏) apps/web/src/App.tsx、shell/* 骨架决定后续所有视图的落点
对话渲染:Markdown + UI 块协议(确认卡、证据链、diff、报告) chat/*、viewport 的块组件 确认卡是 M3 的界面载体,先有渲染位
三个核心视图:甘特、负荷、交期 viewport/GanttView、LoadView、DueView 数据来自 Provider 视图契约,能验证契约够不够用
设计令牌与暗色模式 styles.css 后续所有组件复用

第二批(M6,归 A10.1–A10.3):

  • 剩余视图按归属分:平台通用视图(对比、运行记录、文件预览)留在平台;APS 专用视图(柔性甘特、能力池、计划分桶、世界差异、虚拟线回放)随 B6 进 APS 界面。
  • 桌面壳与本地守护、离线升级:A10.5、A10.6。

4 L3 APS:B 线的四个阶段

阶段 内容 与其他线的关系
B0 边界与契约冻结 aps/ 目录与工具链(B0.1)、边界清单与契约草案(B0.2)、迁出条件复核 独立,可立即开始
B1–B3 拆出来 网关分流、数据库拆分(平台 7 / APS 6)、解除 18 个文件对 agent_core 的反向引用 独立
B4–B5 补齐能力 APS 自带治理(动作分级确认 + 审计)、契约化接口层 B5 是 M4 的前置
B6–B7 界面与回归 APS 界面外壳(页面清单来自 aps-frontend 与 apps/web 的 APS 视图)、208 个测试跑通 B6 与 L2 第二批交界

5 决策门

# 决策 卡住什么 建议
G1 模型与端点(Pi 接哪个模型、密钥怎么放) A3.3 之后的真引擎验证 开发期用内网 OpenAI 兼容网关,密钥只进环境变量
G2 开发期数据库落地(SQLite 先行还是直接 PostgreSQL) A3.7 会话落库 SQLite 先行,存储层按 ADR-0007 写成方言无关
G3 剩余视图归属(平台通用 vs APS 专用) L2 第二批与 B6 第一批做完再定,用真实数据判断
G4 APS 迁出仓库的时机 不影响功能,影响权限与发版 按 ADR-0010 三个触发条件,出现即迁
G5 A5 联调方式(旧网关临时适配还是等 B5) M4 优先等 B5;若 B5 落后,允许临时适配但要在 B7 前退场

6 并行与串行

  • 可并行:L2 第一批(前端)与 L1 的 M2(引擎)在代码上不重叠;L3 的 B0–B3 与 L1、L2 都不重叠。
  • 必须串行:M3 的确认卡要在 M2 的事件流之后;M4 要等 B5;B2(拆库)与 A3.7(会话落库)不要同时动表结构,按 ADR-0008 的表清单为准。
  • 契约单点:contracts/ 与 docs/spec/ 同一时间只由一条线改,改完跑 pnpm verify。

7 风险

风险 影响 对策
模型额度或端点不可用 M2 卡住 引擎接口与 FakeRuntime 先行(M1 已完成大半),真引擎可后置
界面迁移按 main 原样抄 契约不匹配要返工 第一批只搬壳与三个视图,用真数据验证 provider-view 契约
APS 搬迁把旧包袱一起带来 B4/B6 变大 按 docs/spec/platform-vs-business.md 判据逐项过滤;客户硬编码在 B0 定处置
并行线同时改契约 冲突与返工 契约单点负责人;改契约必须四处同步(schema/TS/文档/样例)

8 近期动作(按顺序)

  1. A3.1 引擎接口与 RuntimeEvent、A3.2 FakeRuntime 与一致性测试(不依赖任何决策)
  2. A2.7 评测集跑通,产出六项指标基线
  3. 等 G1、G2 决策,进 M2 真引擎接入
  4. 并行启动 L3 的 B0.1/B0.2
  5. M1 完成后插 A3.12 前端第一批