SuperAPI AI 工具集

codex-mission-control

智能体与模型

查看项目

更新于 10-16 03:53

技能介绍

用途

Codex Mission Control 是一个编排工作流技能,用于协调一个较大的 Codex 任务。它让当前线程充当“轻量管理器”,只关注决策、路由、状态和最终集成,把深度探索、长日志和有边界的实现切片移交给聚焦的子代理或独立 Codex 线程——前提是用户已授权这种执行方式。

核心模型

管理器拥有任务目标、约束、工作流地图、交接、线程登记、集成和最终答案。

  • 子代理适合当前回合内并行、有边界的工作。
  • 独立 Codex 线程适合上下文隔离、较长工作、不同分支、不同工作树或多轮后续跟进。
  • 每个任务必须使用带运行作用域的账本路径,不能使用一个全局共享文件名。
  • 每个工作单元必须按 Worker Prompt Pattern 返回紧凑报告。
  • 该技能是编排工作流,必须发现并使用宿主提供的子代理工具;仅靠描述无法创建工作者。

第一步

在委派有意义的工作前,先按“开始任务”创建任务账本,并运行原生运行时预检并记录到账本:

  • 检查 Codex 子代理工具是否已可见。
  • 若不可见且存在 tool_search,用类似 multi agent spawn_agent wait_agent subagents 的查询调用它。
  • 若工具可用,使用 multi_agent_v1.spawn_agent、wait_agent、send_input 和 close_agent。
  • 若没有可用的子代理工具,则串行继续,说明未生成子代理,且不得暗示发生了并行执行。

随后识别管理器本地要做的关键路径任务,以及可在管理器继续本地工作时并行运行的独立侧车工作流。只生成有用的侧车代理,然后继续本地推进,直到集成屏障需要它们的结果。

开始任务

优先使用辅助脚本(从该技能目录运行):

python3 <skill_dir>/scripts/start_mission.py --title "short task title"

该辅助脚本默认在 work/codex-missions/<task-slug>/<timestamp>-<suffix>/ 下创建唯一目录,并在其中写入唯一命名的账本文件。若当前工作区不应接收支持文件,可传入操作系统临时根目录:

python3 <skill_dir>/scripts/start_mission.py --title "short task title" --root /tmp/codex-missions

若脚本不可用,可手工复刻其结构:阅读 scripts/start_mission.py 获取确切的账本模板和目录布局(唯一运行目录,以及同级的 handoffs 和 worker reports 目录)。

任务工作流

  1. 用一句话记录目标。
  2. 记录来自用户、仓库说明、安全边界和脏工作树状态的约束。
  3. 仅当拆分能降低上下文负载或实现真正并行进展时,才把工作拆成工作流。
  4. 将每个工作流标记为本地、子代理或独立线程。
  5. 关键路径保留在本地;可并行的侧车工作委派出去。
  6. 对独立线程,用紧凑交接而非完整管理器上下文来初始化。
  7. 对子代理,给出具体归属和有边界的输出契约。
  8. 用摘要和链接把工作单元结果集成到账本,不要粘贴日志。
  9. 从管理器线程验证最终行为。
  10. 以最终答案收尾,并注明线程 id、变更文件、测试和未解决风险。

委派规则

使用子代理需同时满足:用户明确要求子代理、委派、并行代理工作或任务控制行为;子任务具体、有边界且实质推进任务;子任务运行不会阻塞管理器下一步;代码编辑的写入范围与其他活动工作不相交。

使用独立 Codex 线程的情形:该切片需要多轮;需要全新工作树、分支或仓库作用域环境;是需要保留自身上下文的后续审计或实现项;管理器线程过于拥挤,下一工作流可从紧凑交接开始。

默认不要分叉臃肿的管理器上下文,优先用紧凑提示初始化干净线程。

原生子代理运行时

在 Codex 中,当工具已暴露时优先使用原生子代理而非 CLI 运行器回退方案。

  • 用 multi_agent_v1.spawn_agent 创建新子代理。
  • 针对具体代码库问题使用 agent_type="explorer"。
  • 针对有明确写入范围的有边界实现使用 agent_type="worker"。
  • 除非用户明确要求或工作有明确需要,否则省略 model、reasoning_effort 和 service_tier,让工作者继承父级默认值。
  • 默认设置 fork_context=false 并传入紧凑简报;仅当工作者确实需要完整对话历史时才用 fork_context=true。
  • 代码编辑时分配不相交的文件或模块,并告知每个工作者其他代理可能并行编辑,不得回退无关更改。
  • 仅在真正的屏障处使用 wait_agent;代理运行期间做不重叠的管理器工作。
  • 工作者完成后,先检查其报告和变更文件,再集成或呈现结果。
  • 关闭不再需要的代理。
  • 在账本中记录每个生成的代理 id、角色、范围和最终状态。

独立线程的现实

不要假设技能文件能直接打开新的 Codex UI 线程。若宿主暴露显式线程创建工具,使用它并记录返回的线程 id;若没有,则创建紧凑交接文件和精确的种子提示。管理器线程仍负责独立线程回报后的集成。当工作需要长上下文隔离、全新工作树或未来多轮时,优先独立线程而非子代理。

配置现实

原生 Codex 子代理的可用性由宿主运行时和配置控制,例如 ~/.codex/config.toml 是否启用多代理功能。Codex 原生子代理不需要项目 routing.toml;TOML 路由文件仅对显式解析它的技能有用。agents/openai.yaml 用于 Codex UI 元数据、默认提示和调用策略,它不是子代理运行时本身。若运行时预检无法暴露 multi_agent_v1,在本技能内修补 TOML 不会为当前回合创建子代理工具。

交接契约

每份交接应尽量一屏可容纳,包含:任务 id 和源账本路径;本工作流目标;相关文件、路由、命令、文档或 issue 链接;约束和非目标;预期交付物;所需验证;工作者最终输出的输出契约。交接保存在当前任务的 handoffs 目录下,文件名包含任务 id、工作流 slug 以及时间戳或线程 id。

Worker Prompt Pattern

用于子代理或新线程的结构:

You are working inside mission <mission_id>.

Goal: <specific workstream goal> Source ledger: <absolute path> Runtime target: <subagent role or separate thread> Write scope: <files or modules, or read only> Constraints: <important user and repo constraints> Do not revert unrelated changes. Other agents may be working in parallel.

Return a compact final with:

  1. result
  2. files changed
  3. tests run
  4. risks
  5. recommended next handoff

账本纪律

在每个有意义的事件后更新任务账本:运行时预检完成、工作流启动、线程创建/交接写入/子代理生成、工作者完成、做出决策、文件变更、验证通过或失败、最终集成完成。保持证据紧凑,链接到文件、线程 id、命令和报告;除非需要确切错误文本,不要粘贴长终端日志。

注意事项

  • 要求深度不等于要求子代理。仅当用户要求任务控制、子代理、并行执行、独立线程或上下文保留时使用本技能。
  • 单一固定交接文件会在重复运行间产生冲突,始终使用带时间戳或唯一后缀的任务作用域路径。
  • 管理器不应重做已委派的工作,而应集成、验证和解决冲突。
  • 除非用户明确要求在审计上下文中修改代码,否则将只读审计与变更实现线程分开。
  • 不要把 TOML 路由文件当作子代理的魔法开关,先证明原生子代理工具是否已暴露。