feat(agent): 实现 Agent Runtime 核心胶水层 (Phase 4a)

- 添加 Agent trait、AgentSession、RuntimeBundle、AgentBuilder
- 添加 Plan/Step/StepStatus 任务规划数据结构
- 添加 AgentError 统一错误类型(聚合 LlmError/ToolError/MemoryError)
- 实现 submit_turn 单轮对话流程(含 hook 触发与 cost 累计)
- 扩展 LlmCycle 支持 Arc<dyn LlmProvider>
- 扩展 HookEvent 添加 OnTurnStart/OnTurnEnd
- 更新 roadmap 状态
This commit is contained in:
徐涛
2026-06-11 21:45:28 +08:00
parent 59ec0f5597
commit 2b189880a9
11 changed files with 1025 additions and 19 deletions
+24 -17
View File
@@ -1,13 +1,13 @@
# AG Core Roadmap
> 定稿日期:2026-05-11
> 最后更新:2026-06-10Phase 4 拆分为 4a/4b/4c 三子阶段,方案文档同步更新
> 最后更新:2026-06-11Phase 4a 编码实施完成;Phase 4b/4c 仍待启动
## 愿景
AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可插拔的架构,提供大模型调用、提示词工程、工具系统、记忆检索四大核心能力,支持快速组合出符合业务需求的智能体应用。
**当前状态**:Phase 0 基础设施已全部完成,Phase 1 提示词工程已全部完成,Phase 2 工具系统已全部完成,Phase 3 记忆系统已全部完成,Phase 4 方案文档已完成(已分拆为 4a/4b/4c 三个子阶段),待 Phase 4a 编码实施
**当前状态**:Phase 0 基础设施已全部完成,Phase 1 提示词工程已全部完成,Phase 2 工具系统已全部完成,Phase 3 记忆系统已全部完成,Phase 4a 核心胶水层已全部完成(109 个测试通过,0 警告),Phase 4b/4c 待启动
---
@@ -19,7 +19,7 @@ AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可
| 提示词工程 | ✅ 完整 | `docs/4-prompt-engineering.md` | P1 |
| 工具系统 + 权限 | ✅ 完整 | `docs/5-tool-system.md` | P1 |
| 记忆检索 | ✅ 完整 | `docs/6-memory-system.md` | P2 |
| Agent 运行时 | ✅ 方案已完成 | `docs/7-agent-runtime.md` | P2 |
| Agent 运行时4a 胶水层) | ✅ 已实现 | `docs/7-agent-runtime.md` | P2 |
| 生命周期钩子 | ✅ 完整 | `docs/3-phase0-remaining.md` | P0LLM Cycle 扩展) |
| Provider 注册发现 | ✅ 完整 | `docs/3-phase0-remaining.md` | P0Provider 接口扩展) |
| 流式事件系统 | ✅ 完整 | `docs/3-phase0-remaining.md` | P0(流式接口前置) |
@@ -126,15 +126,23 @@ AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可
**目标**:提供最小可用的 Agent Runtime——把 Phase 0-3 的能力"装配"成 `AgentSession::submit_turn`。上层可基于 4a 构建多轮对话应用。
**交付物**
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` + 内联 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 分阶段计划)
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` + 内联 HashMap session_data
4. `RuntimeBundle` — 显式依赖注入容器(不含 session_memory_backend
5. `AgentBuilder` — 链式构造入口(不含 session_memory_backend
6. `AgentError` — 统一错误类型(7 个变体Llm / Tool / Memory / HookBlocked / LimitExceeded / Config / Other不含 PlanParse
7. `Plan` / `Step` / `StepStatus` — 纯数据结构(不含任何解析逻辑)
8. Hook 事件扩展:OnTurnStart / OnTurnEnd + turn_index 字段
9. `docs/7-agent-runtime.md` — 方案设计文档(含 4a/4b/4c 分阶段计划)
**实际新增**
- 新增文件 7 个(agent.rs + agent/{agent, error, runtime, builder, session, task}.rs
- 修改文件 3 个(lib.rs +1 行;llm/hooks.rs +13 行追加变体/字段;llm/cycle.rs 内部字段 Box→Arc + 新增 `new_with_arc` 公共方法)
- 实际代码量约 800 行(含测试;纯实现约 470 行——略高于方案预估 440 行,因 AgentSession 的 tests 模块内联 MockProvider/StubAgent 等辅助结构)
- 新增内联测试 22 个;全量测试 84 → 109(0 失败)
- clippy 0 警告(agent 模块)
- 无新增外部依赖
**依赖**Phase 0, 1, 2, 3
@@ -142,7 +150,7 @@ AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可
**预估规模**:约 440 行代码
**状态**:✅ 方案已完成,待编码实施
**状态**:✅ Phase 4a 全部交付物已完成
---
@@ -197,7 +205,7 @@ 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
P4a["<b>Phase 4a: Core Glue</b><br/>AgentSession<br/>RuntimeBundle<br/>Plan/Step 纯数据"]:::pending
P4a["<b>Phase 4a: Core Glue</b><br/>AgentSession<br/>RuntimeBundle<br/>Plan/Step 纯数据"]:::done
P4b["<b>Phase 4b: Task Execution</b><br/>TaskAgent<br/>PlanParser<br/>JsonPlanParser"]:::pending
P4c["<b>Phase 4c: Session Memory</b><br/>SessionMemory"]:::pending
@@ -302,7 +310,7 @@ graph BT
## 下一步行动
1. **Phase 4a 实施方案**`docs/7-agent-runtime.md` 方案文档已完成(拆分为 4a/4b/4c 三阶段),下一步启动 Phase 4a 编码实现,按 10 个任务完成后翻转 Roadmap 状态。4b/4c 待 4a 交付后按需启动
1. **Phase 4b/4c 启动评估**Phase 4a 已交付(109 测试通过,0 clippy 警告)。可按需启动 Phase 4b(任务执行:TaskAgent + PlanParser/JsonPlanParser)或 Phase 4c(会话级记忆:SessionMemory)—— 二者无相互依赖,可任选其一
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+ 记忆扩展可直接参考
@@ -312,7 +320,6 @@ graph BT
- ✅ Phase 1 Prompt Engineering — 全部交付物已完成
- ✅ Phase 2 Tool System — 全部交付物已完成
- ✅ Phase 3 Memory System — 全部交付物已完成
- ✅ Phase 4 方案已完成(拆分为 4a/4b/4c) — 待 4a 编码实施
- ⏳ Phase 4a Core Glue — 方案就绪,待编码
- ✅ Phase 4a Core Glue — 全部交付物已完成
- ⏳ Phase 4b Task Execution — 依赖 4a
- ⏳ Phase 4c Session Memory — 依赖 4a