子代理
Codex 的并行任务处理能力
概述
子代理是 Codex 创建的独立执行单元,可以并行处理多个任务,提高效率。
工作原理
主代理
协调和分配任务:
主代理
├── 分析任务
├── 创建子代理
├── 分配子任务
└── 汇总结果子代理
执行具体任务:
子代理 1: 读取文件
子代理 2: 运行测试
子代理 3: 搜索代码使用场景
1. 并行文件处理
"分析所有 TypeScript 文件的问题"
子代理 1: 分析 src/*.ts
子代理 2: 分析 lib/*.ts
子代理 3: 分析 utils/*.ts2. 多任务执行
"检查代码质量并运行测试"
子代理 1: 运行 linter
子代理 2: 运行单元测试
子代理 3: 检查类型错误3. 大规模搜索
"查找所有使用旧 API 的地方"
子代理 1: 搜索 src/
子代理 2: 搜索 lib/
子代理 3: 搜索 tests/创建子代理
自动创建
Codex 自动判断何时创建:
当任务可以并行时自动创建手动指定
"创建 3 个子代理分别处理"任务分配
智能分配
根据:
- 任务类型
- 文件大小
- 资源可用性负载均衡
动态调整:
- 繁忙时少分配
- 空闲时多分配通信机制
主代理通信
子代理 → 主代理:
- 进度更新
- 请求帮助
- 报告结果子代理间通信
默认隔离
需要时可以共享:
- 文件锁
- 共享内存资源管理
资源配额
yaml
子代理资源:
cpu: 1 核/代理
memory: 1GB/代理
max_agents: 10优先级
高优先级:
- 用户交互
- 关键任务
低优先级:
- 后台任务
- 批处理错误处理
代理失败
当子代理失败:
1. 重试
2. 重新分配
3. 报告主代理部分失败
部分代理失败:
- 继续其他代理
- 汇总可用结果
- 报告失败原因监控和调试
进度监控
查看状态:
- 活跃代理数
- 完成进度
- 资源使用日志查看
每个代理独立日志:
/agents logs agent-1配置选项
最大代理数
json
{
"agents": {
"maxConcurrent": 5
}
}超时设置
json
{
"agents": {
"timeout": 300
}
}资源限制
json
{
"agents": {
"memoryLimit": "2GB",
"cpuLimit": 2
}
}最佳实践
1. 任务分解
大任务拆分为小任务
并行执行提高效率2. 合理配置
根据资源调整数量
避免过度并行3. 监控资源
定期检查使用情况
防止资源耗尽限制
当前限制
- 最大并发数有限
- 网络访问受限
- 文件锁需要注意
不支持
- 跨机器代理
- 持久化代理
- 交互式代理
示例
代码审查
"审查整个项目"
主代理规划:
1. 创建 5 个子代理
2. 分配目录给每个代理
3. 汇总审查结果测试运行
"运行所有测试"
子代理 1: 单元测试
子代理 2: 集成测试
子代理 3: E2E 测试