最近 Codex Harness 正式开源,我想弄清楚它到底能解决什么问题、适合哪些应用场景,以及普通用户和产品开发者是否真的需要它。于是我和 Codex 展开了一次连续追问,从“怎么使用”一直聊到“它究竟替开发者省掉了什么”。下面保留这次追问的完整对话,方便按原始脉络查看每一步问题和回答。
本篇目录 ⌄
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 后,它才可以:
- 打开你的项目文件。
- 搜索相关代码。
- 判断问题在哪里。
- 修改代码。
- 运行测试。
- 看到测试失败后继续修改。
- 最后告诉你改了什么。
一个具体例子
假设你进入项目后运行:
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:
- 创建一个任务线程;
- 将工单和项目路径交给 Codex;
- 实时接收执行过程;
- 把进度显示到网页;
- 遇到敏感操作时显示“同意/拒绝”按钮;
- 最后显示代码改动和测试结果。
这种情况才是“基于 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 Harness | DeepSeek Harness |
|---|---|---|---|
| 定位 | 成品应用 | 开发底座 | 开发底座 |
| 主要用户 | 普通用户、程序员 | 开发 AI 产品的人 | Agent 框架开发者 |
| 能否直接使用 | 可以 | 通常需要 CLI、SDK 或自己开发界面 | 有 Web UI,可直接试用,但偏开发预览 |
| 默认生态 | OpenAI/Codex | OpenAI/Codex | DeepSeek,同时强调模型适配器可替换 |
| 自定义界面 | 很有限 | 可以完全自己开发 | 可以,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 调查此订单
点击后:
- 你的后台把订单信息交给 Codex。
- Codex 查询物流和退款规则。
- Codex判断可能原因。
- Codex提出处理方案。
- 如果涉及退款,要求客服点击批准。
- 批准后调用你的退款接口。
- 把结果更新回订单页面。
这时你不想让客服打开 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 能力接入应用”,你需要自己决定的底层组件相对更少。
给你的直接建议
根据你前面的问题判断,你目前应该这样选:
- 日常开发继续使用 Codex 桌面端。
- 想学习 Harness,可以先试 DeepSeek Harness 的 Web UI,因为启动很直观:
npx @deepseek-ai/dsh web - 只有当你准备开发自己的 AI 产品时,再使用 Codex SDK 或 app-server。
- 如果你的目标是研究“如何搭建 Agent、替换模型和工具”,DeepSeek Harness 更有学习价值。
- 如果你的目标是“让 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 工程基础设施开放给开发者。
收益最大的是:
- 想开发类似 Codex 的 Agent 客户端或工作平台的人。
- 想开发需要记忆、上下文、工具调用、审批和持续执行能力的 AI Native 产品的人。
- 想研究、审计或定制 Agent 底层运行机制的人。
而普通用户如果只是用 AI 写代码,最直接的选择仍然是 Codex 桌面端或 CLI。对普通用户来说,开源 Harness 的收益更多是间接的:未来会出现更多基于它开发的垂直 Agent 产品。