Codex入门完整文章

Codex Harness 是什么,谁真正需要它

从一次与 Codex 的连续对话出发,分清桌面端、模型与 Harness,并判断自己的产品是否真的需要 Agent 执行框架。

最近 Codex Harness 正式开源,我想弄清楚它到底能解决什么问题、适合哪些应用场景,以及普通用户和产品开发者是否真的需要它。于是我和 Codex 展开了一次连续追问,从“怎么使用”一直聊到“它究竟替开发者省掉了什么”。下面保留这次追问的完整对话,方便按原始脉络查看每一步问题和回答。

本篇目录
  1. 如何下载和使用 Codex Harness
  2. 使用 Codex Harness 有什么优势
  3. Harness 具体替用户做了什么
  4. 与桌面端、DeepSeek Harness 的区别
  5. 业务系统是否仍需修改和适配
  6. 哪些人从 Harness 开源中受益更多
C

Codex

Codex Harness 对话记录

原始对话

听说codex harness开源了,我该如何下载使用

是的,你听到的是 OpenAI 在 2026 年 8 月 19 日公布的开放式 Codex agent harness。它并不是一个单独叫“codex-harness”的安装包,而是包含在开源的 openai/codex 项目中,主要由 Codex CLI、SDK 和 app-server 组成。官方公告

最简单的使用方式:安装 Codex CLI

Windows 先安装 Node.js,然后在 PowerShell 执行:

npm install -g @openai/codex

进入你的代码项目:

cd D:\你的项目
codex

第一次运行会提示你登录 ChatGPT。登录后可以直接输入:

解释一下这个项目的结构

或者:

检查这个项目的问题并提出修改方案

官方安装和使用说明见 Codex CLI 文档

下载开源代码

如果你想阅读源码、修改 harness 或自行编译:

git clone https://github.com/openai/codex.git
cd codex

官方仓库:openai/codex。核心 harness 和 app-server 都在这个仓库中;官方列出的开源范围见 Open Source 页面

嵌入自己的软件

安装 CLI 后可以启动 app-server:

codex app-server --listen ws://127.0.0.1:4500

自己的桌面程序或网页后端可通过 WebSocket 与它通信,创建任务、接收实时进度、处理中断和人工审批。完整协议见 Codex App Server 文档

简单选择:

  • 自己日常写代码:使用 codex
  • 脚本或 CI 自动化:使用 codex exec
  • 在 Node.js 应用中调用:使用 Codex SDK
  • 开发自己的 Codex 客户端:使用 codex app-server

需要注意:开源的是 agent harness 和集成层,不是 Codex 模型本身;模型访问仍然需要 ChatGPT 登录或相应的 OpenAI 服务权限。

ok,回到之前的问题,我用codex harness有什么优势呢?

Codex Harness 的核心优势是:你不必自己从零开发“AI 如何持续工作、调用工具、修改文件、申请权限”的整套系统。

它主要适合想把 Codex 嵌入自己产品或自动化流程的开发者,而不仅仅是普通地聊天写代码。

主要优势

  • 完整的 Agent 工作循环
    它会管理任务上下文、多轮执行、工具调用、错误恢复和结果返回。你不需要手动把模型的一次回答串成完整工作流。

  • 能真正操作代码和工具
    Harness 可以让模型读取文件、修改代码、运行测试、调用终端与 MCP 工具,而不是只返回一段文本。

  • 自带权限与审批机制
    你可以规定哪些操作自动执行,哪些操作必须先询问用户,例如修改文件、联网或调用外部系统。

  • 支持长任务和持续上下文
    它能保存对话线程、压缩上下文并跨多个步骤继续工作,比较适合代码重构、问题调查和复杂自动化。

  • 实时展示执行进度
    通过 app-server,你的程序可以接收“开始任务、运行命令、修改文件、等待审批、任务完成”等实时事件,适合制作自己的 AI 工作台。

  • 开源、可检查、可扩展
    CLI、SDK 和 app-server 都已开放源码,你可以了解它如何执行任务、调整集成方式,并连接自己的 MCP 服务。官方开源组件说明

它适合做什么

例如你可以基于它制作:

  • 公司内部的自动修复代码平台
  • 自动检查并处理工单的运维助手
  • 带审批流程的客服或业务助手
  • 从需求单自动修改代码、测试并生成报告的系统
  • 集成到 IDE、管理后台或桌面软件里的专用 Agent

官方对不同使用方式的建议是:

需求推荐方式
平时在终端写代码codex
执行一次自动化任务codex exec
在程序中启动和管理任务Codex SDK
开发完整客户端或业务系统Codex app-server

这是 Harness 最大的价值:界面和业务规则由你的应用控制,Codex 负责底层 Agent 循环和受控执行。官方 Harness 介绍

对你现在是否有用

如果你只是想让 Codex帮你写代码,直接运行:

cd D:\你的项目
codex

