如何把 Codex 用到极致

AI教程29分钟前更新 AI工具集
0 0 0

如何把 Codex 用到极致 – OpenAI 官方进阶指南与核心技巧

如何将 Codex 的潜力发挥到极致

绝大多数开发者初次接触编码助手(Agent),是为了处理代码本身:检查代码库、生成代码变更(diff)、运行测试、提交合并请求。这依然是 Codex 的核心功能。

然而,如今计算机上的大量工作已经通过代码间接完成:执行 shell 命令、浏览网页、调用应用程序接口(API)、导出文档、响应、触发自动化流程。随着这些交互界面对 Codex 开放,它不再仅仅局限于一个狭义的编码助手,而是逐渐演变成一个能够处理和完成各类计算机任务的强大系统。

Codex 应用的出现,具体地体现了这一转变。一个会话(thread)可以保持上下文信息、调用工具、展示生成物,并在多次交互之间延续,而不是在每次对话结束后就重置一切。

要更深入地利用 Codex,关键在于将这些能力进行整合运用:

  • 保持工作上下文的持久性会话
  • 在用户仍处于思考过程中时,支持语音输入、引导和任务排队
  • 让 Codex 的能力超越代码仓库,触及浏览器、桌面应用、服务器和各种连接器
  • 在用户离开时,依然能够自动运行和达成目标的会话
  • 提供一个侧边栏,供用户审查代码、文档、演示文稿及其他生成物

持久性会话

持久性会话:指能够跨越多次会话,持续保留工作上下文的长期运行的 Codex 会话。

将常用会话置顶,是实现持久性会话便捷访问的一种方式。它们特别适用于那些重复性的工作流程:

  • 一个用于处理日常事务的首席助手会话
  • 一个用于版本发布的会话
  • 一个用于审查文档的会话
  • 一个专门用于外部信息监控的会话

这些会话是持久性的工作空间,而非一次性的记录。Codex 可以随着时间的推移重新访问它们,保留先前做出的决策、偏好设置以及工作上下文,这些信息若非如此,则需要从零开始重新构建。

置顶会话的快捷键功能,使得这一过程变得非常实用。使用 Command-1 到 Command-9,可以直接跳转到已保存的会话。

语音输入

语音输入之所以有价值,是因为它能在思想被提炼成精炼文字之前,捕捉到其粗略的形态。

Codex 内置了语音输入功能。它尤其适用于那些口头表达自然流畅,但用键盘输入却显得笨拙的模糊起点:

我记得 Slack 里有个叫 Ben 的人提到过这个。 我不记得细节了。 请去查一下。

对于一个能够搜索、收集上下文并汇报结果的 Agent 来说,这样的指令通常已经足够了。

它也同样适用于在任务尚未完全成型之前,进行两三分钟的头脑风暴式的想法倾泻。

转录文本也发挥着类似的作用。原始的会议记录或口述的规划笔记,通常比简短的摘要提供了更优质的源材料,因为它保留了原始的犹豫、强调以及未完成的思路。

引导和排队

当与对当前任务的明确控制相结合时,语音输入会变得更加强大。

引导:在当前步骤完成之前,通过新的指示打断正在进行的 Codex 任务。

当 Agent 走向错误的方向需要纠正时,引导功能非常有用。例如,在进行网页界面审查时,用户可以在侧边栏标注界面的同时,打断正在进行的工作:

把这个变小一点。这两个元素之间的间距感觉不对。这段文案错了。

排队:在当前步骤完成后,为 Codex 添加待处理的任务。

排队则有所不同。它不会打断正在进行的任务,而是将下一个任务添加到待处理队列中。用户可能会说:

工作完成后,把预览链接发给 Slack 里的审查者。

引导改变的是 Codex当下正在做什么。排队改变的是接下来应该发生什么。这两种方式都使得用户在工作展开的过程中,能够紧密地参与其中。

工具和触及范围

一旦会话获得了连续性,下一个需要考虑的问题便是它能够对什么采取行动。Codex 可以向外层层扩展其能力:

  • $browser:用于在侧边栏中内置的应用内浏览器,Codex 可以在其中检查和标注网页界面。
  • @chrome:用于已登录的浏览器状态和基于 Chrome 的工作流。
  • @computer:用于仅通过桌面图形用户界面(GUI)进行的操作。

$browser 适合在侧边栏中进行浏览器审查。@chrome 适合依赖用户 Chrome 上下文的已登录浏览器工作。@computer 适合仅通过桌面 GUI 存在的任务。

MCP 服务器和连接器将同样的理念延伸到工作流的其余部分。Slack、Gmail 和 Calendar 之所以重要,是因为许多关键任务在转化为代码之前,往往首先以消息、收件箱项目或日程安排问题等形式出现。

技能(Skills)使得重复性的工作流可以被复用。一旦某个工作流被证明是有效的,就可以将其打包成一个技能,这样 Codex 就可以再次运行它,而无需从头开始重新学习整个流程。

