首页 › LLM大语言模型 › Codex专栏 › Codex中文教程 › 第八章:Subagents多Agent协作

第八章:Subagents多Agent协作

Subagents 解决什么问题​

App 中什么时候用​

​

代码块​

Plain Text

这个重构涉及前端、API 和测试。请先制定分工计划,再并行处理互不重叠的部分。​

​

​

#aTspQFXxNreJ text { white-space: pre; }#aTspQFXxNreJ .fb0 { stroke: var(--N900-FG, 0.15); }#aTspQFXxNreJ .fb0 {stroke: rgba(31,35,41, 0.15)}#aTspQFXxNreJ .fx0 { stroke-miterlimit: 10; }#aTspQFXxNreJ .fx0 {stroke-miterlimit: 10}#aTspQFXxNreJ .fa1 { fill: rgb(187, 191, 196); }#aTspQFXxNreJ .fa1 {fill: rgb(187, 191, 196)}#aTspQFXxNreJ .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#aTspQFXxNreJ .fx1 {font-style: normal}#aTspQFXxNreJ .fx2 { text-anchor: middle; }#aTspQFXxNreJ .fx2 {text-anchor: middle}#aTspQFXxNreJ .fx3 { dominant-baseline: central; }#aTspQFXxNreJ .fx3 {dominant-baseline: central}#aTspQFXxNreJ .fx4 { stroke: none; }#aTspQFXxNreJ .fx4 {stroke: none}#aTspQFXxNreJ .fc0 { fill: var(--text-caption); }#aTspQFXxNreJ .fc0 {fill: #646a73}#aTspQFXxNreJ .fa2 { fill: var(--text-link-disabled); }#aTspQFXxNreJ .fa2 {fill: rgb(187, 191, 196)}#aTspQFXxNreJ .fa3 { fill: rgb(222, 224, 227); }#aTspQFXxNreJ .fa3 {fill: rgb(222, 224, 227)}#aTspQFXxNreJ .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#aTspQFXxNreJ .fx5 {font-style: normal}#aTspQFXxNreJ .fx6 { text-anchor: start; }#aTspQFXxNreJ .fx6 {text-anchor: start}#aTspQFXxNreJ .fx7 { dominant-baseline: alphabetic; }#aTspQFXxNreJ .fx7 {dominant-baseline: alphabetic}#aTspQFXxNreJ .fc1 { fill: rgb(0, 0, 0); }#aTspQFXxNreJ .fc1 {fill: rgb(0, 0, 0)}#aTspQFXxNreJ .fb1 { fill: var(--N900-FG, 0.15); }#aTspQFXxNreJ .fb1 {fill: rgba(31,35,41, 0.15)}#aTspQFXxNreJ .fb2 { fill: rgb(209, 217, 224); }#aTspQFXxNreJ .fb2 {fill: rgb(209, 217, 224)}#aTspQFXxNreJ .fa4 { fill: var(--bg-body); }#aTspQFXxNreJ .fa4 {fill: #fff}AB123456条件任务可拆成独立子任务多个文件/模块互不重叠需要独立审查下一步必须等一个结果单文件小改是否适合适合适合适合先主线程做不适合

​

App 中启动前要写清的内容​

推荐分工模板​

​

代码块​

Plain Text

先给出 subagent 分工计划,不要立刻改文件。​

​

目标:重构认证模块。​

范围:src/auth、tests/auth。​

约束:不要改数据库迁移,不要引入新依赖。​

分工:​

- Agent A:阅读现有 auth 代码,列出风险。​

- Agent B:核对官方 SDK 文档。​

- Agent C:审查测试覆盖缺口。​

汇总后再决定是否执行。​

​

文件所有权​

Subagents 与 worktree​

​

#HxTAcCXOGiLR text { white-space: pre; }#HxTAcCXOGiLR .fb0 { stroke: var(--N900-FG, 0.15); }#HxTAcCXOGiLR .fb0 {stroke: rgba(31,35,41, 0.15)}#HxTAcCXOGiLR .fx0 { stroke-miterlimit: 10; }#HxTAcCXOGiLR .fx0 {stroke-miterlimit: 10}#HxTAcCXOGiLR .fa1 { fill: rgb(187, 191, 196); }#HxTAcCXOGiLR .fa1 {fill: rgb(187, 191, 196)}#HxTAcCXOGiLR .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#HxTAcCXOGiLR .fx1 {font-style: normal}#HxTAcCXOGiLR .fx2 { text-anchor: middle; }#HxTAcCXOGiLR .fx2 {text-anchor: middle}#HxTAcCXOGiLR .fx3 { dominant-baseline: central; }#HxTAcCXOGiLR .fx3 {dominant-baseline: central}#HxTAcCXOGiLR .fx4 { stroke: none; }#HxTAcCXOGiLR .fx4 {stroke: none}#HxTAcCXOGiLR .fc0 { fill: var(--text-caption); }#HxTAcCXOGiLR .fc0 {fill: #646a73}#HxTAcCXOGiLR .fa2 { fill: var(--text-link-disabled); }#HxTAcCXOGiLR .fa2 {fill: rgb(187, 191, 196)}#HxTAcCXOGiLR .fa3 { fill: rgb(222, 224, 227); }#HxTAcCXOGiLR .fa3 {fill: rgb(222, 224, 227)}#HxTAcCXOGiLR .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#HxTAcCXOGiLR .fx5 {font-style: normal}#HxTAcCXOGiLR .fx6 { text-anchor: start; }#HxTAcCXOGiLR .fx6 {text-anchor: start}#HxTAcCXOGiLR .fx7 { dominant-baseline: alphabetic; }#HxTAcCXOGiLR .fx7 {dominant-baseline: alphabetic}#HxTAcCXOGiLR .fc1 { fill: rgb(0, 0, 0); }#HxTAcCXOGiLR .fc1 {fill: rgb(0, 0, 0)}#HxTAcCXOGiLR .fb1 { fill: var(--N900-FG, 0.15); }#HxTAcCXOGiLR .fb1 {fill: rgba(31,35,41, 0.15)}#HxTAcCXOGiLR .fb2 { fill: rgb(209, 217, 224); }#HxTAcCXOGiLR .fb2 {fill: rgb(209, 217, 224)}#HxTAcCXOGiLR .fa4 { fill: var(--bg-body); }#HxTAcCXOGiLR .fa4 {fill: #fff}AB1234能力SubagentWorktreeReview作用分工和并行思考 / 执行隔离 Git 工作区合并前看 diff