就已经在使用这套 Harness 了,不需要单独下载或开发 app-server。

只有当你想制作“自己的 Codex 应用”,例如一个网页按钮点下去便自动分析项目、运行测试并展示过程,才需要进一步学习 SDK 或:

codex app-server

需要注意,开源的是 Agent 执行框架和集成层,不是模型本身;模型访问仍需要 ChatGPT 登录或相应的 OpenAI 服务权限。

你可以说的具体详细一点吗,还是没懂

可以。先说最关键的一句话:

Codex Harness 不是另一个需要单独打开的软件,而是 Codex 背后负责“让 AI 真正干活”的执行框架。你安装并运行 Codex CLI 时,其实已经在使用 Harness 了。

用一个比喻理解

可以把 Codex 分成三部分:

部分类似什么负责什么
Codex 模型大脑理解问题、思考方案、生成代码
Codex Harness手、记忆和工作流程读取文件、执行命令、调用工具、保存上下文、控制权限
Codex CLI/桌面应用操作界面让你输入需求、查看过程和审批操作

只有模型,就像一个很聪明、但不能碰电脑的人。

加上 Harness 后,它才可以:

  1. 打开你的项目文件。
  2. 搜索相关代码。
  3. 判断问题在哪里。
  4. 修改代码。
  5. 运行测试。
  6. 看到测试失败后继续修改。
  7. 最后告诉你改了什么。

一个具体例子

假设你进入项目后运行:

codex

然后输入:

修复用户登录后偶尔跳回登录页的问题,并运行测试验证。

如果只有普通大模型

普通聊天模型通常只能:

  • 根据你粘贴的几段代码猜测问题;
  • 给你一段修改建议;
  • 让你自己寻找文件;
  • 让你自己复制代码;
  • 让你自己运行测试;
  • 测试失败后,你再把错误粘贴回来。

整个执行过程主要由你完成。

使用 Codex Harness

Codex 可以自动形成一个循环:

理解任务
  ↓
搜索登录相关文件
  ↓
阅读认证和路由逻辑
  ↓
找到可能原因
  ↓
修改代码
  ↓
运行测试
  ↓
测试失败?继续检查和修改
  ↓
测试通过
  ↓
汇报改动和风险

这个“不断观察、行动、检查,再继续行动”的循环,就是 Harness 的核心价值。

Harness 具体替你做了什么

1. 管理项目上下文

一个真实项目可能有几百甚至几万个文件。Harness 会帮助 Codex:

  • 查看目录结构;
  • 搜索关键词和函数;
  • 只读取当前任务相关的文件;
  • 记住已经调查过什么;
  • 在任务较长时压缩旧信息;
  • 在后续对话中继续使用前面的结果。

例如,你继续说:

再给这个修复补一个回归测试。

Codex 知道“这个修复”指刚才的登录问题,不需要你重新解释全部背景。

2. 调用本地工具

Harness 允许模型使用你电脑上已有的工具,例如:

  • Git
  • npm
  • Node.js
  • TypeScript
  • Python
  • 测试框架
  • 编译器
  • 代码格式化工具

例如它可以执行:

npm test

如果测试报错,它能阅读错误信息,再决定下一步怎么处理。

3. 修改文件

普通模型只“建议你修改”。

Harness 可以让 Codex直接编辑项目文件,然后给你展示修改内容。你仍然可以:

  • 查看文件差异;
  • 拒绝某些操作;
  • 使用 Git 恢复;
  • 要求重新修改;
  • 让它只分析、不改代码。

4. 控制权限

Harness 不只是给 AI 权限,也负责限制权限。

例如你可以控制:

  • 是否允许读取项目外的文件;
  • 是否允许联网;
  • 是否允许运行命令;
  • 修改文件前是否需要确认;
  • 高风险操作是否必须审批。

所以 Harness 同时扮演“执行器”和“安全边界”。

5. 支持工具扩展

Codex 不只能操作代码,还能通过 MCP、技能和插件连接其他系统,例如:

  • GitHub
  • 数据库
  • 浏览器
  • 公司内部 API
  • 工单系统
  • 文档系统

比如公司可以做一个故障处理助手:

读取报警
→ 查询日志
→ 找到相关代码
→ 提出修复方案
→ 等待人工批准
→ 修改代码
→ 运行测试
→ 创建修复报告

Harness 负责把这些步骤串起来。

“开源”对你有什么意义

OpenAI 开源的是 Codex CLI、SDK 和 app-server 等 Harness 组件,而不是 Codex 模型本身。官方开源说明

开源主要带来三种好处。

普通使用者

你可以:

  • 查看它是如何操作文件和执行命令的;
  • 提交问题和功能建议;
  • 使用社区改进;
  • 更清楚地了解权限和执行边界。

但你不需要阅读或者编译源码。

自动化开发者

你可以在脚本中使用 Codex:

codex exec "检查这个项目的测试失败原因并输出报告"