随处工作

Codex 移动应用改变了用户必须固定在办公桌前的时间。任务可以在 Mac 上启动——文件、权限和本地设置已经就绪的地方——然后在用户用手机查看时继续进行。

这在碎片化的时间里尤为重要。某人可以在 Codex 运行较长任务时离开办公桌,在外面回答问题、批准下一步操作,或者在返回之前重新定向会话。本地环境保持不变;用户不必如此。

自动化

自动化是指按预定计划运行 Codex 工作。当重复性任务需要在一个工作空间中重新启动时,请使用计划自动化,例如每日报告或定期的代码库检查。当计划需要返回到具有运行上下文的活跃对话时,请使用会话自动化

会话自动化:指按预定时间表定期唤醒调用,返回到同一个 Codex 会话。

置顶会话很有用,但它们仍然需要用户主动返回。会话自动化可以每隔几分钟或几小时检查某事,直到满足条件为止,并随着时间的推移调整其节奏。

一个首席助手会话可能每 30 分钟运行一次:

每 30 分钟,检查 Slack 和 Gmail 中是否有需要我注意的未回复消息。 帮我优先处理最重要的。 如果有人问我问题,尽可能深入地研究答案并为我起草回复,但不要发送。

当用户返回时,收集上下文的昂贵部分通常已经完成。人类仍然负责决定发送什么。

会话自动化也适用于反馈循环。会话自动化可以监控拉取请求评论、Google Docs 评论或 Slack 回复,并在用户离开时让周围的工作继续推进。

设想一个动画工作流程,审查者在 Slack 中分享了一个视频。会话自动化可以按计划检查会话,在评论到达时渲染更新版本,并在同一会话中回复并 @ 审查者。如果某个集成无法完成最终上传,桌面自动化可以通过 GUI 完成这一步。

这个循环横跨 Slack 获取反馈、代码库进行渲染、桌面自动化完成最终上传。

目标(Goals)

当任务有一个 Agent 可以持续推进的明确终点时,目标(Goals)最为强大。一个模糊的目标是:

实现这个 Markdown 文件中的计划。

一个更强的目标则包含可衡量的成功标准。

例如,工程师可以通过设置新目录、定义目标并明确终点,将内部工具从 Python 迁移到 Rust:新的实现直到单元测试通过才算完成。

一个目标会将持续执行与验证器结合起来。用户定义结果、停止条件以及表明 Codex 是否正在接近目标的信号。

有用的验证器包括:

  • 测试套件
  • 基准测试
  • 错误复现
  • 验证矩阵
  • 必须持续通过的端到端工作流

雄心壮志很重要,但如果没有验证,它仅仅是愿望。

侧边栏

侧边栏将工作保留在产生它的对话旁边。用户无需导出生成物并切换上下文,而是可以就地审查。

输出可能是代码,但也可能是演示文稿、PDF、浏览器页面、表格或在过程中创建的其他生成物。

它特别适用于以下四类工作:

  • 检查生成物
  • 标注需要更改的地方
  • 操作网页界面
  • 审查更改

侧边栏允许用户就地审查 Markdown、电子表格、数据表格、文档和幻灯片。他们可以检查、标注和修改生成物,而不会中断工作流程。

演示文稿或 PDF 可以保留在生成它们的会话旁边,随时可以直接审查和修正。

标注

应用内浏览器允许 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 视为持久工作记忆。
  • 优先使用规范化笔记而非笔记的泛滥。
  • 明确地路由 TODO、人员、项目、每日摘要和临时笔记。
  • 保留决策、阻塞项、负责人、日期和有用的链接。
  • 如果没有有意义的变化,不要搅动仓库。

仓库保存代码。仓库保存滚动上下文:涉及的人员、发生了什么变化、什么被阻塞了、什么需要跟进,以及其他本应在会话之间消失的内容。

重要的上下文不应该只存在于对话记录中。把它写在某个地方,让下一个会话可以重新拾起。

Codex 在设置 > 个性化 > 记忆中也提供了第一方记忆功能。它们为偏好、重复工作流和已知陷阱提供了本地回忆层。它们是对明确的文本上下文的补充,而非取代。

Chronicle 通过帮助 Codex 从最近的屏幕上下文构建记忆,朝着同一方向推进。

从代码向外延伸

Codex 仍然从代码开始。但围绕代码的更多工作现在可以通过同一系统触及:MCP 服务器、浏览器界面、桌面控制、会话自动化和可审查的生成物。

这改变了控制模型。引导打断了正在进行的工作。排队安排了下一个任务。会话自动化在用户离开时保持会话的活跃。目标(Goals)增加了一个 Codex 可以持续努力的明确终点。

Codex 现在可以承载一个从指令到执行到生成物审查的完整工作流,即使工作内容已经离开了代码仓库。

阅读原文
© 版权声明

相关文章

AI聚合视觉工厂

暂无评论

暂无评论...