Coding agents(编码智能体) 已成为应用型 AI 中最活跃的领域之一,但许多团队在模型或服务商更迭时,仍不断重复构建脆弱的基础设施。那么,如何在生态不断变化的背景下保持快速迭代与高度韧性,并将更多精力投入到领域特定的工作流程和用户体验上?
作为行业内的动向标杆,OpenAI 的 Codex 提出了解决方法——“模型和 Harness(工具集)的共同构建”。最近,OpenAI 的架构师 Bill Chen 和 Brian Fioca 在演讲里一起详细介绍了该构建过程中克服的挑战,以及这个 Coding Agent 本身一些新兴的使用模式。基于该演讲视频,InfoQ 进行了部分删改。
核心观点如下:
通过将模型与 Harness 一同开发,你能更好地理解它的行为,这也是 Codex 作为一个集成了模型和 Harness 的系统的优势所在。
单纯在模型上构建包装器,忽视了基础设施层的整体价值。将精力集中在让产品脱颖而出的差异化功能上,才是这种模式的核心价值所在。
未来将是关于庞大代码库和非标准库的时代,如何在闭源环境中工作,如何匹配现有模板和实践,模型将不断支持这些能力。
Coding Agent 的构成
首先,我们来谈谈 Coding Agent 的构成。其实非常简单,一个 Coding Agent 由三部分组成:用户界面、模型和 Harness。用户界面显而易见,可能是命令行工具,也可能是集成开发环境,或者是云端或后台 Agent。模型也很直白,比如我们最近发布的 GPT-5.1 系列模型或其他一些供应商的模型。至于 Harness,这是一个稍微复杂一点的部分,它直接与模型交互,最简化地说,可以将其看作是由一系列提示和工具组合而成的核心 Agent 循环,它为模型提供输入和输出。

Coding 领域是应用人工智能最活跃的前沿之一,而随着新模型的不断发布,我们面临的挑战也在增加。更为复杂的是,大家不得不不断调整 Agent 以适应新发布的模型。
接下来我们将聚焦于 Harness 的部分。Harness 是模型的接口层,它是模型与用户、代码之间进行交互的媒介。它包括了模型需要的所有组件,以便在多轮对话中进行工作,调用工具,并最终为你编写代码,解读用户的需求。对一些产品来说,Harness 可能是其中的关键部分。不过,构建一个高效的 Harness 并不是一件轻松的事。
那么,构建 Harness 过程中遇到的挑战有哪些呢?首先是 AV(音视频工具)问题。你可能会为 Agent 提供一个全新的、创新的工具,但它可能是模型之前从未见过的,它可能并不擅长使用这种工具。即使它曾经见过,你也需要花时间根据该模型的特点调整 Prompt。
新模型不断发布,延迟问题也是一个挑战。模型在处理某些问题时需要时间,那么,我们应该如何设计提示,避免延迟过长?如何在用户体验上展示模型思考的过程?它在思考时是否与用户沟通,还是我们需要总结其输出结果?此外,管理上下文窗口和数据压缩也是一大难题。另外,API 接口也在不断变化,现在我们有完成功能、响应功能,以及未来可能出现的其他功能,模型是否能熟练使用这些工具以便发挥最大的智能也是一个问题。
将模型适配到 Harness 中需要大量的 Prompt 设计。实际上,模型的训练方式会带来一些副作用。我喜欢这样理解:(Steerability = Intelligence + Habit)智能加上习惯。一方面,智能是指:模型擅长什么?熟悉哪些编程语言?在某些框架中,模型能把代码写得多好?另一方面,它又养成了哪些习惯来解决问题?我们在训练模型时,培养了它在规划解决方案、查找背景信息、思考问题后再动手写代码,并在最后测试工作的习惯。
理解这些习惯是成为一名优秀的 Prompt 工程师的关键。如果你没有按照模型熟悉的方式来指导它,可能会遇到问题。当我们发布 GPT-5 时,许多不习惯使用我们模型的人,尝试将其他模型的 Prompt 直接套用到我们的 Harness 中,结果发现我们的模型做的事情比其他模型要更为细致,导致了响应速度慢,效果不如预期。我们最终发现,如果让模型按照它习惯的方式进行工作,而不是过度引导,它的表现会更好。通过与模型的对话,我问它:“我喜欢这个解决方案,但它花了太长时间。下次你能做得更快吗?”模型回答说:“你让我去看所有的内容,其实我并不需要这样做,正是因为这个原因,才耗费了这么长时间。”
因此,通过将模型与 Harness 一同开发,你能更好地理解它的行为,这也是 Codex 作为一个集成了模型和 Harness 的系统的优势所在。
Codex 作为 Harness/Agent
Codex 被设计成一个适用于各种编程环境的 Agent,它可以作为 VS Code 插件、CLI 工具使用,甚至可以通过 VS Code 插件或手机上的 ChatGPT 在云端调用。它的功能非常基础:你可以通过提示将想法转化为可运行的代码,具备规划能力。它能在代码仓库中导航并编辑文件,执行命令和任务,你也可以从 Slack 或 GitHub 上调用它来审查 PR。
这意味着 Codex 的 Harness 需要能够完成许多复杂的任务:需要处理并行工具调用、线程合并等问题,还要考虑安全性,例如沙箱管理、提示语转发、权限设置、端口管理等。数据压缩和上下文优化的管理也非常复杂。何时触发压缩,何时重新注入数据,如何优化缓存,所有这些都是必须要解决的挑战。如果你要从零开始构建这些功能并保持其更新,工作量巨大。幸好,我们已经将这些功能集成到一个 Agent 系统中,它能安全地编写自己的工具来解决遇到的新问题。
这听起来比普通的 Coding Agent 强大多了,不是吗?但想想看,其实在浏览器和图形用户界面出现之前,我们操作计算机的方式不就是通过命令行界面写代码并将其串联起来吗?这意味着,如果你能将任务以命令行方式以及文件任务的形式表达出来,Codex 就能知道该如何执行。
举个例子,我喜欢使用 Codex 将我的桌面上的照片整理到一个文件夹里,这是一个非常简单的应用场景。但它还能做的不仅如此,它能够分析文件夹中大量的 CSV 文件,进行数据分析,这并不一定是 Coding 任务,只要能够通过命令行工具来完成,Codex 就能帮你做。现在我们可以看到,Codex 是如此强大和有趣。
用 Codex 构建自己的 Agent
如果你希望将 Codex 集成到自己的 Agent 中,该如何操作呢?如果你打算创建下一个 Coding 初创公司,一个关键的模式是:Harness 成为新的抽象层。这个模式的好处非常明显,你不再需要在每次模型升级时都优先优化提示语和工具。但这是不是意味着你仅仅是在构建一个包装器呢?不是。正如我所说,单纯在模型上构建包装器,忽视了基础设施层的整体价值。将精力集中在让产品脱颖而出的差异化功能上,才是这种模式的核心价值所在。
我们来看看一些我们与客户合作时所遇到的模式,这些模式实际上帮助他们成功构建了产品。Codex 是一个 SDK,你可以通过 TypeScript 库来调用它,也可以通过 Python 执行它。它还提供了一个 GitHub 动作,能够自动合并 PR 中的冲突,解决大家讨厌的合并问题。此外,你还可以将它添加到 AgentSDK 中,并为你的产品提供 MCP 连接器。这样,你就可以拥有一个 Agent 系统。

