mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-10-16 07:16:36 +08:00
158 lines
4.6 KiB
Markdown
158 lines
4.6 KiB
Markdown
# Lime AI Agent 改进 - 实施进度报告
|
||
|
||
## 已完成工作
|
||
|
||
### 1. 研究与分析(任务 #1-#4)✅
|
||
|
||
通过对比研究 OpenAI Codex 和 aster-rust 框架,完成了 Lime AI Agent 的全面分析,输出了改进研究报告,识别了四大痛点:
|
||
- 工具调用能力弱
|
||
- 上下文管理差
|
||
- 流式体验不好
|
||
- 整体架构不清晰
|
||
|
||
### 2. 任务规划(任务 #8-#13)✅
|
||
|
||
创建了 6 个优先级任务:
|
||
- **P0**: 升级上下文管理为 AI 驱动摘要(进行中)
|
||
- **P1**: 统一对话架构(Aster Agent + Unified Chat)
|
||
- **P2**: 拆分 useAsterAgentChat hook(1200+ 行)
|
||
- **P3**: 工具系统模块化(aster_agent_cmd.rs 2000+ 行)
|
||
- **P4**: 引入 SQ/EQ 异步队列对通信模型
|
||
- **P5**: 多 Agent 协作能力
|
||
|
||
### 3. P0 阶段 1 实施(进行中)✅
|
||
|
||
#### 3.1 创建 AI 摘要服务
|
||
|
||
**文件**: `src-tauri/crates/services/src/ai_summary_service.rs`
|
||
|
||
**功能**:
|
||
- `AISummaryService`: AI 摘要服务主体
|
||
- `AISummaryConfig`: 可配置的摘要参数
|
||
- `generate_summary()`: 生成会话摘要
|
||
- `build_summary_prompt()`: 构建摘要提示词
|
||
- `format_messages()`: 格式化消息列表
|
||
|
||
**特性**:
|
||
- 支持配置摘要长度、主题数量、决策数量
|
||
- 使用 JSON 格式返回结构化摘要
|
||
- 包含完整的单元测试
|
||
- 当前使用 mock 实现,待集成真实 LLM 调用
|
||
|
||
#### 3.2 集成到 services crate
|
||
|
||
- ✅ 添加模块导出到 `lib.rs`
|
||
- ✅ 编译通过验证
|
||
|
||
## 下一步工作
|
||
|
||
### P0 阶段 1 剩余任务
|
||
|
||
#### 1. 改造 session_context_service.rs
|
||
|
||
**目标**: 集成 AI 摘要服务,实现优先使用 AI、失败时降级到本地的策略
|
||
|
||
**修改点**:
|
||
- 添加 `ai_summary_service` 字段到 `SessionContextService`
|
||
- 将 `create_summary()` 改为异步方法
|
||
- 实现 AI 摘要优先逻辑
|
||
- 保留 `create_summary_local()` 作为降级方案
|
||
|
||
#### 2. 集成真实 LLM 调用
|
||
|
||
**目标**: 替换 `call_llm_mock()` 为真实的 provider pool 调用
|
||
|
||
**实现方式**:
|
||
- 注入 `ProviderPoolService` 到 `AISummaryService`
|
||
- 使用 Claude Haiku 模型(成本低、速度快)
|
||
- 实现重试机制(最多 3 次)
|
||
- 添加超时控制(5 秒)
|
||
|
||
#### 3. Tauri 命令层集成
|
||
|
||
**目标**: 在应用启动时初始化 AI 摘要服务
|
||
|
||
**修改文件**:
|
||
- `src-tauri/src/main.rs` 或相关初始化代码
|
||
- 创建 `AISummaryService` 实例
|
||
- 注入到 `SessionContextService`
|
||
|
||
#### 4. 测试验证
|
||
|
||
**单元测试**:
|
||
- ✅ AI 摘要服务基础功能
|
||
- ⬜ session_context_service 集成测试
|
||
- ⬜ 降级逻辑测试
|
||
|
||
**集成测试**:
|
||
- ⬜ 20+ 轮长对话测试
|
||
- ⬜ AI 摘要触发验证
|
||
- ⬜ 摘要质量评估
|
||
|
||
## 技术决策记录
|
||
|
||
### 决策 1: 采用分阶段混合策略
|
||
|
||
**背景**: aster 框架的上下文管理能力不明确
|
||
|
||
**决策**:
|
||
- 阶段 1: 在 Lime 层实现 AI 摘要(当前)
|
||
- 阶段 2: P1 完成后统一到 aster 框架
|
||
|
||
**理由**:
|
||
- 快速交付价值,立即改善用户体验
|
||
- 不阻塞 P1 任务,可并行推进
|
||
- 降低风险,分步验证
|
||
|
||
### 决策 2: 使用 Claude Haiku 生成摘要
|
||
|
||
**理由**:
|
||
- 成本低(相比 Opus/Sonnet)
|
||
- 速度快(< 3 秒)
|
||
- 质量足够(摘要任务不需要最强模型)
|
||
|
||
### 决策 3: 保留本地摘要作为降级方案
|
||
|
||
**理由**:
|
||
- 确保功能可用性(AI 调用失败时)
|
||
- 降低成本(用户可选择禁用 AI 摘要)
|
||
- 向后兼容(已有代码不浪费)
|
||
|
||
## 文档输出
|
||
|
||
### 规划文档
|
||
- `docs/iteration-notes/context-management-upgrade-plan.md` - 总体升级方案
|
||
- `docs/iteration-notes/p0-context-management-implementation.md` - P0 实施文档
|
||
- `docs/iteration-notes/p0-phase1-implementation-plan.md` - 阶段 1 详细计划
|
||
|
||
### 代码文件
|
||
- `src-tauri/crates/services/src/ai_summary_service.rs` - AI 摘要服务(新增)
|
||
- `src-tauri/crates/services/src/lib.rs` - 模块导出(已修改)
|
||
|
||
## 风险与缓解
|
||
|
||
### 风险 1: AI 摘要质量不稳定
|
||
**状态**: 待验证
|
||
**缓解**: 精心设计提示词,实现响应验证逻辑
|
||
|
||
### 风险 2: API 调用成本
|
||
**状态**: 可控
|
||
**缓解**: 使用 Haiku 模型,实现智能缓存,提供配置开关
|
||
|
||
### 风险 3: 与 P1 任务的依赖
|
||
**状态**: 已解决
|
||
**缓解**: 采用分阶段策略,P0 和 P1 可并行推进
|
||
|
||
## 下次会话建议
|
||
|
||
1. **继续 P0 阶段 1**: 完成 session_context_service.rs 改造
|
||
2. **集成真实 LLM**: 替换 mock 实现
|
||
3. **编写集成测试**: 验证 AI 摘要效果
|
||
4. **或者开始 P2**: 拆分 useAsterAgentChat hook(如果 P0 需要等待其他依赖)
|
||
|
||
## 参考资料
|
||
|
||
- 研究报告: Lime AI Agent 改进研究报告
|
||
- Codex 架构: SQ/EQ 异步队列对、AI 摘要
|
||
- aster-rust: 渐进式工具响应移除、SubAgentScheduler
|