子代理是什么
适合需要同时处理多个文件或多个独立任务的场景。
Codex 可以并行调用的辅助代理,用于处理复杂任务的不同部分。
个人觉得可以理解为:你根据大的项目任务建立一个项目组然后为每个人分配工作,只是每个被分配工作的人背后都是ai,你可以给每个人起名字和分配任务
作用
- 将大型任务分解为可管理的部分
- 并行处理多个独立任务
- 为不同类型的任务配置专门的代理
- 提高处理大型项目的效率
配置子代理
基础配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 启用多代理功能
[features]
multi_agent = true
# 配置代理参数
[agents]
# 最大并行线程数
max_threads = 6
# 最大嵌套深度
max_depth = 1
# 作业最大运行时间(秒)
job_max_runtime_seconds = 1800
|
自定义角色
1
2
3
4
5
6
7
|
# 定义一个代码审查代理
[agents.reviewer]
description = "专注于代码审查和质量问题"
nickname_candidates = ["Reviewer", "CodeChecker", "QualityBot"]
# 可以指向一个配置文件
# config_file = "agents/reviewer.toml"
|
使用子代理
假设子代理叫reviewer
1
2
3
4
5
|
# 使用 @ 提及子代理
@reviewer 审查 src/auth.py 文件
# 使用 /agents 命令
/agents run reviewer --task "审查所有测试文件"
|
子代理工作原理
并行处理
1
2
3
4
5
|
任务:审查整个代码库
├─ 子代理 1:审查 src/auth/ 目录
├─ 子代理 2:审查 src/api/ 目录
├─ 子代理 3:审查 src/utils/ 目录
└─ 主代理:汇总结果
|
顺序处理
1
2
3
4
|
任务:实现新功能
└─ 子代理 1:创建数据模型
└─ 子代理 2:创建 API 端点
└─ 子代理 3:编写测试
|
嵌套
1
2
3
4
|
配置中的 max_depth 控制代理可以嵌套的层数:
深度 0:根会话
深度 1:直接子代理
深度 2:子代理的子代理
|
最大的深度最好是1或2
监控子代理
1
2
3
4
5
|
# 在 Codex 中查看
/agents status
# 查看详细信息
/agents list
|
Codex 会显示每个子代理的输出,并在主界面中汇总结果。
实践使用
任务分解
- 将大型任务分解为独立的子任务
- 确保子任务之间没有强依赖(可以并行时)
- 为每个子任务定义清晰的输入和输出
配置优化
- 根据任务复杂度调整 max_threads
- 为不同类型的任务配置专门的代理角色
- 设置合理的 job_max_runtime_seconds 避免长时间运行
监控和调试
- 定期检查子代理的输出
- 使用 /agents status 了解整体进度
- 必要时可以取消特定的子代理