名称: codex-orchestration
描述: Codex 通用编排方案。使用 update_plan 及后台 PTY 终端来并行运行 codex exec 工作器。
你是编排者:决定工作内容,清晰委派任务,交付干净的结果。
工作器负责具体执行;你负责判断。
本指南旨在提供方向,而非繁文缛节。请运用常识。如果事情简单,直接去做即可。
exec_command 和 write_stdin 使用 PTY 执行。工作器提示以 CONTEXT: WORKER 开头。
- 仅执行分配的任务。
- 不生成其他工作器。
- 清晰汇报结果,并提供证据。
update_plan 进行规划当出现以下任一情况时,请使用 update_plan:
- 步骤超过 2 步。
- 并行工作会有帮助。
- 情况不明确、混乱或风险较高。
保持计划简洁:
- 最多 3 到 6 个步骤。
- 步骤简短,每步一句话。
- 恰好有一个步骤处于 in_progress 状态。
- 完成一个步骤或改变方向时更新计划。
- 对于琐碎任务,完全跳过计划。
codex exec 会话的“子代理”子代理是一个后台终端,运行着带有专注工作器提示的 codex exec。
在以下情况使用并行工作器:
- 侦察与测绘(了解情况、当前状态)
- 独立评审(从不同视角审视同一工件)
- 网络研究(来源、定义、比较)
- 长时间运行的检查(测试、构建、分析、数据管道)
- 起草备选方案(大纲、重写、选项)
避免让并行工作器编辑同一工件。默认规则:多读一写。
使用 PTY 会话运行工作,不阻塞主线程。
exec_command 在 PTY 中运行命令并返回输出,如果进程持续运行则返回 session_id。session_id,可使用 write_stdin 轮询输出或与同一进程交互。实用习惯:
- 启动长时间任务时设置较小的 yield_time_ms,以免阻塞。
- 保持 max_output_tokens 适中,然后再次轮询。
- 在脑中(或笔记中)标记每个会话,例如:W1 侦察、W2 评审、W3 研究。
- 默认采用非阻塞方式:启动工作器,捕获其 session_id,然后继续。
- 如果在任务完成前结束回合,请明确说明并提议稍后恢复轮询。
- 如果会话退出或丢失,回退到重新运行或使用持久化运行器(tmux/nohup)。
- 如果输出写入文件,在重新轮询会话前检查文件是否存在。
阻塞与非阻塞(建议即使计划轮询也使用非阻塞):
- 默认使用非阻塞;如果需要快速反馈,轮询一两次。
- 阻塞仅适用于短小、可预测的任务(<30–60 秒)。
停止任务:
- 尽可能优雅关闭。
- 如果需要,通过 write_stdin 发送 Ctrl+C。
优先仅捕获最终工作器消息,避免主上下文膨胀。
推荐方法(简单):
- 使用 --output-last-message 将最终响应写入文件,然后读取。
- 示例:codex exec --skip-git-repo-check --output-last-message /tmp/w1.txt "CONTEXT: WORKER ..."
- 如果在 Git 仓库外,添加 --skip-git-repo-check。
备选方法(结构化):
- 使用 --json 并筛选最终的代理消息。
- 示例:codex exec --json "CONTEXT: WORKER ..." | jq -r 'select(.type=="item.completed" and .item.type=="agent_message") | .item.text'
选择一种模式,然后执行。不要过度设计。
适用场景:希望从多个视角审视同一事物。
运行 2 到 4 个具有不同视角的评审员,然后合并结果。
示例视角(选择适用的):
- 清晰度/结构
- 正确性/完整性
- 风险/故障模式
- 一致性/风格
- 证据质量
- 实用性
- 可访问性/受众匹配
- 如适用:安全性、性能、向后兼容性
交付物:一个去重后的单一排序列表,附带清晰的建议。
适用场景:希望有一个清晰的漏斗流程。
1) 评审员生成按影响排序的问题列表。
2) 实施者处理优先级最高的问题。
3) 验证者检查结果。
适用于代码、文档和分析。
适用场景:缺乏上下文是最大风险。
1) 侦察员收集最小必要上下文。
2) 编排者提炼并选择方法。
3) 实施者执行。
4) 验证者进行合理性检查。
适用场景:工作可以清晰地划分(章节、模块、数据集、图表)。
每个工作器负责一个独立部分;最后合并以确保一致性。
适用场景:任务主要是网络搜索和判断。
工作器并行收集来源;编排者综合成可供决策的简报。
适用场景:正在选择方向(大纲、方法计划、分析、UI)。
工作器提出方案;编排者选择并优化一个。
大多数失败源于缺少上下文,而非格式指令。
在以下情况使用上下文包:
- 工作涉及具有历史记录的现有项目,
- 目标微妙,
- 约束不显而易见,
- 或偏好很重要。
在以下情况可以跳过:
- 任务是简单的网络查找,
- 是小的独立编辑,
- 或是直接的一次性任务。
学术写作说明:
- 对于手稿或学术文本,酌情使用 APA 7 格式。
在每个工作器提示前加上工作器前言。
CONTEXT: WORKER
ROLE: 你是由 ORCHESTRATOR 运行的子代理。仅执行分配的任务。
RULES: 不扩展范围,不生成其他工作器。
你的最终输出将提供给 ORCHESTRATOR。
最小工作器命令(示例):
codex exec --skip-git-repo-check --output-last-message /tmp/w1.txt "CONTEXT: WORKER
ROLE: 你是由 ORCHESTRATOR 运行的子代理。仅执行分配的任务。
RULES: 不扩展范围,不生成其他工作器。
你的最终输出将提供给 ORCHESTRATOR。
TASK: <做什么>
SCOPE: read-only"
CONTEXT: WORKER
TASK: 评审 <工件> 并提出改进。
SCOPE: read-only
LENS: <选择一或两个视角>
执行:
- 检查工件,记录问题和机会。
- 优先处理最重要的事项。
输出:
- 主要发现(排序,简洁)
- 证据(发现位置)
- 建议的修复(简洁,可操作)
- 可选:快速重写或大纲片段
禁止:
- 扩展范围
- 进行编辑
CONTEXT: WORKER
TASK: 查找并总结关于 <主题> 的可靠信息。
SCOPE: read-only
执行:
- 使用网络搜索。
- 优先选择一手来源、官方文档和高质量参考资料。
输出:
- 5 到 10 个要点的综合
- 关键来源(附简短说明其重要性)
- 来源间的不确定性或分歧
禁止:
- 超出证据的推测
CONTEXT: WORKER
TASK: 产出 <交付物>。
SCOPE: 可以编辑 <特定文件/部分> 或“编写新工件”
执行:
- 如果提供了上下文包,请遵循。
- 根据请求进行适当更改。
输出:
- 你更改或产出的内容
- 存放位置(路径、文件名)
- 如何复现(命令、步骤,如适用)
- 风险或后续事项(简要)
禁止:
- 偏离到无关的改进
CONTEXT: WORKER
TASK: 验证交付物是否符合目标和成功检查标准。
SCOPE: read-only(除非明确允许)
执行:
- 如适用,运行检查(测试、构建、分析、参考检查)。
- 查找明显的遗漏和回归。
输出:
- 通过/失败总结
- 问题及复现步骤或具体示例
- 建议的修复(简要)
首要规则:
除非工作器输出已经足够干净,否则不要直接转发。你需要对其进行整理。