这适合:

  • CI 自动检查;
  • 定期整理代码;
  • 批量分析项目;
  • 自动生成文档;
  • 自动进行代码审查。

产品开发者

你可以把 Codex 嵌入自己的软件。

例如你开发了一个项目管理网页,页面上有一个按钮:

“分析并解决这个任务”

点击后,后台通过 Codex SDK 或 app-server:

  1. 创建一个任务线程;
  2. 将工单和项目路径交给 Codex;
  3. 实时接收执行过程;
  4. 把进度显示到网页;
  5. 遇到敏感操作时显示“同意/拒绝”按钮;
  6. 最后显示代码改动和测试结果。

这种情况才是“基于 Codex Harness 开发产品”。官方建议,需要持久对话、实时事件和审批处理的应用使用 app-server。App Server 文档

你现在应该怎么用

如果你的目的只是让 Codex 帮你开发项目,不需要研究源码,也不需要手动启动 app-server。

进入一个项目:

cd D:\你的项目
codex

然后可以试试这些任务:

先不要修改文件,解释这个项目的结构以及启动方法。
运行项目测试,分析失败原因,但暂时不要修改。
找出项目中最明显的一个问题,修复它并运行测试。
检查当前未提交的代码改动,指出可能的问题,不要修改文件。

最简单的判断

  • 想让 Codex 帮你写代码:直接用 codex
  • 想让 Codex 自动执行一次任务:用 codex exec
  • 想在自己的程序中调用 Codex:用 SDK
  • 想自己开发一个类似 Codex 的界面:用 app-server
  • 想研究或修改底层执行方式:下载开源仓库

所以,对你目前而言,Harness 的实际优势并不是“多安装一个东西”,而是:**你只需要描述目标,Codex 就能在受控权限下自己查看项目、修改代码、运行工具和验证结果。**这整套能力已经包含在你安装的 Codex CLI 里。官方介绍

那我换个方式问,它跟codex的桌面端,以及deepseek harness有什么区别,和优势?

这三个东西并不完全是同一类:

  • Codex 桌面端:给普通用户直接使用的成品。
  • Codex Harness:Codex 桌面端、CLI 等产品背后的 Agent 执行引擎与开发接口。
  • DeepSeek Harness:与 Codex Harness 同层级的另一套开源 Agent 执行框架,更强调所有部件都可替换。

可以把它们理解为:

Codex 桌面端 = 做好的汽车
Codex Harness = Codex 汽车使用的发动机、控制系统和底盘
DeepSeek Harness = 另一套可以自由组装发动机、底盘和车身的模块化平台

核心区别

对比项Codex 桌面端Codex HarnessDeepSeek Harness
定位成品应用开发底座开发底座
主要用户普通用户、程序员开发 AI 产品的人Agent 框架开发者
能否直接使用可以通常需要 CLI、SDK 或自己开发界面有 Web UI,可直接试用,但偏开发预览
默认生态OpenAI/CodexOpenAI/CodexDeepSeek,同时强调模型适配器可替换
自定义界面很有限可以完全自己开发可以,UI 本身也是插件
修改 Agent 循环不适合可研究源码和集成,但偏 Codex 既定能力很适合,Agent Loop 也是可替换插件
权限与审批已经做好可通过 app-server 接管和集成通过插件和配置组合
会话和实时事件桌面端替你处理app-server 对外提供完整协议基于事件日志和插件系统
成熟度最适合日常使用已用于 Codex 产品体系目前仍是 Developer Preview
开发成本最低中等较高
最大优势开箱即用成熟 Agent 能力嵌入自己的产品极强的模块化和可研究性

1. Codex 桌面端是什么

你现在正在使用的桌面端,是一个已经完成的产品。

它已经替你做好:

  • 项目和聊天管理;
  • 文件选择与预览;
  • 多个任务并行;
  • 权限确认;
  • 代码差异查看;
  • 终端执行;
  • 浏览器和电脑操作;
  • 插件、技能和外部服务连接;
  • 文档、表格、图片等文件处理;
  • 长任务状态展示。

你只要打开项目,说:

检查这个项目为什么无法启动,修复后运行测试。

桌面端会负责把任务交给底层 Harness,再把执行过程以界面形式展示给你。Codex 桌面端官方说明

桌面端的优势

最大的优势是省事:

  • 不需要写程序;
  • 不需要理解通信协议;
  • 不需要自己保存会话;
  • 不需要自己实现审批界面;
  • 不需要维护 Agent 运行服务。

桌面端的限制

因为它是成品,你不能随意改变产品结构。

例如,你很难把它改成:

  • 医院内部的患者资料调查助手;
  • 物流公司的异常订单处理台;
  • 客服人员专用的工单页面;
  • 自动处理 Git 仓库任务的公司内部平台;
  • 带公司特殊审批流程的运维助手。

如果你只想写代码,桌面端通常已经够用。


2. Codex Harness 是什么

