docs(roadmap): 将 Phase 4 拆分为 4a/4b/4c 三个独立子阶段
This commit is contained in:
+75
-23
@@ -1,13 +1,13 @@
|
||||
# AG Core Roadmap
|
||||
|
||||
> 定稿日期:2026-05-11
|
||||
> 最后更新:2026-06-10(Phase 4 方案定稿 + SessionMemory 扩展 + Context 切换备忘)
|
||||
> 最后更新:2026-06-10(Phase 4 拆分为 4a/4b/4c 三子阶段,方案文档同步更新)
|
||||
|
||||
## 愿景
|
||||
|
||||
AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可插拔的架构,提供大模型调用、提示词工程、工具系统、记忆检索四大核心能力,支持快速组合出符合业务需求的智能体应用。
|
||||
|
||||
**当前状态**:Phase 0 基础设施已全部完成,Phase 1 提示词工程已全部完成,Phase 2 工具系统已全部完成,Phase 3 记忆系统已全部完成,Phase 4 方案文档已完成(含 SessionMemory 扩展),待编码实施。
|
||||
**当前状态**:Phase 0 基础设施已全部完成,Phase 1 提示词工程已全部完成,Phase 2 工具系统已全部完成,Phase 3 记忆系统已全部完成,Phase 4 方案文档已完成(已分拆为 4a/4b/4c 三个子阶段),待 Phase 4a 编码实施。
|
||||
|
||||
---
|
||||
|
||||
@@ -121,27 +121,71 @@ AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可
|
||||
|
||||
---
|
||||
|
||||
### Phase 4 — Agent Runtime(智能体运行时)
|
||||
### Phase 4a — Agent Core Glue(核心胶水层)
|
||||
|
||||
**目标**:实现多轮对话编排、任务规划与会话级记忆桥接。
|
||||
**目标**:提供最小可用的 Agent Runtime——把 Phase 0-3 的能力"装配"成 `AgentSession::submit_turn`。上层可基于 4a 构建多轮对话应用。
|
||||
|
||||
**交付物**:
|
||||
1. `agent.rs` + `agent/` 模块(8 个文件)
|
||||
1. `agent.rs` + `agent/` 模块(7 个文件:agent/error/runtime/builder/session/task + 模块根)
|
||||
2. `Agent` trait — 智能体角色定义(name / system_prompt / tool_definitions)
|
||||
3. `AgentSession` — 会话实例(绑定 `Arc<dyn Agent>` + `RuntimeBundle` + `SessionMemory`)
|
||||
4. `RuntimeBundle` — 显式依赖注入容器(7 个字段,含 `session_memory_backend`)
|
||||
5. `SessionMemory` — 会话级记忆(基于 `MemoryStore`,context 间信息桥接)
|
||||
6. `TaskAgent` — 任务型智能体(规划 → 执行 → 反馈)
|
||||
7. `AgentBuilder` — 链式构造入口
|
||||
8. `AgentError` — 统一错误类型(聚合 LlmError / ToolError / MemoryError)
|
||||
9. Hook 事件扩展(OnTurnStart / OnTurnEnd / OnPlanStepComplete)
|
||||
10. `docs/7-agent-runtime.md` — 方案设计文档
|
||||
3. `AgentSession` — 会话实例(绑定 `Arc<dyn Agent>` + `RuntimeBundle` + 内联 HashMap session_data)
|
||||
4. `RuntimeBundle` — 显式依赖注入容器(不含 session_memory_backend)
|
||||
5. `AgentBuilder` — 链式构造入口(不含 session_memory_backend)
|
||||
6. `AgentError` — 统一错误类型(6 个变体,不含 PlanParse)
|
||||
7. `Plan` / `Step` / `StepStatus` — 纯数据结构(不含任何解析逻辑)
|
||||
8. Hook 事件扩展:OnTurnStart / OnTurnEnd + turn_index 字段
|
||||
9. `docs/7-agent-runtime.md` — 方案设计文档(含 4a/4b/4c 分阶段计划)
|
||||
|
||||
**依赖**:Phase 0, 1, 2, 3(整合所有模块)
|
||||
**依赖**:Phase 0, 1, 2, 3
|
||||
|
||||
**优先级**:Could Have
|
||||
|
||||
**预估规模**:约 800 行代码
|
||||
**预估规模**:约 440 行代码
|
||||
|
||||
**状态**:✅ 方案已完成,待编码实施
|
||||
|
||||
---
|
||||
|
||||
### Phase 4b — Task Execution(任务执行)
|
||||
|
||||
**目标**:在 Phase 4a 基础上,赋予智能体"拆解目标 → 逐步执行"的能力。
|
||||
|
||||
**前置条件**:Phase 4a 已完成。
|
||||
|
||||
**交付物**:
|
||||
1. `TaskAgent` trait — `run(goal)` 自主式 + `execute_plan(plan)` 外部驱动式
|
||||
2. `PlanParser` trait + `JsonPlanParser` 参考实现
|
||||
3. `AgentError` 追加 PlanParse 变体
|
||||
4. Hook 事件扩展:OnPlanStepComplete + plan_step_index 字段
|
||||
|
||||
**依赖**:Phase 4a
|
||||
|
||||
**优先级**:Could Have
|
||||
|
||||
**预估规模**:约 200 行代码(增量)
|
||||
|
||||
**状态**:⏳ 待 Phase 4a 完成后启动
|
||||
|
||||
---
|
||||
|
||||
### Phase 4c — Session Memory(会话级记忆)
|
||||
|
||||
**目标**:提供会话级 key-value 记忆,作为 session 内各 context 之间的信息桥接通道。
|
||||
|
||||
**前置条件**:Phase 4a 已完成(可与 Phase 4b 并行)。
|
||||
|
||||
**交付物**:
|
||||
1. `SessionMemory` struct — 基于 `MemoryStore`,按 session_id namespace 隔离
|
||||
2. `RuntimeBundle` + `AgentBuilder` 扩展 `session_memory_backend` 字段
|
||||
3. `AgentSession` 替换内联 HashMap 为完整 `SessionMemory`
|
||||
|
||||
**依赖**:Phase 4a(Phase 3 MemoryStore)
|
||||
|
||||
**优先级**:Could Have
|
||||
|
||||
**预估规模**:约 115 行代码(增量)
|
||||
|
||||
**状态**:⏳ 待 Phase 4a 完成后启动
|
||||
|
||||
---
|
||||
|
||||
@@ -153,15 +197,19 @@ graph BT
|
||||
P1["<b>Phase 1: Prompt Engineering</b><br/>PromptTemplate<br/>PromptComposer"]:::done
|
||||
P2["<b>Phase 2: Tool System</b><br/>Tool Registry<br/>PermissionChecker<br/>MCP Client"]:::done
|
||||
P3["<b>Phase 3: Memory System</b><br/>MemoryStore<br/>ConversationMemory<br/>KnowledgeStore"]:::done
|
||||
P4["<b>Phase 4: Agent Runtime</b><br/>ConversationAgent<br/>TaskAgent"]:::pending
|
||||
P4a["<b>Phase 4a: Core Glue</b><br/>AgentSession<br/>RuntimeBundle<br/>Plan/Step 纯数据"]:::pending
|
||||
P4b["<b>Phase 4b: Task Execution</b><br/>TaskAgent<br/>PlanParser<br/>JsonPlanParser"]:::pending
|
||||
P4c["<b>Phase 4c: Session Memory</b><br/>SessionMemory"]:::pending
|
||||
|
||||
P1 --> P0
|
||||
P2 --> P0
|
||||
P3 --> P0
|
||||
P2 --> P1
|
||||
P4 --> P1
|
||||
P4 --> P2
|
||||
P4 --> P3
|
||||
P4a --> P1
|
||||
P4a --> P2
|
||||
P4a --> P3
|
||||
P4b --> P4a
|
||||
P4c --> P4a
|
||||
|
||||
classDef done fill:#4ade80,stroke:#16a34a,color:#1a1a1a
|
||||
classDef pending fill:#fbbf24,stroke:#d97706,color:#1a1a1a
|
||||
@@ -237,7 +285,7 @@ graph BT
|
||||
|-------|---------|------|--------|------|
|
||||
| Agent 身份切换(角色轮换) | `agent` | 借鉴 OpenCode Tab 键切换 build/plan:同一 `AgentSession` 持有可热替换的 `Agent` 引用,切换时不重置消息历史,在末尾追加 `synthetic: true` 的状态变更消息。详见 `docs/note-opencode-agent-switching.md` §4 | P2 | v0.2 待评估 |
|
||||
| System Prompt 多层动态拼接 | `agent/session` | 借鉴 OpenCode `request.ts:58-66`:拆分 `base_prompt + agent_prompt + env_context` 三层,`AgentSession::submit_turn` 每轮重算(不缓存),便于按 agent 类型动态切换 | P2 | v0.2 待评估 |
|
||||
| **多 Context 切换** | `agent` | **Phase 4 的 SessionMemory 数据结构已预留信息桥接通道,v0.2+ 在其上包装 `ContextManager` 实现完整的多 context 切换:创建/销毁/切换 context、通过 SessionMemory 桥接关键信息。详见 `docs/note-context-switch-design.md`** | P2 | v0.2 待评估 |
|
||||
| **多 Context 切换** | `agent` | **Phase 4c 的 SessionMemory 数据结构已预留信息桥接通道,v0.2+ 在其上包装 `ContextManager` 实现完整的多 context 切换:创建/销毁/切换 context、通过 SessionMemory 桥接关键信息。详见 `docs/note-context-switch-design.md`** | P2 | v0.2 待评估 |
|
||||
|
||||
---
|
||||
|
||||
@@ -247,20 +295,24 @@ graph BT
|
||||
2. **并行可能性**:Phase 0 和 Phase 1 可并行开展(无相互依赖),可加速早期交付
|
||||
3. **MCP 协议复杂性**:MCP 涉及协议握手、session 管理、长期连接,建议预留充足时间调研协议细节
|
||||
4. **Scope 蔓延风险**:当前 specs 只有 1 份文档,建议每个模块上线前都产出对应 spec,避免边实现边设计
|
||||
5. **Phase 4 抽象化边界**:AG Core 定位为"支持库"而非"Agent 产品",Phase 4 需严格控制范围——只暴露 trait + 最小 reference impl,业务循环(多轮 turn 编排、对话记忆自动回写、Task 拆解策略)留给上层应用。`SessionMemory`(会话级记忆)已在范围内——它提供信息桥接通道但不实现 context 切换逻辑。多 context 切换管理延后至 v0.2+。详细设计决策见 `docs/7-agent-runtime.md`
|
||||
5. **Phase 4 抽象化边界**:AG Core 定位为"支持库"而非"Agent 产品",Phase 4(4a/4b/4c)需严格控制范围——只暴露 trait + 最小 reference impl,业务循环(多轮 turn 编排、对话记忆自动回写、Task 拆解策略)留给上层应用。`SessionMemory`(Phase 4c)提供信息桥接通道但不实现 context 切换逻辑。多 context 切换管理延后至 v0.2+。详细设计决策见 `docs/7-agent-runtime.md`
|
||||
6. **参考项目语言差异**:OpenClaw / Hermes / OpenHarness 均为 Python/TypeScript 实现,OpenHuman 虽是 Rust + Tauri 但定位是桌面应用。借鉴时**只取架构模式**,不照搬具体实现(如 Pydantic 工具校验、SQLite Memory Tree、Node+Python 双进程等)
|
||||
|
||||
---
|
||||
|
||||
## 下一步行动
|
||||
|
||||
1. **Phase 4 实施方案**:`docs/7-agent-runtime.md` 方案文档已完成(含 SessionMemory 扩展),下一步启动编码实现,按依赖顺序完成 13 个交付任务后翻转 Roadmap 状态
|
||||
1. **Phase 4a 实施方案**:`docs/7-agent-runtime.md` 方案文档已完成(拆分为 4a/4b/4c 三阶段),下一步启动 Phase 4a 编码实现,按 10 个任务完成后翻转 Roadmap 状态。4b/4c 待 4a 交付后按需启动
|
||||
2. **Context 切换备忘**:`docs/note-context-switch-design.md` 记录了多 context 切换方案讨论,作为 v0.2+ 扩展项的输入
|
||||
3. **参考项目调研沉淀**:已完成 OpenClaw / Hermes / OpenHuman / OpenHarness 横向调研,结果沉淀至 `docs/note-agent-harness-references.md`,作为 v0.2+ 扩展项的输入
|
||||
4. **Phase 3 备用设计就绪**:`docs/note-knowledge-graph-design.md` 记录了 KnowledgeGraph、高级评分、RecallBased 淘汰等设计,v0.2+ 记忆扩展可直接参考
|
||||
|
||||
**已完成阶段**:
|
||||
**已完成 / 进行中阶段**:
|
||||
- ✅ Phase 0 Foundation — 全部交付物已完成
|
||||
- ✅ Phase 1 Prompt Engineering — 全部交付物已完成
|
||||
- ✅ Phase 2 Tool System — 全部交付物已完成
|
||||
- ✅ Phase 3 Memory System — 全部交付物已完成
|
||||
- ✅ Phase 4 方案已完成(拆分为 4a/4b/4c) — 待 4a 编码实施
|
||||
- ⏳ Phase 4a Core Glue — 方案就绪,待编码
|
||||
- ⏳ Phase 4b Task Execution — 依赖 4a
|
||||
- ⏳ Phase 4c Session Memory — 依赖 4a
|
||||
|
||||
Reference in New Issue
Block a user