​

大任务建议组合:​

​

代码块​

Plain Text

Worktree thread + Subagents + Review​

​

这样既能分工,又能降低污染主工作区的风险。​

Subagents 与 Skills​

Subagent 可以执行一个明确角色,Skill 提供工作流方法。​

例子:​

​

代码块​

Plain Text

让一个只读 subagent 使用 $tutorial-verifier skill 核对这篇教程的官方来源。​

​

注意:不要假设所有 subagent 都自动拥有所有工具或插件。以当前 App 暴露能力为准。​

Review 与合并规则​

Subagents 返回后,主线程不要直接相信总结。按这个顺序合并:​

看每个 subagent 的输出是否有证据。​

看是否有互相冲突的结论。​

看文件所有权是否被遵守。​

由主线程整合方案。​

执行或合并后用 App Review 看 diff。​

运行验证命令。​

如果两个 agent 给出相反建议,不要让其中一个继续硬改;先让主线程整理冲突点,再决定下一步。​

常见失败模式​

​

#EVLXfawszTuf text { white-space: pre; }#EVLXfawszTuf .fb0 { stroke: var(--N900-FG, 0.15); }#EVLXfawszTuf .fb0 {stroke: rgba(31,35,41, 0.15)}#EVLXfawszTuf .fx0 { stroke-miterlimit: 10; }#EVLXfawszTuf .fx0 {stroke-miterlimit: 10}#EVLXfawszTuf .fa1 { fill: rgb(187, 191, 196); }#EVLXfawszTuf .fa1 {fill: rgb(187, 191, 196)}#EVLXfawszTuf .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#EVLXfawszTuf .fx1 {font-style: normal}#EVLXfawszTuf .fx2 { text-anchor: middle; }#EVLXfawszTuf .fx2 {text-anchor: middle}#EVLXfawszTuf .fx3 { dominant-baseline: central; }#EVLXfawszTuf .fx3 {dominant-baseline: central}#EVLXfawszTuf .fx4 { stroke: none; }#EVLXfawszTuf .fx4 {stroke: none}#EVLXfawszTuf .fc0 { fill: var(--text-caption); }#EVLXfawszTuf .fc0 {fill: #646a73}#EVLXfawszTuf .fa2 { fill: var(--text-link-disabled); }#EVLXfawszTuf .fa2 {fill: rgb(187, 191, 196)}#EVLXfawszTuf .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#EVLXfawszTuf .fx5 {font-style: normal}#EVLXfawszTuf .fx6 { text-anchor: start; }#EVLXfawszTuf .fx6 {text-anchor: start}#EVLXfawszTuf .fx7 { dominant-baseline: alphabetic; }#EVLXfawszTuf .fx7 {dominant-baseline: alphabetic}#EVLXfawszTuf .fc1 { fill: rgb(0, 0, 0); }#EVLXfawszTuf .fc1 {fill: rgb(0, 0, 0)}#EVLXfawszTuf .fb1 { fill: var(--N900-FG, 0.15); }#EVLXfawszTuf .fb1 {fill: rgba(31,35,41, 0.15)}#EVLXfawszTuf .fb2 { fill: rgb(209, 217, 224); }#EVLXfawszTuf .fb2 {fill: rgb(209, 217, 224)}#EVLXfawszTuf .fa3 { fill: var(--bg-body); }#EVLXfawszTuf .fa3 {fill: #fff}ABC123456失败模式多个 agent 改同一文件主线程不知道进展子任务太大agent 自己发散没有 Review原因所有权不清没有汇总点拆分不够缺少目标和验收并行改动难合并修正明确文件范围要求阶段性汇报缩小到模块级写清停止条件合并前统一 review

​

常见问题​

Q1:Subagents 会自动更正确吗?​

不会。它们只是并行执行单元。正确性来自清晰分工、约束和 Review。​

Q2:什么时候不用 Subagents?​

单文件小改、一步任务、目标不清楚的任务,都不应该先拉 subagents。​

Q3:Subagents 能和 Automation 一起用吗?​

可以,但自动化任务更要限制权限和范围。​