3.1 KiB
Executable File
3.1 KiB
Executable File
修订记录 - 2026-04-13
今日任务
修复"/api/agent/execute"执行核型分析时返回错误阶段的问题
问题描述
用户说"帮我执行核型分析",但系统执行了identify阶段,而不是synteny+karyotype阶段。
根本原因
/api/agent/plan直接调用orchestrator.plan()→ PlanningAgentV2,正确返回['synteny', 'karyotype']/api/agent/execute调用orchestrator.run()→ LangGraph →_planning_node→ PlanningAgentV2completed_stages在传递过程中丢失,PlanningAgentV2收到空列表
已完成的修复
1. IntentAgentV2 依赖定义统一
文件: gfa_core/mas/agents/intent_v2.py
- 将
synteny依赖从["identify", "phylogeny"]改为["identify"] - 添加 karyotype 关键词检查到 fallback 方法
- 修改 LLM prompt,明确指示不要过度推断
2. PlanningAgentV2 使用 completed_stages
文件: gfa_core/mas/agents/planning_v2.py
- 在
_generate_plan_with_llm中添加逻辑,检查依赖阶段是否已完成 - 添加调试日志
print(f"[PlanningAgentV2] completed_stages: {completed_stages}")
3. 接受 partial_success 作为已完成状态
文件: apps/web/vue3/main.py
/api/agent/plan现在接受partial_success作为已完成状态
4. LangGraphOrchestrator 使用 PlanningAgentV2
文件: gfa_core/mas/core/langgraph_orchestrator.py
- 将
PlanningAgent改为PlanningAgentV2 - 修复
state.get("user_input")可能为 None 的错误 - 在
_to_agent_state中添加completed_stages传递
5. tasks.py 使用 LangGraphOrchestrator
文件: tasks.py
- 将
Orchestrator改为LangGraphOrchestrator - 添加
messages字段到 initial_state - 添加
completed_stages查询逻辑 - 添加调试日志
6. GraphState 添加 completed_stages 字段
文件: gfa_core/mas/core/state.py
- 添加
completed_stages: list[str]字段
当前状态
验证结果
/api/agent/plan 测试:
curl -s "http://localhost:7867/api/agent/plan" \
-X POST -H "Content-Type: application/json" \
-d '{"message":"帮我执行核型分析","session_id":"job_1776004000991"}'
# 返回: ['synteny', 'karyotype'] ✅ 正确
/api/agent/execute 调试日志:
[tasks.py] Completed stages: ['identify', 'phylogeny'] ✅ 正确查询
[PlanningAgentV2] completed_stages: [] ❌ 收到空列表
待解决问题
completed_stages 在从 tasks.py 传递到 PlanningAgentV2 的过程中丢失
可能原因:
- LangGraph 工作流中 state 被修改导致
completed_stages丢失 _to_agent_state方法没有正确读取completed_stages- RouterAgent 或其他节点修改了 state
明日计划
- 修复
completed_stages传递丢失问题 - 验证
/api/agent/execute正确返回 ['synteny', 'karyotype'] - 测试完整执行流程
总体计划
- 修复阶段依赖识别问题 ✅
- 修复 completed_stages 传递问题 ⏳
- 测试核型分析完整流程 ⏳
- 修复其他潜在问题 ⏳
今日完成任务数
已完成: 6 项修复 进行中: 1 项(completed_stages 传递) 剩余: 3 项