Codex Harness 是桌面端背后的“执行能力”。

它负责:

  • 保存任务上下文;
  • 让模型读取项目;
  • 调用终端和其他工具;
  • 反复执行“检查—修改—测试”;
  • 管理沙箱和权限;
  • 请求人工批准;
  • 发送实时执行事件;
  • 保存、恢复和继续会话。

官方把 Harness 定义为围绕模型的执行系统:模型负责推理,Harness 负责上下文、工具、权限、会话和任务循环。Codex Harness 官方介绍

为什么已经有桌面端,还需要 Harness?

因为公司通常不想让员工离开自己的业务系统。

假设你经营一个电商平台,客服后台里已经有:

  • 用户信息;
  • 订单记录;
  • 物流信息;
  • 退款按钮;
  • 聊天记录。

你可能想在订单旁边增加一个按钮:

AI 调查此订单

点击后:

  1. 你的后台把订单信息交给 Codex。
  2. Codex 查询物流和退款规则。
  3. Codex判断可能原因。
  4. Codex提出处理方案。
  5. 如果涉及退款,要求客服点击批准。
  6. 批准后调用你的退款接口。
  7. 把结果更新回订单页面。

这时你不想让客服打开 Codex 桌面端,再复制订单信息。你希望 AI 直接存在于客服后台。

这就是 Codex Harness 的使用场景:

你的业务界面
      ↓
Codex app-server / SDK
      ↓
Codex Harness
      ↓
模型、文件、终端、MCP 工具和审批

Codex Harness 相对桌面端的优势

不是“更聪明”,而是“更能定制”。

你可以决定:

  • 用户看到什么界面;
  • 自动附加哪些业务数据;
  • Agent 能调用哪些工具;
  • 什么操作必须审批;
  • 结果保存到哪里;
  • 哪些按钮会启动什么任务;
  • 如何展示执行过程;
  • 是否允许中断、恢复和继续任务。

官方提供三种主要入口:

  • codex exec:一次性自动任务;
  • Codex SDK:在代码里启动、恢复和管理任务;
  • codex app-server:开发完整界面,处理会话、实时事件和审批。App Server 文档

Codex Harness 的优势和代价

优势:

  • 与 Codex 模型和工具体系结合紧密;
  • 采用了和 Codex 产品相同的底层系统;
  • 已有成熟的代码操作、权限和审批能力;
  • 不必从零实现 Agent 循环;
  • 适合快速做一个可靠的业务 Agent。

代价:

  • 它本身不是一个面向普通用户的全新应用;
  • 自定义产品仍然需要开发前端和后端;
  • 开源 Harness 不代表 Codex 模型免费;
  • 模型访问和托管服务仍然属于独立部分。

3. DeepSeek Harness 是什么

DeepSeek Harness 与 Codex Harness 才是比较接近的竞争关系。

它也是一个 Agent 执行框架,但设计哲学是:

Everything is a plugin——所有东西都是插件。

其中可替换的部分包括:

  • 模型;
  • 工具;
  • Skills;
  • 会话系统;
  • 沙箱;
  • 存储;
  • Agent Loop;
  • 调度;
  • UI。

也就是说,它不只是允许你“添加几个工具”,而是希望整个 Agent 系统都可以重新组合。DeepSeek Harness 官方介绍

它甚至提供几种不同运行模式:

  • Standard Mode:完整编码 Agent;
  • Code Mode:让模型通过 TypeScript 组合多轮工具调用;
  • Minimal Mode:只有 Shell 和文件编辑器,适合测试模型本身;
  • Creator Mode:用于检查运行结构、开发插件和创建新配置。

DeepSeek Harness 的突出优势

更强调模块化

Codex Harness 的主要目标是把成熟的 Codex Agent 能力提供给应用。

DeepSeek Harness 的主要目标更像是:

让开发者重新组合一套自己的 Agent 运行时

你可以替换模型适配器、工具注册表、会话日志、沙箱甚至 Agent Loop。其架构文档明确说明这些部分都由插件提供,可以通过配置替换。DeepSeek 架构文档

运行轨迹更强调可追溯

DeepSeek Harness 使用追加式会话日志记录模型看到的内容,包括:

  • 系统提示词;
  • 推理和回复;
  • 工具调用;
  • 工具结果;
  • 子 Agent 调度;
  • 上下文注入。

恢复、分叉、搜索和回放都建立在同一事件流上。这对以下工作很有价值:

  • Agent 调试;
  • 模型评测;
  • 行为复现;
  • 研究不同 Prompt 或工具配置;
  • 审计 Agent 为什么做出某个决定。

更适合模型和架构实验

假如你想比较:

同一个任务分别使用 DeepSeek、OpenAI 和本地模型会怎样?

或者:

把默认 Agent Loop 换成我自己的循环是否更好?

DeepSeek Harness 的插件化设计会更自然。

DeepSeek Harness 的代价

