# 意图驱动智能体中台改造（IDMP）- 任务清单

## 活跃版本：v0.2.0-0.3.0

---

## Phase 1: 记忆服务增强（AC-IDMP-13/14）

### Task-1.1: 记忆召回服务（AC-IDMP-13）⏳
**验收标准**: WHEN 进行记忆读取 THEN 中台 SHALL 在响应前执行 recall 并注入基础属性、事实记忆与偏好记忆

**子任务**:
- [ ] 1.1.1 创建 `services/mid/memory_adapter.py` - 记忆适配器
- [ ] 1.1.2 实现 `RecallRequest` / `RecallResponse` 数据模型
- [ ] 1.1.3 实现 `recall(user_id, session_id)` 方法，返回 profile/facts/preferences
- [ ] 1.1.4 集成到对话响应流程（响应前调用）
- [ ] 1.1.5 实现 recall 失败降级（不阻断主链路）

**参考**: 
- `openapi.deps.yaml` - `/deps/memory/recall`
- `services/memory.py` - 现有 MemoryService

---

### Task-1.2: 记忆更新服务（AC-IDMP-14）⏳
**验收标准**: WHEN 一轮会话完成 THEN 中台 SHALL 异步执行记忆更新（含会话摘要），且不阻塞主响应

**子任务**:
- [ ] 1.2.1 实现 `update(user_id, session_id, messages, summary)` 方法
- [ ] 1.2.2 创建异步任务队列（使用 asyncio.create_task）
- [ ] 1.2.3 实现会话摘要生成（可选，由中台异步生成后回写）
- [ ] 1.2.4 集成到对话响应流程（响应后异步调用）
- [ ] 1.2.5 添加错误处理与重试机制

**参考**:
- `openapi.deps.yaml` - `/deps/memory/update`

---

## Phase 2: 工具调用治理（AC-IDMP-15/19）

### Task-2.1: 工具调用结构化记录（AC-IDMP-15）⏳
**验收标准**: WHEN 中台调用工具 THEN 中台 SHALL 以结构化 `tool_call/tool_result` 记录参数摘要、耗时、结果与错误码

**子任务**:
- [ ] 2.1.1 创建 `models/mid/tool_trace.py` - ToolCallTrace 数据模型
- [ ] 2.1.2 实现 `ToolCallRecorder` 服务
- [ ] 2.1.3 记录字段：tool_name, tool_type, registry_version, auth_applied, duration_ms, status, error_code, args_digest, result_digest
- [ ] 2.1.4 集成到 TraceInfo 输出
- [ ] 2.1.5 实现敏感参数脱敏（args_digest）

**参考**:
- `openapi.provider.yaml` - `ToolCallTrace` schema

---

### Task-2.2: Tool Registry 治理（AC-IDMP-19）⏳
**验收标准**: WHEN 新增或调用工具能力（含 MCP 工具） THEN 中台 SHALL 通过统一 Tool Registry 完成注册、鉴权、超时策略、版本与启停治理，并将治理结果写入 trace/tool 日志

**子任务**:
- [ ] 2.2.1 创建 `services/mid/tool_registry.py` - 工具注册表
- [ ] 2.2.2 实现 `ToolDefinition` 数据模型（name, type, version, timeout_ms, auth_required, is_enabled）
- [ ] 2.2.3 实现 `register_tool()` - 工具注册
- [ ] 2.2.4 实现 `authorize_tool()` - 工具鉴权
- [ ] 2.2.5 实现 `get_timeout_policy()` - 超时策略获取
- [ ] 2.2.6 实现 `is_tool_enabled()` - 启停状态检查
- [ ] 2.2.7 创建数据库表 `tool_registry`（可选，支持动态配置）
- [ ] 2.2.8 集成 MCP 工具支持

**参考**:
- `openapi.provider.yaml` - `TraceInfo.tools_used`, `ToolCallTrace`

---

## Phase 3: 测试与验证

### Task-3.1: 单元测试 ⏳
**覆盖路径**:
- [ ] 成功路径：正常 recall/update，工具调用成功
- [ ] 超时路径：recall 超时降级，工具调用超时
- [ ] 错误路径：recall 失败降级，工具调用错误
- [ ] 降级路径：记忆服务不可用时继续主链路

**测试文件**:
- `tests/test_memory_adapter.py`
- `tests/test_tool_registry.py`
- `tests/test_tool_call_recorder.py`

---

## 依赖关系

```
Task-1.1 (recall) ──┐
                    ├──> Task-1.2 (update) ──> Task-3.1 (tests)
Task-2.1 (trace) ───┘
        │
        └──> Task-2.2 (registry) ──> Task-3.1 (tests)
```

---

## 变更文件清单

| 文件路径 | 状态 | 关联 AC |
|---------|------|---------|
| `services/mid/__init__.py` | 待创建 | - |
| `services/mid/memory_adapter.py` | 待创建 | AC-IDMP-13/14 |
| `services/mid/tool_registry.py` | 待创建 | AC-IDMP-19 |
| `services/mid/tool_call_recorder.py` | 待创建 | AC-IDMP-15 |
| `models/mid/__init__.py` | 待创建 | - |
| `models/mid/memory.py` | 待创建 | AC-IDMP-13/14 |
| `models/mid/tool_trace.py` | 待创建 | AC-IDMP-15 |
| `models/mid/tool_registry.py` | 待创建 | AC-IDMP-19 |
| `tests/test_memory_adapter.py` | 待创建 | AC-IDMP-13/14 |
| `tests/test_tool_registry.py` | 待创建 | AC-IDMP-19 |
| `tests/test_tool_call_recorder.py` | 待创建 | AC-IDMP-15 |
