本文档描述了主智能体与子智能体的协作机制
采用分层架构:主智能体(协调者)+ 子智能体(专业化执行者)
- 关键规则:子智能体不是工具,必须通过
task()工具调用 - 调用方式:
task(name="子智能体名称", task="任务描述") - 参数说明:
name: 子智能体名称task: 任务描述
| 子智能体 | 职责 | 工具集 | 特点 |
|---|---|---|---|
| code-search-agent | 代码搜索 | vector_search_methods |
语义搜索代码节点 |
| call-relation-agent | 调用关系分析 | depth_first_traversal, breadth_first_traversal |
分析调用链和依赖 |
| call-chain-selector | 调用链选择 | 无(仅 LLM 分析) | 从多个调用链中选择最相关的 |
| code-understanding-agent | 代码理解 | 所有可用工具 | 综合理解代码逻辑和业务含义 |
1. 主智能体接收用户问题
↓
2. 主智能体分析意图:需要理解登录功能的实现
↓
3. 主智能体使用 write_todos 规划任务
↓
4. 主智能体调用 task(name="code-search-agent", task="搜索用户登录相关的方法")
↓
5. code-search-agent 执行搜索,返回结果
↓
6. 主智能体调用 task(name="call-relation-agent", task="分析调用链")
↓
7. call-relation-agent 执行分析,返回调用链
↓
8. 主智能体调用 task(name="code-understanding-agent", task="理解实现逻辑")
↓
9. code-understanding-agent 综合理解,返回解释
↓
10. 主智能体整合所有结果,生成最终回答
- 职责分离:主智能体协调,子智能体专业化执行
- 上下文隔离:子智能体独立执行,避免上下文污染
- 可扩展性:易于添加新的子智能体
- 专业化:每个子智能体有专门的提示词和工具集
- 灵活性:支持复杂任务的多步骤处理
services/ai/agents/deep_agent.py- 智能体实现services/ai/agents/deep_agent.py:_create_subagents()- 子智能体配置