它目前官方标记为 Developer Preview,并明确提醒可能出现破坏兼容性的更新。因此:

  • API 可能变化;
  • 插件接口可能变化;
  • 升级可能需要修改配置;
  • 生产部署需要自己承担更多维护;
  • 自由度越高,需要理解的架构也越多。

虽然它提供 Web UI,可以直接运行:

npx @deepseek-ai/dsh web

但它现阶段仍然更像“Agent 开发和研究平台”,不是 Codex 桌面端那种稳定、完整的日常生产力产品。DeepSeek Harness 仓库


两种 Harness 的本质区别

可以把设计目标浓缩成两句话:

Codex Harness

给你一套已经打磨好的 Codex Agent,
让你把它嵌入自己的产品。

重点是:

  • Codex 能力;
  • 代码任务;
  • 沙箱和审批;
  • 线程与实时事件;
  • SDK/app-server;
  • 与 OpenAI 体系配合。

DeepSeek Harness

给你一套高度模块化的 Agent 零件,
让你组合、替换和研究自己的 Agent。

重点是:

  • 所有功能插件化;
  • 更换模型和执行组件;
  • 运行轨迹;
  • 多种 Agent 模式;
  • 自定义 Loop;
  • Agent 框架实验。

具体场景怎么选

场景一:我只是想让 AI 帮我写代码

选择:

Codex 桌面端

原因:

  • 开箱即用;
  • 不用配置 Agent 框架;
  • 有完整图形界面;
  • 可以查看修改、终端和任务进度。

没有必要单独研究两个 Harness。

场景二:我想做一个公司内部的 AI 编程平台

优先选择:

Codex Harness + SDK/app-server

例如:

  • 自动处理 Jira/GitHub 任务;
  • 根据需求修改仓库;
  • 自动运行测试;
  • 在发布前要求人工审批;
  • 在公司网页中显示进度。

它的优势是可以直接复用已经完整工作的 Codex Agent 循环。

场景三:我想自由切换多个模型

更值得考虑:

DeepSeek Harness

尤其是你希望:

  • 使用 DeepSeek API;
  • 更换其他模型适配器;
  • 使用自己的推理服务;
  • 自定义上下文构造;
  • 替换 Agent Loop;
  • 比较不同模型和运行模式。

场景四:我想研究 Agent 原理

优先考虑:

DeepSeek Harness

它把更多内部组件显式拆成插件,并提供详细运行轨迹,比较适合学习和实验。

场景五:我要尽快做出可靠产品,不想研究底层

优先考虑:

Codex Harness

原因不是它一定在所有维度都更强,而是它更偏向“把完整 Codex 能力接入应用”,你需要自己决定的底层组件相对更少。

给你的直接建议

根据你前面的问题判断,你目前应该这样选:

  1. 日常开发继续使用 Codex 桌面端。
  2. 想学习 Harness,可以先试 DeepSeek Harness 的 Web UI,因为启动很直观:
    npx @deepseek-ai/dsh web
    
  3. 只有当你准备开发自己的 AI 产品时,再使用 Codex SDK 或 app-server。
  4. 如果你的目标是研究“如何搭建 Agent、替换模型和工具”,DeepSeek Harness 更有学习价值。
  5. 如果你的目标是“让 Codex 出现在自己的软件中并可靠完成任务”,Codex Harness 更合适。

一句话总结:

Codex 桌面端胜在开箱即用;Codex Harness 胜在成熟的 Codex 能力和产品集成;DeepSeek Harness 胜在彻底的插件化、模型可替换性和实验自由度。

为什么已经有桌面端,还需要 Harness? 因为公司通常不想让员工离开自己的业务系统。 假设你经营一个电商平台,客服后台里已经有: - 用户信息; - 订单记录; - 物流信息; - 退款按钮; - 聊天记录。 你可能想在订单旁边增加一个按钮: AI 调查此订单 点击后: 1. 你的后台把订单信息交给 Codex。 2. Codex 查询物流和退款规则。 3. Codex判断可能原因。 4. Codex提出处理方案。 5. 如果涉及退款,要求客服点击批准。 6. 批准后调用你的退款接口。 7. 把结果更新回订单页面。 这时你不想让客服打开 Codex 桌面端,再复制订单信息。你希望 AI 直接存在于客服后台。 这就是 Codex Harness 的使用场景:

你说的这一套流程,我没有感受到codex harness的优势,例如你说在页面上增加一个 “AI调查订单”,本质上是不是后台代码要修改,然后获取信息给到codex harness,然后codex harness调用大模型进行分析?那你提到的codex harness调用退款,首先,是不是要开放这个接口通过MCP也好,restful也好给到codex harness,另外还要开放权限,如果再增加了一个审批,是不是也要新开发代码…… 所以,我理解的是否正确,还是说我后台部署了codex harness,其它都不用修改和适配,直接就能达到这个效果?

你的理解基本完全正确。

