docs(roadmap): 更新 Phase 5 完成状态和下一阶段计划
This commit is contained in:
+32
-20
@@ -1,13 +1,13 @@
|
||||
# AG Core Roadmap
|
||||
|
||||
> 定稿日期:2026-05-11
|
||||
> 最后更新:2026-07-04
|
||||
> 最后更新:2026-07-05
|
||||
|
||||
## 愿景
|
||||
|
||||
AG Core 定位为构建 AI 智能体的底层工具箱,通过模块化、可插拔的架构,提供大模型调用、提示词工程、工具系统、记忆检索四大核心能力,支持快速组合出符合业务需求的智能体应用。
|
||||
|
||||
**当前状态**:v0.1.0 已发布(2026-07-04)。Phase 0-4c 全部完成,Provider IR 重构 + LlmCycle 简化 + 7 个离线示例已交付。v0.2.0 已细分为 8 个增量 Phase(Phase 5-12),本周开发启动。
|
||||
**当前状态**:v0.1.0 已发布(2026-07-04)。Phase 0-5 全部完成,Provider IR 重构 + LlmCycle 简化 + 8 个离线示例已交付(新增 `simple_visit.rs`)。v0.2.0 已细分为 8 个增量 Phase(Phase 5-12),其中 Phase 5 已完成(Ollama Provider + `#[non_exhaustive]` 兼容性护栏 + `ProviderConfig::from_env`),下一步进入 Phase 6 (ToolDef IR 正式化)。
|
||||
|
||||
---
|
||||
|
||||
@@ -334,13 +334,23 @@ pub struct ContextBudget { system, history, tools, tool_results, reserve }
|
||||
|
||||
| Step | 内容 | 文件范围 | 验证标准 |
|
||||
|------|------|---------|---------|
|
||||
| **5.1** | `ProviderConfig` 扩展:补 `timeout_secs`(def=30) + `max_retries`(def=3);新增 `ProviderConfig::from_env(prefix)` | `llm/provider.rs` + 各 Provider `new()` 构造函数 | `cargo test` + `from_env()` 单元测试 |
|
||||
| **5.2** | `OllamaProvider`:基于 `GenericOpenaiProvider` 包装,改 base_url 为 `http://localhost:11434`;`ProviderType` 新增 `Ollama` | `llm/provider/provider.rs` + `llm/provider/ollama.rs`(新增) | `cargo build` — 纯类型级验证 |
|
||||
| **5.3** | 公开枚举 `#[non_exhaustive]` 前置标记:`ProviderType` / `StopReason` / `FinishReason` / `EvictionPolicy` / `SlotMode`(预置) | 各枚举定义处 | 编译通过 + `cargo clippy` 0 警告 |
|
||||
| **5.1** ✅ | `ProviderConfig` 扩展:补 `timeout_secs`(def=30) + `max_retries`(def=3);新增 `ProviderConfig::from_env(prefix)` | `llm/provider.rs` + 各 Provider `new()` 构造函数 | `cargo test` + `from_env()` 单元测试 |
|
||||
| **5.2** ✅ | `OllamaProvider`:基于 `GenericOpenaiProvider` 包装,改 base_url 为 `http://localhost:11434`;`ProviderType` 新增 `Ollama` | `llm/provider/provider.rs` + `llm/provider/ollama.rs`(新增) | `cargo build` — 纯类型级验证 |
|
||||
| **5.3** ✅ | 公开枚举 `#[non_exhaustive]` 前置标记:`ProviderType` / `StopReason` / `FinishReason` / `EvictionPolicy` / `SlotMode`(预置) | 各枚举定义处 | 编译通过 + `cargo clippy` 0 警告 |
|
||||
|
||||
**实际新增**(2026-07-05 commit `98dfe6c`):
|
||||
- 新增文件 1 个(`llm/provider/ollama.rs`,72 行)
|
||||
- 修改文件 2 个(`llm/provider.rs` 加 `from_env` + `Default` + 4 个字段;`memory/store.rs` EvictionPolicy 加 `#[non_exhaustive]`)
|
||||
- `ProviderType::Ollama` 变体 + `FromStr` 解析("ollama" → Ollama)
|
||||
- `OllamaProvider::new(base_url, api_key, model, timeout_secs)` + `with_client()` 构造函数
|
||||
- `ProviderConfig::from_env(prefix)` 解析 `{prefix}_API_KEY` / `{prefix}_BASE_URL` / `{prefix}_MODEL` 环境变量
|
||||
- 全量测试 182 → 190(+8,phase 5 新增 from_env 与 Ollama 相关单测)
|
||||
- clippy 0 警告
|
||||
|
||||
**依赖**:无(三个 Step 互不冲突)
|
||||
**优先级**:P0(5.1)+ P1(5.2)+ P0 前置(5.3)
|
||||
**为何独立成 Phase**:三个改动零文件重叠,可以并行推进。它们是后续所有 Phase 的"门把手"——先做完热身再进入核心工作。
|
||||
**状态**:✅ Phase 5 全部交付物已完成
|
||||
|
||||
---
|
||||
|
||||
@@ -470,7 +480,7 @@ pub struct ContextBudget { system, history, tools, tool_results, reserve }
|
||||
|
||||
```mermaid
|
||||
graph BT
|
||||
P5["Phase 5<br/>热身准备"]:::warmup
|
||||
P5["<b>Phase 5: 热身准备</b><br/>ProviderConfig::from_env<br/>Ollama Provider<br/>#[non_exhaustive] 标记"]:::done
|
||||
P6["Phase 6<br/>ToolDefinition IR"]:::core
|
||||
P7["Phase 7<br/>SqliteStore"]:::core
|
||||
P8["Phase 8<br/>MVP 出口 (rc.1)"]:::mvp
|
||||
@@ -490,6 +500,7 @@ graph BT
|
||||
|
||||
P11 -.-> P7
|
||||
|
||||
classDef done fill:#4ade80,stroke:#16a34a,color:#1a1a1a
|
||||
classDef warmup fill:#e2e8f0,stroke:#94a3b8
|
||||
classDef core fill:#fbbf24,stroke:#d97706
|
||||
classDef mvp fill:#4ade80,stroke:#16a34a
|
||||
@@ -501,16 +512,16 @@ graph BT
|
||||
|
||||
### 关键里程碑
|
||||
|
||||
| 里程碑 | Phase 完成条件 | 可验证指标 |
|
||||
|--------|---------------|-----------|
|
||||
| **M1** | Phase 5 | 热身三项完成:`from_env()` 可用 / Ollama 类型存在 / `#[non_exhaustive]` 就位 |
|
||||
| **M2** | Phase 6 | `ToolDef` 全量切换,`cargo test --all-targets` 全绿 |
|
||||
| **M3** | Phase 7 | SqliteStore CRUD + 并发测试通过,进程重启数据不丢 |
|
||||
| **M4** | **Phase 8 (rc.1)** | P0 五项全部交付,`cargo run --example quick_start` 跑通 |
|
||||
| **M5** | Phase 9 | `submit_turn_stream` 流式事件序列验证通过 |
|
||||
| **M6** | Phase 10 | ContextSlot 创建/切换/派生集成测试通过 |
|
||||
| **M7** | Phase 11 | wiremock + 并发测试补强,测试总量 200+ |
|
||||
| **M8** | Phase 12(可选) | P2 功能按需交付 |
|
||||
| 里程碑 | Phase 完成条件 | 可验证指标 | 状态 |
|
||||
|--------|---------------|-----------|------|
|
||||
| **M1** | Phase 5 | 热身三项完成:`from_env()` 可用 / Ollama 类型存在 / `#[non_exhaustive]` 就位 | ✅ 2026-07-05 |
|
||||
| **M2** | Phase 6 | `ToolDef` 全量切换,`cargo test --all-targets` 全绿 | ⏳ 待启动 |
|
||||
| **M3** | Phase 7 | SqliteStore CRUD + 并发测试通过,进程重启数据不丢 | ⏳ 待启动 |
|
||||
| **M4** | **Phase 8 (rc.1)** | P0 五项全部交付,`cargo run --example quick_start` 跑通 | ⏳ |
|
||||
| **M5** | Phase 9 | `submit_turn_stream` 流式事件序列验证通过 | ⏳ |
|
||||
| **M6** | Phase 10 | ContextSlot 创建/切换/派生集成测试通过 | ⏳ |
|
||||
| **M7** | Phase 11 | wiremock + 并发测试补强,测试总量 200+ | ⏳ |
|
||||
| **M8** | Phase 12(可选) | P2 功能按需交付 | ⏳ |
|
||||
|
||||
---
|
||||
|
||||
@@ -553,8 +564,8 @@ graph BT
|
||||
|
||||
## 下一步行动
|
||||
|
||||
1. **Phase 5 启动**:ProviderConfig from_env + Ollama Provider + #[non_exhaustive] 前置,三个 Step 并行推进
|
||||
2. **Phase 6 方案准备**:ToolDef 结构体定义 + 兼容转换,出实施笔记(实施时直接走代码评审)
|
||||
1. **Phase 6 启动**:ToolDef 结构体定义 + 5 步逐文件切割(types → cycle/registry → providers → 适配层 → 测试迁移)
|
||||
2. **Phase 7 启动**:SqliteStore(`rusqlite` + `bundled`),可与 Phase 6 并行
|
||||
3. **示例先行**:每完成一个 Phase 立即更新对应示例,验证通过后再合入
|
||||
4. **里程碑追踪**:以 Phase 8(MVP 出口)为 v0.2.0-rc.1 节点,逐 Phase 验收
|
||||
|
||||
@@ -566,9 +577,10 @@ graph BT
|
||||
- ✅ Phase 4a Core Glue — 全部交付物已完成
|
||||
- ✅ Phase 4b Task Execution — 全部交付物已完成
|
||||
- ✅ Phase 4c Session Memory — 全部交付物已完成
|
||||
- ✅ Provider IR 重构 — 统一类型系统 + OpenAI/Anthropic/DeepSeek/Qwen 适配
|
||||
- ✅ Phase 5 Warmup — ProviderConfig::from_env + OllamaProvider + `#[non_exhaustive]` 前置标记(ProviderType / StopReason / FinishReason / EvictionPolicy)
|
||||
- ✅ Provider IR 重构 — 统一类型系统 + OpenAI/Anthropic/DeepSeek/Qwen/Ollama 适配
|
||||
- ✅ LlmCycle 简化 — IR 消息类型切换 + Phase 0 桥接层移除
|
||||
- ✅ v0.1 Release — 技术债扫清、MockProvider 公开化、7 个离线示例、README + 错误消息友好化、CHANGELOG 初始化
|
||||
- ✅ v0.1 Release — 技术债扫清、MockProvider 公开化、8 个离线示例(含 `simple_visit`)、README + 错误消息友好化、CHANGELOG 初始化
|
||||
- 📋 **v0.2 规划细化完成** — 8 个增量 Phase(Phase 5-12),17 个可验证 Step,覆盖 P0-P2 全部 12 项功能 + ContextSlot
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user