我喜欢说,我们从最初的聊天机器人开始,它们能与用户对话;然后我们为这些聊天机器人提供了使用的工具;如今,你可以为聊天机器人添加更多工具,使它能够自己生成尚未拥有的 Harness。现在,你可以构建一个企业级的软件,允许它为每个客户即时编写插件连接器,这曾是专业服务团队的工作。你可以获得完全可定制的软件,且它可以与自己对话。我曾为开发日创建了一个看板,它能够自动修复自己的 bug,非常有趣。
最后,你也可以像 Zed 一样,将 Codex 嵌入到一个层级中,为 IDE 提供接口,使其能够与用户互动并进行代码编辑。这样,Zed 就不必处理我们擅长的部分,而是可以专注于打造最好的代码编辑器。
我们的顶级合作伙伴,如 GitHub,已经利用这些模式取得了巨大成功。我们为 GitHub 创建了一个 SDK,允许他们直接与 Codex 集成。你也可以使用这个 SDK 将 Codex 作为你 CI/CD 管道的一部分,或者将它作为与自己 Agent 直接互动的工具。如果你想定制 Agent 层,完全可以这么做。举个例子,我们与 Cursor 团队紧密合作,他们将自己的 Harness 与我们开源的 Codex CLI 实现对接,成功地优化了系统性能,所有这些都是公开可用的,你可以克隆我们的代码库,随意使用。
Codex 的未来是什么样的呢?它还没有发布一年,尤其是在推出 Codex Max 之后,变化非常迅速。它目前是增长最快的模型,每周服务数十万亿个 token,这个数字从开发日以来翻了一番。我们可以合理假设,模型将变得更强大,它们能处理更长周期的任务,而且不需要监督。新模型的信任度将进一步提高,我相信这些模型已经能够处理比六个月前更复杂的工作,而且这种信任感将不断增长。
未来将是关于庞大代码库和非标准库的时代,如何在闭源环境中工作,如何匹配现有模板和实践,模型将不断支持这些能力。SDK 也将不断发展,以更好地支持这些模型的能力,使模型能够在执行任务的过程中不断学习,避免重复错误,并为写代码和使用终端解决问题的 Agent 提供更多支持,你将能够通过 SDK 在自己的产品中使用这一切。
那么,我们从中学到了什么呢?Harness 构建非常复杂,特别是在新的模型不断发布的背景下。我们已经为你在 Codex 里构建了一个集成的工具,你可以直接使用它,或者查看源代码自行改进。除 Coding 以外,通过它你还可以构建更多全新功能,而我们会处理确保你的计算机 Agent 具备最强的能力。同时,我们非常期待看到你们用它创造出的产品。
参考链接:





