大多数开发者最初使用代码 Agent 来处理代码:检查仓库、生成 diff、运行测试、发起拉取请求。
这仍然是 Codex 的核心功能。但计算机上的许多工作已经通过代码来中介:执行 shell 命令、浏览网页、调用 API、导出文档、响应事件以及触发自动化。随着这些交互面变得对 Codex 可用,它开始变得不像狭义上的代码助手,而更像是一个完成计算机工作的系统。
Codex 应用 让这一转变变得具体。一个线程可以保留上下文、使用工具、展示工件,并在多个提示之间延续,而不是在每次对话后重置。
要充分发挥 Codex 的作用,需要将这些功能结合起来使用:
- 持久线程,保留上下文
- 语音、引导和排队,在用户仍在工作流中时使用
- 浏览器、计算机操作、MCP 服务器和连接器,让 Codex 能在仓库之外行动
- 线程自动化和目标,在用户离开时继续工作
- 侧边栏,用户可以在其中审查代码、文档、演示文稿和其他工件
持久线程
持久线程:
长时间运行的 Codex 线程,在重复会话中保留工作上下文。
固定线程是让持久线程随时可用的一种方式。它们适用于重复性工作流,例如:
- 一个“幕僚长”线程
- 一个发布线程
- 一个文档审查线程
- 一个专用于外部监控的线程
这些是持久的工作空间,而不是短对话。Codex 可以随时间重新访问它们,保留之前的决策、偏好和工作上下文,否则这些内容需要从头重建。
固定线程快捷键让这变得实用。Command-1 到 Command-9 可以直接跳转到已保存的线程。
语音输入
语音输入很有价值,因为它能捕捉到想法未经压缩成精炼文字前的粗糙版本。
Codex 内置了语音输入。它特别适合那些说起来自然但打字别扭的模糊起点:
我记得有个叫 Ben 的人在 Slack 里提到过。
我不记得细节了。
请去找一下。
对于一个能够搜索、收集上下文并汇报的 Agent 来说,这通常就足够了。
它也适用于任务尚未完全成型时进行两三分钟的想法倾倒。
转录本也有同样的作用。原始的会议记录或口述的规划笔记往往比简短摘要提供更好的素材,因为它们保留了不确定性、重点和未完成的思路。
引导和排队
当与对当前任务的显式控制相结合时,语音变得更加有用。
引导:
在 Codex 当前步骤完成之前,用新指令中断正在进行的任务。
引导在 Agent 走错方向、需要在其完成前进行纠正时非常有用。例如,在网站审查过程中,用户可以在侧边栏中注释界面的同时中断工作:
- 把这个弄小一点
- 这两个元素之间的间距感觉不对
- 这个文案错了
排队:
添加 Codex 在当前步骤完成后需要执行的工作。
排队则不同。它不会中断正在进行中的任务。它将下一个任务加入队列。用户可能会说:
工作完成后,把预览链接通过 Slack 发送给审阅者。
引导改变 Codex 当前正在做的事情。排队改变接下来应该发生的事情。两者都能让用户在任务展开时保持参与。
工具与覆盖范围
一旦线程有了连续性,下一个问题就是它能操作什么。Codex 可以向外扩展层次:
- $browser 用于侧边栏中的应用内浏览器,Codex 可以在此检查和注释网页界面
- @chrome 用于已登录的浏览器状态和基于 Chrome 的工作流
- @computer 用于仅通过桌面 GUI 存在的工作
$browser 适用于侧边栏浏览器审查。@chrome 适用于依赖于用户 Chrome 上下文的已登录浏览器工作。@computer 适用于仅通过桌面 GUI 存在的任务。
MCP 服务器和连接器将同样的思想扩展到工作流的其他部分。Slack、Gmail 和 Calendar 之所以重要,是因为许多重要任务在变成代码之前,首先表现为消息、收件箱条目或排期问题。
技能让重复的工作流变得可复用。一旦某个工作流被证明有用,就将其打包为技能,这样 Codex 就可以再次运行它,无需从头学习惯例。
随处工作
Codex 移动应用 改变了用户必须待在桌前的状况。任务可以在 Mac 上启动(文件、权限和本地设置已存在),然后在用户通过手机查看时继续运行。
这在一些小场景中很重要。用户可以在 Codex 运行较长时间任务时离开办公桌,从外部回答问题、批准下一步,或在返回之前重新定向线程。本地环境保持不变,用户无需在场。
自动化
自动化 按计划运行 Codex 工作。当重复性任务应从工作空间全新开始时(例如每日报告或定期仓库检查),使用计划自动化。当计划应返回到一个具有运行上下文的活跃对话时,使用线程自动化。
线程自动化:
心跳式的周期性唤醒调用,按计划返回到同一个 Codex 线程。
固定线程很有用,但它们仍然等待用户返回。线程自动化可以每隔几分钟或几小时检查一次,持续运行直到满足条件,并随时间调整节奏。
一个“幕僚长”线程可能每 30 分钟运行一次:
每 30 分钟检查一次 Slack 和 Gmail 中未回复的需要我关注的消息。
帮我优先处理最重要的事情。
如果有人问我问题,尽最大努力研究答案并草拟回复,但不要发送。
当用户返回时,收集上下文最耗时的部分通常已经完成。人类仍然决定发送什么。
线程自动化也适用于反馈循环。线程自动化可以监视拉取请求评论、Google Docs 评论或 Slack 回复,并在用户离开时推动相关工作的进展。
考虑一个动画工作流,审阅者在 Slack 中分享一段视频。线程自动化可以按计划检查线程,在有新评论时渲染更新版本,并在同一个线程中回复并 @ 审阅者。如果某个集成无法完成最终上传,桌面自动化可以通过 GUI 完成这一步。
整个循环跨越了 Slack(用于反馈)、代码库(用于渲染)和桌面自动化(用于最终上传)。
目标
当任务有一个 Agent 可以不断推进的真正的终点线时,目标最为强大。一个弱目标是:
目标:
运行时间较长的 Codex 任务,具有一个 Agent 可以随时间持续推进的终点线。
实现这个 Markdown 文件中的计划。
一个更强的目标具有可衡量的成功标准。
例如,一位工程师可能通过设置新目录、定义目标并使终点线明确来将一个内部工具从 Python 迁移到 Rust:新的实现直到单元测试通过才算完成。
一个目标将持续执行与验证器结合起来。用户定义结果、停止条件以及表明 Codex 是否在接近目标的信号。
有用的验证器包括:
- 测试套件
- 基准测试
- 错误复现
- 验证矩阵
- 必须持续通过的端到端工作流
抱负很重要,但如果没有验证,那只是一个愿望。
侧边栏
侧边栏 将工作内容与产生它的对话放在一起。用户无需导出工件并切换上下文,而是可以就地审查。输出可能是代码,但也可能是演示文稿、PDF、浏览器页面、表格或其他在过程中创建的工件。
它特别擅长四项工作:
- 检查工件
- 注释需要更改的内容
- 操作网页界面
- 审查更改
侧边栏允许用户就地审查 Markdown、电子表格、数据表、文档和幻灯片。他们可以检查、标记和修订工件,而无需中断循环。