**把 Codex Harness 部署到后台,并不会自动理解你的订单系统、自动找到退款接口,也不会自动在客服页面生成按钮和审批流程。**这些业务集成仍然需要开发。

Harness 的优势不是“业务系统零改造”,而是帮你省掉“如何让大模型稳定地连续工作”这一层基础设施。

你需要开发什么

以“AI 调查订单”为例,你的团队仍然需要完成以下工作。

1. 修改客服页面

需要增加:

  • “AI 调查订单”按钮;
  • Agent 执行进度区域;
  • 调查结果展示;
  • 同意退款/拒绝退款按钮;
  • 错误和中断状态。

Harness 不会自动修改已有客服系统。

2. 把订单上下文交给 Codex

你的后台需要读取:

  • 订单信息;
  • 用户信息;
  • 物流状态;
  • 聊天记录;
  • 退款规则。

然后把相关信息作为任务上下文发送给 Codex SDK 或 app-server。

例如概念上类似:

调查订单 ORD-12345。

订单金额:399 元
物流状态:运输中断
用户诉求:要求退款
会员等级:普通用户

请查询最新物流信息,判断是否符合退款条件。
未经客服批准,不得执行退款。

3. 把业务能力开放成工具

你的判断也是对的。

如果希望 Codex查询物流或退款,必须给它可调用的工具,例如:

get_order(order_id)
get_shipping_status(order_id)
check_refund_policy(order_id)
create_refund(order_id, amount, reason)

实现方式可以是:

  • MCP 服务;
  • 你的后台直接注册工具;
  • 在 Harness 外面实现一层 REST API 适配;
  • 让工具内部调用已有 REST、RPC 或数据库服务。

Harness 不会凭空知道你的 REST API。你必须提供接口定义、认证方式和调用代码。

4. 实现权限控制

你还需要定义:

  • Codex可以查询哪些订单;
  • 是否只能操作当前客服有权查看的订单;
  • 最大退款金额;
  • 哪些订单禁止自动操作;
  • 哪些接口只能读取;
  • 什么操作必须人工批准;
  • 如何记录审计日志。

最好不要直接把一个拥有全部权限的管理员密钥交给 Harness。

5. 接入审批界面

Codex app-server 能够:

  • 告诉你的应用“Agent 正在申请执行某项操作”;
  • 暂停当前任务;
  • 等待批准或拒绝;
  • 收到结果后继续执行。

但是你仍然需要编写:

  • 审批按钮;
  • 审批消息处理;
  • 审批人与权限验证;
  • 审批记录;
  • 超时处理。

也就是说:

Harness 提供“暂停、等待审批、批准后继续”的机制,但不会自动生成符合你公司业务要求的审批系统。

那 Harness 到底省了什么?

假设完全不用 Harness,你需要自己开发下面这套系统:

接收用户任务
  ↓
生成模型请求
  ↓
保存对话和任务状态
  ↓
解析模型要调用的工具
  ↓
验证工具参数
  ↓
执行工具
  ↓
把工具结果送回模型
  ↓
再次请求模型
  ↓
继续调用其他工具
  ↓
处理异常、重试和取消
  ↓
遇到敏感操作时暂停
  ↓
保存审批状态
  ↓
批准后恢复任务
  ↓
把执行过程实时传给前端
  ↓
处理上下文过长
  ↓
最终生成结果

这才是 Harness 替你处理的部分。

没有 Harness 时,你可能需要自己实现:

  • Agent Loop;
  • 多轮工具调用;
  • 会话状态;
  • 流式事件;
  • 中断和恢复;
  • 上下文管理;
  • 工具调用协议;
  • 沙箱执行;
  • 审批等待状态;
  • 任务取消;
  • 长任务恢复;
  • 模型错误重试;
  • 执行日志。

使用 Codex Harness 后,整体分工变成:

工作谁负责
订单页面和按钮你的应用
当前用户身份你的应用
获取订单信息你的业务接口
物流、退款等工具你的业务接口/MCP
业务权限判断你的应用和服务端
审批页面你的应用
审批人是否合法你的权限系统
理解任务并制定调查步骤Codex
决定下一步调用哪个工具Codex
连续进行多轮工具调用Harness
保存 Agent 会话状态Harness
流式输出执行过程Harness
暂停等待审批并继续Harness + 你的审批界面
上下文与任务循环Harness
文件与命令的沙箱控制Harness
最终分析和说明Codex

所以 Harness 解决的是“通用 Agent 基础设施”,不是“你的电商业务集成”。

用代码量来理解它的价值

假设不用 Harness,你可能需要自己写:

while (!finished) {
  const response = await callModel(messages, tools);

  if (response.toolCalls) {
    for (const call of response.toolCalls) {
      validateTool(call);
      checkPermission(call);

      if (requiresApproval(call)) {
        await savePendingApproval(call);
        await waitForApproval(call);
      }

      const result = await executeTool(call);
      messages.push(result);
    }
  } else {
    finished = true;
  }
}

