正文内容
Codex Orchestrator
该技能提供了一套工作流,用于监督在后台进程中运行的 Codex 编程智能体。
工作流
1. 启动(Launch)
始终在后台 PTY 会话中启动 Codex,以保持交互性,同时不阻塞主智能体。
bash pty:true workdir:background:true command:"codex exec --full-auto ''"
- 保存返回的
sessionId。 - 若
sessionId丢失,可通过process action:list查找。
2. 监控(Watch)
定期检查执行进度(例如通过 cron 定时任务或手动查询)。
# 获取最近 2KB 的日志,以查看当前状态 process action:log sessionId:limit:2000
正常运行迹象:
- 进度指示器(如旋转动画或进度条)持续更新;
- 显示 “Working...”、“Thinking...” 或 “Running...” 等提示;
- 文件编辑行为(如输出
Edit ...)。
阻塞迹象:
- 出现交互式提示(例如 “Select directory”、“Approve change [y/n]”);
- 超过 5 分钟无日志输出(进程可能已挂起,或正在等待不可见的输入)。
3. 干预(Control)
若 Codex 卡在某个交互提示处:
# 发送 'y' 并回车 process action:submit sessionId:data:"y" # 仅发送回车(采用默认选项) process action:submit sessionId:data:""
若 Codex 出现循环执行或幻觉行为:
# 终止该会话 process action:kill sessionId:
4. 报告(Notify)
当达到关键里程碑或任务完成时:
- 汇总已完成的工作(例如:修改了哪些文件、通过了哪些测试);
- 向用户发出通知。
标准操作规程(SOP)
“卡住的智能体” 处置协议
-
诊断:执行
process action:log sessionId:;limit:500 - 分析:是否正在提出问题?是否正在进行下载?
-
处置:
- 若正在提问:通过
submit提供对应答案; - 若正在下载(且速度较慢):继续等待;
- 若持续静默超过 10 分钟:发送 “poke”(例如
submit data:"\n"刷新提示符),或终止后重新恢复(kill/resume)。
- 若正在提问:通过
“恢复会话” 协议
若会话异常终止或被主动终止:
- 在新的后台进程中运行
codex resume --last或codex resume; - 验证其是否成功恢复上下文。
日志与产物(Logs & Artifacts)
- Codex 的日志在 PTY 缓冲区中为临时数据,会话结束后即丢失;
- 如需持久化日志,可指示 Codex 将输出重定向至文件:
codex exec "task..." > codex.log 2>&1(注意:缓冲机制可能导致输出延迟); - 更优方案:使用
process action:log周期性地对 PTY 缓冲区进行快照存档。