注释
演示文稿或 PDF 可以保持打开状态,与生成它的线程并列,准备好进行直接审查和修复。

Codex 中的表格
应用内浏览器 让 Codex 可以检查渲染后的页面、控制它,并直接在正在审查的界面上响应注释。页面或工件上的评论保留在工作循环内,而不是变成单独的交接。
网页既是输出又是控制界面。Codex 可以构建工件,在侧边栏中打开它,检查、调试并不断在原地改进同一对象。

这些界面尤其好用:
- index.html 用于轻量级静态工件
- Storybook 用于 UI 审查
- Remotion Studio 用于程序化动画
- 基于浏览器的幻灯片演示文稿
- 数据应用用于分析工作流
一个单独的 index.html 文件可以成为一个持久的交互式工件,无需服务器。线程自动化也可以随时间刷新静态工件,这样用户返回时线程中就有新的内容等待。
共享记忆
长时间运行的线程在能够共享任何单一对话之外的记忆时会变得更加有用。
共享记忆:
存储在单个线程之外的持久上下文,以便未来的工作可以从明确且可审阅的内容继续。
一个持久的模式是将持久线程锚定在 Obsidian 库中。在实践中,这意味着一个包含纯文本文件的文件夹,这些文件易于检查、编辑、移动并长期保存。团队可以将该文件夹存储在云存储、Git、Dropbox、Google Drive 或其他适合其工作流的同步层中。
一个库可能看起来像这样:
vault/
├── TODO.md
├── people/
├── projects/
├── agent/
└── notes/
在顶层,AGENTS.md 可以定义 Codex 在了解更多人、项目、决策和未完成事项时应如何更新该工作空间。
不要复制精确的库结构。教会 Agent 持久上下文应该存放在哪里、保留什么上下文,以及何时不要造成变动。
一个实用的 AGENTS.md 可能这样说:
- 将 ~/vault 视为持久的工作记忆。
- 偏好规范的笔记,避免笔记泛滥。
- 明确地路由待办事项、人员、项目、每日摘要和草稿笔记。
- 保留决策、阻碍项、负责人、日期和有用的链接。
- 如果没有有意义的变化,不要变动库。
仓库保存代码。库保存滚动上下文:涉及的人员、变更内容、被阻塞的内容、需要跟进的内容,以及否则会在不同会话之间消失的内容。
重要的上下文不应该只存在于对话记录中。把它写在某个地方,下一个线程可以拾取。
Codex 也有第一方记忆功能,位于设置 > 个性化 > 记忆。它为偏好、重复工作流和已知陷阱提供了一个本地回忆层。它们补充而非替代显式的书面上下文。Chronicle 通过帮助 Codex 从最近的屏幕上下文构建记忆,朝着相同的方向推进。
从代码向外拓展
Codex 仍然从代码开始。但围绕代码的更多工作现在可以通过同一个系统完成:MCP 服务器、浏览器界面、桌面控制、线程自动化和可审阅的工件。
这改变了控制模型。引导中断正在进行的工作。排队排列下一个任务。线程自动化在用户离开时保持线程活跃。目标添加了一个具体的终点线,Codex 可以不断推进。
现在,Codex 可以将一个工作流从指令带到执行再到工件审查,即使工作离开了仓库。