真实系统还需要补充:

  • 数据持久化;
  • 并发;
  • 超时;
  • 重试;
  • 流式响应;
  • 用户中途补充信息;
  • 任务取消;
  • 服务重启后恢复;
  • 上下文压缩;
  • 审计;
  • 沙箱;
  • 多 Agent;
  • 模型版本变化兼容。

Harness 的价值是这些底层能力已经存在,你主要开发业务工具和用户界面。

审批机制具体省在哪里

假设 Codex 准备调用:

{
  "tool": "create_refund",
  "arguments": {
    "order_id": "ORD-12345",
    "amount": 399,
    "reason": "物流丢失"
  }
}

你仍然需要告诉 Harness:

create_refund 属于高风险工具,必须人工批准。

你还要开发审批界面。

但 Harness 可以帮你管理这个状态:

Agent 运行中
  ↓
请求调用 create_refund
  ↓
Harness 暂停 Agent
  ↓
发送 approval request 事件
  ↓
你的页面显示批准/拒绝
  ↓
客服点击批准
  ↓
你的后台回复 approval accepted
  ↓
Harness 执行工具
  ↓
将退款结果返回给模型
  ↓
Agent 继续完成任务

如果没有 Harness,你需要自己解决“模型请求工具后如何暂停、保存、等待几小时、再恢复上下文继续执行”的问题。

Codex app-server 提供的是这套生命周期和通信协议,而不是最终审批页面。App Server 文档

能不能完全不修改后台?

通常不能。

存在三种接入程度。

方式一:直接使用桌面端,人工复制信息

改造量最低:

客服复制订单信息
→ 粘贴给 Codex
→ Codex 给建议
→ 客服自己操作退款

优点是几乎不用开发,缺点是:

  • 信息需要人工复制;
  • 容易漏掉上下文;
  • 无法规模化;
  • 审计困难;
  • 无法自动调用业务接口。

方式二:让 Codex 操作现有网页

如果 Harness 具备浏览器或电脑操作能力,理论上可以让它像人一样:

  • 打开客服后台;
  • 搜索订单;
  • 阅读页面;
  • 点击按钮。

这种方式可能不需要修改后台接口,但仍需配置权限,而且存在明显问题:

  • 页面改版可能导致流程失效;
  • 容易点错位置;
  • 速度比 API 慢;
  • 权限和审计更困难;
  • 涉及退款等高风险操作时不够稳妥。

它适合原型验证或低风险操作,不适合作为重要退款流程的首选方案。

方式三:正式 API/MCP 集成

这是最可靠的方式:

客服后台
  ↓
你的 Agent 集成服务
  ↓
Codex Harness
  ↓
受控业务工具
  ↓
订单、物流、退款系统

需要开发,但优势是:

  • 参数明确;
  • 权限清晰;
  • 容易审计;
  • 不依赖页面结构;
  • 可以严格限制 Agent;
  • 可以进行可靠测试。

更准确的宣传表述

不应该说:

部署 Harness 后,它会自动接管你的业务系统。

更准确的是:

部署 Harness 后,你仍然需要接入业务数据、工具、权限和界面,但不需要从零实现 Agent 的上下文管理、工具循环、流式事件、暂停审批和任务恢复。

因此,你的结论是正确的:

  • 后台需要适配;
  • 数据需要提供;
  • 接口需要开放或包装;
  • 权限需要设计;
  • 审批页面需要开发;
  • Harness 不能零改造实现业务 Agent。

它的优势在于,当你准备开发几十个工具、多个 Agent 场景和大量长任务时,通用执行基础设施不用重复造轮子。如果只有“读取一次订单,然后调用一次模型生成建议”这么简单的需求,直接调用模型 API 可能更轻量,不一定需要 Harness

一个很实际的选择标准是:

  • 一次模型调用就能完成:直接用模型 API。
  • 需要两三个固定步骤:普通后端工作流即可。
  • 步骤无法预先确定,需要模型自主调查、多次调用工具、暂停审批和恢复:Harness 开始体现价值。
  • 只是个人使用:Codex 桌面端最省事。
  • 要做完整业务 Agent 产品:才考虑 Harness。

所以,我理解的就是,codex harness 开源对那些人收益更高,一个是我想要再复制出一个 codex桌面端或者 deepseek 桌面端的产品。二是要一个AI Native产品,它的底层要涉及记忆、多轮对话、上下文工程、工具调用等AI工程化能力的产品……是这个逻辑吗?

对,你的理解已经非常准确了。

更精确地说,Codex Harness 开源后,收益最大的是两类人。

第一类:开发“另一个 Codex”的人

也就是要做一个完整 Agent 客户端或工作平台,例如:

  • 类似 Codex 的桌面端;
  • 类似 DeepSeek Harness Web UI 的产品;
  • IDE 编程助手;
  • 公司内部 AI 开发平台;
  • AI 运维工作台;
  • 多 Agent 管理平台。

