与 Codex 协作处理长期任务

@gabrielchua
英语1周前 · 2026年7月07日
1.1M
157
20
12
260

TL;DR

Gabriel Chua 分享了一个管理长期 AI 任务的框架,该框架通过将协调与执行分离、使用持久化路线图以及集成本地测试来实现。

Codex 可以长时间持续工作,尤其是在有 /goal 为其设定一个持久目标的情况下。更困难的部分在于,当它连续工作数小时或数天、发现新的实现细节、并经历多种验证方式时,如何保持方向感。

一旦开始实施,早期的假设往往会发生变化。协作模式需要在保留目标的同时,给你和 Codex 都留出根据新证据调整计划的空间。

在过去几周里,我一直在使用五种实践方法:

  1. 让 Codex 规划工作并维护路线图。
  2. 保持主线程专注于协调。
  3. 在每个里程碑之后审计路线图并审查代码。
  4. 使用本地线程进行 Computer Use 测试。
  5. 通过简洁的更新和仪表板报告进度。
Gabriel Chua - inline image

由 Codex 中的 GPT Image 2 生成

1. 让 Codex 规划工作并维护路线图

我通常以对话开始,而不是直接使用 /plan 模式。我描述我想要构建的内容,口述粗略的想法,分享限制条件,然后让 Codex 提问,直到它拥有足够的上下文来提出初步计划。

这保持了早期讨论的灵活性。我不需要在 Codex 开始提供帮助之前,就把不成熟的想法变成正式的规范。它可以向我提问,反馈它所理解的内容,识别差距,并逐步将对话转化为一个可行的计划。

随着项目的成型,我要求 Codex 设定当前的 Goal。Goal 模式为 Codex 提供了一个持久的目标,使其能够在多次交互中持续朝着同一结果努力,直到目标完成、受阻或被替换。

我可以自己使用 /goal 来设定目标,但我通常让 Codex 来做这件事。Goal 模式通过工具暴露出来,因此 Codex 可以综合我们的对话、项目上下文以及它到目前为止学到的所有信息,形成一个清晰的目标。它还可以定义在认为该目标完成之前所需的证据。

对于较大的项目,我要求 Codex 将更广泛的路线图写入 GOALS.md。这是一个项目约定,而不是 Codex 的内置功能,文件名可以根据你的喜好来定。

我通常按照里程碑来组织 GOALS.md,而不是一个扁平的任务列表。每个里程碑记录:

  • 预期成果
  • 当前范围内的任务
  • 重要决策
  • 已知的阻碍因素
  • 继续推进前所需的证据

Codex 会在项目开发过程中维护这个文件。新的发现可能会改变某个里程碑的范围,引入另一个里程碑,或改变完成所需的证据。

一次只激活一个 Goal 模式目标。当一个里程碑完成后,Codex 会更新 GOALS.md,激活下一个目标,并继续朝着它努力。

2. 保持主线程专注于协调

一旦路线图就位,我会让主线程专注于目标、限制条件、决策和当前项目状态。

它决定下一步应该做什么,委派有边界的任务,并评估结果。它不需要承载每一个实现细节。

一个工作线程可能会花一个小时阅读不熟悉的代码、尝试几种方法或追踪一个失败的测试。协调者只需要知道影响整个项目的信息:

  • 工作线程学到了什么
  • 发生了什么变化
  • 支持性证据
  • 下一步应该做什么

Codex 可以将这项工作委派给 subagent 或创建一个单独的线程。从功能上讲,它们可以执行相同的任务。当我预计稍后需要重新审视这项工作时,我会使用单独的线程,因为它在 Codex 应用中保持可见,并保留自己的历史记录。

当多个工作并行运行时,这一点尤其有用。主线程可以继续协调项目,同时每个调查、实现或审查都保持易于检查。

3. 在每个里程碑之后审计路线图并审查代码

GOALS.md 反映的是 Codex 上次更新时所知道的情况。到里程碑结束时,项目通常会发现一些新东西。

在继续前进之前,我会让另一个线程将路线图与当前状态进行比较:

  • 这个里程碑真的完成了吗?
  • 下一个目标仍然是正确的吗?
  • 是否有任何里程碑缺失?
  • 新证据是否改变了工作的顺序?
  • “完成”的定义是否仍然成立?

我在每个里程碑结束时运行此审计,并且每当新证据实质上改变了项目方向时也会运行。

我还会对实现运行 /review

假设登录流程的实现和远程测试都已完成。路线图审计可能会注意到没有人测试过真实登录浏览器中的流程。同时,/review 可能会发现新路径存储令牌的方式不正确,尽管远程测试通过了。

协调者更新 GOALS.md,委派修复令牌的任务,添加缺失的浏览器验证,然后才激活下一个里程碑。

我通常将审计和审查放在单独的线程中。Subagent 可以执行相同的工作,但单独的线程会留下一个可见的记录,我以后可以回顾。

4. 使用本地线程进行 Computer Use 测试

