203 lines
6.3 KiB
Markdown
Executable File
203 lines
6.3 KiB
Markdown
Executable File
# 多Agent系统开发计划对比 - 2025年3月31日
|
||
|
||
**文档位置**: `/home/xia-lab/wutx/00test/bbav20311/docs/PLAN_COMPARISON_2025-03-31.md`
|
||
|
||
**记录时间**: 2025-03-31 01:54 GMT+8
|
||
**记录人**: xialab的幸运星 🧬🤖
|
||
|
||
---
|
||
|
||
## 一、阉割版 vs 完整版对比
|
||
|
||
| 功能 | 阉割版(7天) | 完整版(1个月) |
|
||
|-----|--------------|----------------|
|
||
| **Agent数量** | 2个(Router + Execution) | 9个(全套) |
|
||
| **意图识别** | 关键词匹配 | LLM+规则混合 |
|
||
| **任务规划** | 固定流程(identify→phylogeny→motif→domain→structure) | 动态规划,根据需求调整 |
|
||
| **错误处理** | 失败停止,显示错误 | DiagnosisAgent自动诊断+重试 |
|
||
| **RAG文献** | ❌ 砍掉 | ✅ 文献问答 |
|
||
| **记忆学习** | ❌ 无 | ✅ 记住用户偏好 |
|
||
| **多任务并行** | ❌ 串行执行 | ✅ 并行分析 |
|
||
| **结果验证** | ❌ 人工检查 | ✅ ValidatorAgent自动验证 |
|
||
|
||
---
|
||
|
||
## 二、核心代码对比
|
||
|
||
### 阉割版代码
|
||
```python
|
||
# 阉割版:直接执行固定流程
|
||
async def agent_chat(request):
|
||
intent = simple_keyword_parse(request.message) # 关键词匹配
|
||
|
||
# 固定流程:identify → phylogeny → motif → domain → structure
|
||
stages = ["identify", "phylogeny", "motif", "domain", "structure"]
|
||
|
||
for stage in stages:
|
||
result = await run_cli(stage, intent.params) # 直接调CLI
|
||
if result.failed:
|
||
return {"error": result.error} # 失败就停
|
||
|
||
return {"success": True, "results": results}
|
||
```
|
||
|
||
### 完整版代码
|
||
```python
|
||
# 完整版:多Agent协作
|
||
async def agent_chat(request):
|
||
state = await orchestrator.process(request.message) # LangGraph编排
|
||
|
||
# Router → Planning → Execution → Validator → Learning
|
||
# 每个Agent都可能介入,动态决策
|
||
|
||
return state.final_result
|
||
```
|
||
|
||
---
|
||
|
||
## 三、阉割版功能边界
|
||
|
||
### ✅ 阉割版能做
|
||
- 用户说:"分析Ft SPL基因家族"
|
||
- 系统自动执行:identify → phylogeny → motif → domain → structure
|
||
- 前端显示进度和结果
|
||
|
||
### ❌ 阉割版不能做
|
||
- 问:"SPL基因有什么功能"(无RAG)
|
||
- 自动修复错误(无DiagnosisAgent)
|
||
- 记住用户偏好(无LearningAgent)
|
||
- 并行执行多个分析
|
||
|
||
---
|
||
|
||
## 四、7天冲刺计划(阉割版)
|
||
|
||
### Day 1-2(4月1-2日):核心打通
|
||
**目标:ExecutionAgent跑通**
|
||
|
||
| 小时 | 任务 | 产出 |
|
||
|-----|------|------|
|
||
| 0-4h | 修改 `/api/agent/chat` 直接调用CLI执行 | Agent输入→实际运行identify |
|
||
| 4-8h | 前端显示执行进度 | 实时日志推送到对话窗口 |
|
||
| 8-12h | 测试端到端流程 | "帮我分析Ft SPL"→出结果 |
|
||
|
||
**砍掉**:RouterAgent复杂路由,先用关键词匹配
|
||
|
||
---
|
||
|
||
### Day 3-4(4月3-4日):多阶段串联
|
||
**目标:一个指令完成多阶段分析**
|
||
|
||
| 小时 | 任务 | 产出 |
|
||
|-----|------|------|
|
||
| 0-6h | PlanningAgent简单实现 | "分析SPL基因家族"→自动拆分为identify→phylogeny→motif |
|
||
| 6-12h | 阶段自动流转 | identify完成自动触发phylogeny |
|
||
|
||
**砍掉**:复杂的错误恢复,失败就停
|
||
|
||
---
|
||
|
||
### Day 5-6(4月5-6日):RAG问答
|
||
**目标:文献问答可用**
|
||
|
||
| 小时 | 任务 | 产出 |
|
||
|-----|------|------|
|
||
| 0-6h | 接入已有RAG | 问"SPL基因功能"能检索文献回答 |
|
||
| 6-12h | 前端切换模式 | 技能模式🔧/文献模式📚切换 |
|
||
|
||
---
|
||
|
||
### Day 7(4月7日):测试收尾
|
||
- 完整流程测试
|
||
- 修复阻塞性bug
|
||
- 写使用文档
|
||
|
||
---
|
||
|
||
## 五、完整版开发计划(1个月)
|
||
|
||
### 第一阶段:核心集成(3月31日-4月6日)
|
||
|
||
**目标**: 将前端Agent调用接入完整的Orchestrator编排流程
|
||
|
||
| 任务 | 优先级 | 预计时间 | 产出 |
|
||
|-----|--------|---------|------|
|
||
| 1. 修改 `/api/agent/chat` 使用Orchestrator | 🔴 P0 | 1天 | 后端API调用完整MAS流程 |
|
||
| 2. 统一意图解析逻辑 | 🔴 P0 | 0.5天 | 删除重复代码,统一走RouterAgent |
|
||
| 3. 实现ExecutionAgent与CLI集成 | 🔴 P0 | 2天 | Agent能实际执行分析任务 |
|
||
| 4. 添加Agent执行状态反馈 | 🟡 P1 | 1天 | 前端实时显示当前处理Agent |
|
||
|
||
---
|
||
|
||
### 第二阶段:协作机制(4月7日-4月13日)
|
||
|
||
**目标**: 实现多Agent协作完成复杂任务
|
||
|
||
| 任务 | 优先级 | 预计时间 | 产出 |
|
||
|-----|--------|---------|------|
|
||
| 5. 完善PlanningAgent任务分解 | 🟡 P1 | 2天 | 复杂任务自动拆分子任务 |
|
||
| 6. 实现Agent间消息传递 | 🟡 P1 | 1天 | Agent可以协作通信 |
|
||
| 7. 添加DiagnosisAgent错误处理 | 🟡 P1 | 2天 | 自动诊断和修复建议 |
|
||
| 8. 集成RAG到KnowledgeAgent | 🟢 P2 | 1天 | 文献问答质量提升 |
|
||
|
||
---
|
||
|
||
### 第三阶段:优化完善(4月14日-4月20日)
|
||
|
||
**目标**: 提升系统稳定性和用户体验
|
||
|
||
| 任务 | 优先级 | 预计时间 | 产出 |
|
||
|-----|--------|---------|------|
|
||
| 9. 完善记忆系统跨会话保持 | 🟢 P2 | 2天 | 用户历史偏好被记住 |
|
||
| 10. 实现LearningAgent反馈学习 | 🟢 P2 | 2天 | 从用户纠正中学习 |
|
||
| 11. 添加Agent性能监控 | 🟢 P2 | 1天 | 响应时间、准确率统计 |
|
||
| 12. 编写Agent单元测试 | 🟢 P2 | 2天 | 测试覆盖核心Agent逻辑 |
|
||
|
||
---
|
||
|
||
## 六、关键决策选项
|
||
|
||
### 选项A:阉割版(推荐)
|
||
- **时间**: 7天
|
||
- **结果**: Agent能自动执行完整分析流程
|
||
- **风险**: 低,功能明确
|
||
|
||
### 选项B:先阉割后扩展
|
||
- **时间**: 7天基础版 + 后续迭代
|
||
- **结果**: 先让Agent能干活,再慢慢加功能
|
||
- **风险**: 最低,可快速验证
|
||
|
||
### 选项C:只做一个阶段
|
||
- **时间**: 3天
|
||
- **结果**: 只自动跑identify
|
||
- **风险**: 功能太弱,演示效果差
|
||
|
||
---
|
||
|
||
## 七、技术债务记录
|
||
|
||
### 阉割版产生的债务
|
||
1. 意图解析只用关键词,后续需升级为LLM+规则
|
||
2. 错误处理简单,后续需添加DiagnosisAgent
|
||
3. 无记忆功能,后续需添加MemoryManager集成
|
||
4. 无学习功能,后续需添加LearningAgent
|
||
|
||
### 偿还计划
|
||
- 第2周:添加DiagnosisAgent基础错误处理
|
||
- 第3周:集成MemoryManager
|
||
- 第4周:升级为完整Orchestrator流程
|
||
|
||
---
|
||
|
||
## 八、参考文档
|
||
|
||
- **当前状态**: `docs/AGENT_STATUS_2025-03-31.md`
|
||
- **修订记录**: `docs/CHANGELOG_2025-03-30.md`
|
||
- **架构设计**: `memory/modules/overview.md`
|
||
|
||
---
|
||
|
||
**建议**: 选择 **选项B(先阉割后扩展)**,7天内让Agent真正可用,再逐步完善。
|
||
|
||
**下一步**: 等待用户确认选项,立即开始编码。
|