这些产品需要的并不只是聊天框,还包括:

  • 会话创建、保存和恢复;
  • 实时显示 Agent 执行过程;
  • 文件和代码修改;
  • Shell 命令执行;
  • 工具调用;
  • 权限控制;
  • 人工审批;
  • 任务中断与继续;
  • 长上下文管理;
  • 错误处理;
  • 多任务并行。

以前要自己实现这些基础设施。现在可以使用 Codex SDK 或 app-server,把 Codex Harness 作为底层执行引擎。

结构类似:

你开发的桌面端或网页
        ↓
Codex SDK / app-server
        ↓
Codex Harness
        ↓
模型、工具、文件、终端、沙箱

不过,目标不一定是复制一个通用 Codex 桌面端。更有价值的方向通常是做一个特定行业或工作流的 Agent 产品。

第二类:开发 AI Native 产品的人

这类产品的核心不是“增加一个 AI 聊天框”,而是让 AI 成为业务流程的一部分。

它通常需要:

  • 记忆与会话;
  • 多轮推理;
  • 上下文工程;
  • 工具调用;
  • 任务状态;
  • 长时间运行;
  • 人工审批;
  • 失败后重试;
  • 中断与恢复;
  • 执行过程追踪;
  • 权限和沙箱。

例如一个 AI 运维产品:

收到报警
  ↓
查询监控指标
  ↓
搜索日志
  ↓
检查代码和部署记录
  ↓
形成故障判断
  ↓
提出修复方案
  ↓
请求工程师批准
  ↓
执行修复
  ↓
验证系统是否恢复
  ↓
生成事故报告

这个流程不是一次模型 API 调用能完成的。它需要一个持续运行的 Agent Loop,这正是 Harness 提供的核心能力。

但“AI Native 产品”还可以再细分

并不是所有带 AI 的产品都需要 Harness。

不太需要 Harness

例如:

  • 文章摘要;
  • 翻译;
  • 标题生成;
  • 文本分类;
  • 根据固定资料回答一个问题;
  • 从表单生成一封邮件;
  • 固定三步的内容处理流程。

结构很简单:

用户输入 → 调用模型 → 返回结果

这种需求直接使用模型 API 就够了。

可能不需要 Harness

例如:

读取订单
→ 让模型判断退款资格
→ 输出建议

如果步骤完全固定,可以直接在普通后端代码里编排:

获取订单 API
→ 模型 API
→ 返回结果

这时引入 Harness 可能反而增加复杂度。

比较需要 Harness

当任务具有以下特点时,Harness 才开始有明显价值:

  • 不能提前确定需要几个步骤;
  • 模型需要自己决定下一步做什么;
  • 需要连续调用多个工具;
  • 需要根据工具返回结果调整计划;
  • 任务可能运行几分钟甚至几小时;
  • 中间需要用户补充信息;
  • 某些操作必须人工批准;
  • 服务重启后仍需恢复任务;
  • 需要记录完整执行轨迹;
  • 需要严格控制文件、终端和网络权限。

判断标准可以浓缩成一句话:

如果 AI 只需要“回答”,直接调用模型;如果 AI 需要“持续行动”,才考虑 Harness。

开源相比只提供 SDK,多出的价值

如果 OpenAI 只提供一个封闭 SDK,你只能按官方规定使用。

Harness 开源后,开发者还可以:

  • 阅读具体实现;
  • 调试 Agent 为什么这样行动;
  • 检查权限和沙箱逻辑;
  • 研究上下文是如何构造的;
  • 修改或替换部分行为;
  • 增加自己的工具与协议;
  • 针对公司安全要求进行审计;
  • Fork 出自己的版本;
  • 参与修复问题;
  • 学习一套成熟 Agent 系统的工程实现。

所以还有第三类隐性受益者:Agent 基础设施研究者、安全团队和框架开发者。

他们可能并不开发桌面端,而是研究:

  • 上下文压缩策略;
  • 工具选择;
  • Agent Loop;
  • 沙箱隔离;
  • 审批机制;
  • 长任务恢复;
  • 多 Agent 协作;
  • 模型行为评测。

最终可以这样总结

你的理解可以整理为:

Codex Harness 开源,主要不是让普通用户获得一个新的 Codex 软件,而是把 Codex 背后的 Agent 工程基础设施开放给开发者。

收益最大的是:

  1. 想开发类似 Codex 的 Agent 客户端或工作平台的人。
  2. 想开发需要记忆、上下文、工具调用、审批和持续执行能力的 AI Native 产品的人。
  3. 想研究、审计或定制 Agent 底层运行机制的人。

而普通用户如果只是用 AI 写代码,最直接的选择仍然是 Codex 桌面端或 CLI。对普通用户来说,开源 Harness 的收益更多是间接的:未来会出现更多基于它开发的垂直 Agent 产品。

以上为完整原始对话