我的大多数 Codex 会话都在远程实例上运行,这样即使我的笔记本电脑合上,工作也能继续进行。但某些检查仍然依赖于我的本地机器:

  • 已登录的浏览器
  • 本地凭据
  • Xcode
  • macOS 权限
  • iOS 模拟器

远程协调者可以为其中一项检查创建一个本地线程。我应用远程差异或检出相关分支或提交,以便本地线程测试正确的代码。

本地线程操作浏览器或应用程序,并返回截图、日志和发现。当检查失败时,远程工作线程修复问题,然后本地线程再次测试。

一个典型的循环如下:

  1. 远程工作线程实现登录流程。
  2. 远程测试通过。
  3. 本地线程使用 Codex Chrome 扩展程序
  4. 浏览器测试发现一个重定向错误。
  5. 远程工作线程修复它。
  6. 本地线程重复检查。

项目默认保持在远程。我的电脑只在需要执行检查时才加入。当我重新打开笔记本电脑时,远程线程也可以持续检查本地线程是否再次可用。

5. 通过简洁的更新和仪表板报告进度

工作线程通常报告一个任务。当我回到项目时,我需要了解整体状态:

  • 完成了什么
  • 发生了什么变化
  • 还剩下什么
  • 需要做什么决策

每当项目状态发生变化时,我都会要求 Codex 使用三个简短的部分进行报告:

**已完成的工作

下一步计划

任何阻碍因素**

这几乎就像每天与 Codex 进行站会,只不过可能是每小时一次。

Codex 可以通过 Slack 发送相同的更新,可以是直接消息,也可以在专门的项目频道中发送。

当我在 Codex 应用中时,我也会使用 /side 来检查进度,而不会中断主线程。从侧边线程,我可以要求总结已完成的工作、剩余的工作,以及是否需要我的帮助——例如,手动点击、批准或其他点击操作。

Gabriel Chua - inline image

从侧边线程获取总结

Gabriel Chua - inline image

要求侧边线程将我的指令传递给主线程

然后我可以澄清指令、解决阻碍因素、添加上下文,或要求侧边线程将更新后的指导发回给主线程。

对于有多个里程碑或并行工作流的项目,我还会维护一个 progress-dashboard.html。这是一个自定义的项目产物,而不是 Codex 的内置 UI。它可以显示:

  • 活跃的目标
  • 已完成的里程碑
  • 证据
  • 阻碍因素
  • 决策
  • 最近的更新

当我几小时后回来时,无需阅读每个工作线程就能了解项目状态。Codex 还可以将仪表板部署为 Site,使其可以远程访问。

总结

当一个项目可能发现新信息、涉及几个独立的工作部分、或需要来自多个环境的证据时,我会使用这种结构。

工作流程遵循一个简单的循环。Codex 将最初的对话转化为路线图,激活一个里程碑,委派工作,并在继续前进之前检查结果。本地线程处理需要我机器参与的检查,而更新和仪表板帮助我在无需从头重建所有内容的情况下回到项目。

重要的是保持项目状态足够新,以便下一个决策能够反映 Codex 实际学到的东西。

试试看

将此内容粘贴到一个新的 Codex 线程中:

将此作为一个长期运行的项目进行协调。

首先通过询问我试图构建什么来开始。让我以对话的方式描述粗略的想法和限制条件,然后将该讨论转化为一个初步计划。

创建 GOALS.md 作为共享路线图。围绕里程碑组织它,包括每个里程碑的预期成果、范围、决策、阻碍因素和所需证据。

一次设定并维护一个 Goal 模式目标。活跃的目标应对应于当前的里程碑。

保持此线程专注于目标、限制条件、决策和项目状态。将实现工作委派给 subagent 或新线程。

要求工作线程返回结论、变更和证据,而不是完整的记录。

当我可能希望稍后检查、继续或审查工作时,使用单独的线程。对于不需要自己可见历史的有边界工作,使用 subagent。

在每个里程碑之后,使用单独的线程来审计 GOALS.md 与当前状态,并对实现运行 /review。在激活下一个目标之前更新路线图。

对于依赖于我的浏览器、桌面应用程序、权限、凭据或设备状态的 Computer Use 测试,使用本地线程。

*当项目状态发生变化时,仅报告: - 已完成的工作 - 下一步计划 - 任何阻碍因素*

当项目跨越多个里程碑或工作线程时,维护 progress-dashboard.html。在达成约定的证据之前,不要声明完成。

或者,你也可以截取本文的 Appshot 并询问 Codex:

根据本文创建一个名为 orchestrate-projects 的可复用 Codex 技能。

保留以下实践:

*- 让 Codex 询问我并创建初始计划 - 使用 GOALS.md 作为基于里程碑的路线图 - 一次保持一个 Goal 模式目标活跃 - 保持主线程专注于协调 - 在每个里程碑之后审计路线图并运行 /review - 对于我可能希望重新审视的工作,使用单独的线程 - 对于 Computer Use 测试,使用本地线程 - 通过简洁的更新、Slack 和 progress-dashboard.html 报告进度*

二次创作

使用 YouMind 创作爆款文章

收集素材、拆解爆点、生成视觉资产、撰写内容,并在一个 AI 工作空间里完成分发。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章