Codex Harness vs DeepSeek Harness:两条 Agent 架构路线的深度对比
信息截至 2026 年 8 月。DeepSeek Harness 仍处于开发者预览版(v0.1),官方明确提示会有兼容性破坏变更;文中涉及的版本与能力以各官方文档为准。
〇、先对齐概念:什么是 Harness
在 AI 工程语境里,Harness(驾驭框架) 指围绕大语言模型构建的一整套运行时支撑系统——负责工具调度、上下文管理、会话持久化、沙箱隔离、权限审批、错误重试等工程层工作。一句话公式:
Model + Harness = Agent
模型决定 Agent “能想什么”,Harness 决定 Agent “如何把事情做完”。OpenAI 的 Codex 和 DeepSeek 在 2026 年 8 月开源的 DeepSeek Harness(dsh),都是这个公式的实现,但它们在"哪一层做深、哪一层放开"上做出了截然相反的取舍。这篇文章从架构设计出发,逐层对比两者的差异。
一、定位差异:成品产品 vs 可组装底座
这是理解一切差异的起点。
| 维度 | OpenAI Codex | DeepSeek Harness (dsh) |
|---|---|---|
| 本质定位 | 开箱即用的 AI 编程 Agent 产品 | Agent 运行时框架(Agent Runtime Framework) |
| 出品方 | OpenAI | DeepSeek AI |
| 开源情况 | 核心代码闭源 | MIT 协议完整开源 |
| 模型绑定 | 绑定 OpenAI 模型(GPT-5.6 系列为主) | 模型无关,原生适配约 40 家厂商 |
| 主要形态 | ChatGPT 桌面端 Codex Tab + CLI + Cloud | Web UI(127.0.0.1:3080)+ CLI + Python SDK |
| 成熟度 | 成熟商用产品 | v0.1 开发者预览,官方警告将有破坏性变更 |
| 发布时间 | CLI 始于 2025 年 5 月 | 2026 年 8 月 13 日 |
Codex 的回答是:“我先替你做好一个 Agent,你在它规定的边界内使用和扩展。”——先交付完整产品,再开放 Skills、MCP、hooks 等外围扩展点。
DeepSeek Harness 的回答是:“我不规定 Agent 应该长什么样,我给你一组运行时积木,你自己组合出 Agent。”——Coding Agent 只是其中一种组合结果。
一个形象的比喻:Codex 像 iPhone(精装成品,软硬一体,墙不能拆),DeepSeek Harness 像 Android / 乐高底板(施工图和预制件全部开源,零件随便换)。
二、架构哲学:特权内核 vs 一切皆插件
2.1 Codex:高性能单体内核 + 有限扩展面
Codex 的核心是一个用 Rust 编写的高性能单体(monolithic core)。主循环如何推进、工具如何调度、上下文如何管理,都写死在框架核心里。开发者可以通过 MCP、hooks、AGENTS.md 配置等方式扩展外围能力,但无法触碰系统真正的运行方式——想改变 Agent 的核心行为,只能等官方更新,或者通过层层补丁绕开设计。
这种"特权内核"架构的优势:
- 性能与一致性:Rust 单体核心,行为可预期,体验高度打磨;
- 安全可控:安全边界由厂商统一管理,内核级沙箱无法被插件绕过;
- 治理简单:扩展对象少,企业审计面小。
代价是:社区无法触及核心,生态只能在官方划定的扩展面上生长。
2.2 DeepSeek Harness:无特权内核的纯插件树
dsh 的核心主张是 “Everything is a Plugin”(一切皆插件):模型适配器、工具注册表、技能、会话日志、沙箱、存储、调度、UI——连 Agent Loop 本身都是插件,可以整个换掉。官方的说法是:“不存在需要打补丁的特权内核,扩展 dsh 的方式是把新插件挂到旧插件旁边。”
这套架构的地基是 Cordis 元框架(源自 Koishi 作者 Shigma 的开源项目,DeepSeek 与北京大学联合发表了论文《A Programming Paradigm for Spatiotemporal Composability》阐述其理论基础)。Cordis 本身只做三件事:插件加载、卸载、依赖管理;它提供两个关键属性:
- 时间可组合性:插件卸载时,其产生的所有副作用(事件监听、服务注册、状态修改)被完整回滚,系统干净恢复到加载前状态——所有注册都是可逆的;
- 空间可组合性:插件以声明式管理彼此依赖,运行时自动处理装载顺序。
各插件之间通过 Service(服务) 和 Event(事件) 机制协作,可替换能力按 Definition / Provider / Consumer 三角色建模(Capability Seam):替换提供方不动消费方。
2.3 哲学对比小结
| Codex | DeepSeek Harness | |
|---|---|---|
| 核心形态 | Rust 高性能单体内核 | Cordis 微内核 + 插件树 |
| 什么可以换 | 工具、提示词、hooks(外围) | 一切,包括 Agent Loop 本身 |
| 扩展方式 | 在官方扩展面上配置 | 挂载/替换插件,配置即组合 |
| 开放层级 | 应用层 | 组装层(能力边界更宽,治理对象也更多) |
值得注意的一个反向观点:开放组装层意味着治理对象更多——Codex 的用户只需要治理"我用了什么工具",dsh 的用户还要治理"我的 Agent 是由哪些插件拼出来的",这需要配套的测试、版本管理和回滚方案。
三、可替换组件对比
DeepSeek Harness 把下列每一层都抽象为可替换插件,这是它与 Codex 最直观的架构差异:
| 组件 | dsh 默认实现 | dsh 可替换为 | Codex 对应能力 |
|---|---|---|---|
| 模型适配器 | DeepSeek 官方 | Anthropic / OpenAI / Ollama 本地模型等约 40 家 | 仅 OpenAI 模型(或兼容端点) |
| 工具集 | 文件系统 + Shell | 任意自定义工具插件 | 内置工具 + MCP |
| 沙箱 | 本地进程 | Docker / E2B / 远程沙箱 | 内核级 Seatbelt / Landlock(固定) |
| 会话日志 | 本地追加式事件流 | 云存储 / 数据库 | 对话历史(不可完整回放) |
| Agent 循环 | 标准 ReAct | 自定义推理策略 | 固定,不可替换 |
| UI 层 | Web UI | 自定义(社区已有 TUI、QQ 风格皮肤等) | 终端 / 桌面端 / IDE(固定官方形态) |
快速启动:npx @deepseek-ai/dsh web。
四、安全模型:硬边界 vs 可编程策略
4.1 Codex:内核级沙箱,不可绕过
Codex 安全模型的招牌是内核级沙箱:macOS 上用 Seatbelt,Linux 上用 Landlock,在操作系统系统调用层直接拒绝危险操作。特点是:
- 不可绕过:即使模型被 prompt injection 诱导"想做"危险操作,内核层面也做不到;
- 三档二元权限:粒度较粗,但边界极硬;
- 危险操作前审批提示。
这使得 Codex 成为审查完全不受信任代码(外部 PR、临时工作区、CI/CD 自动化)场景下的最强硬边界方案。
4.2 DeepSeek Harness:沙箱即插件,安全即配置
dsh 没有内置一个"唯一的"安全方案,而是把沙箱和审批策略都做成插件:
- 默认本地进程隔离,可换 Docker / E2B / 远程沙箱;
- 审批策略由插件决定,粒度可自定义;
- 工程纪律上强调:策略一律单调收紧、执行身份不可变、失败一律 fail-closed,安全性不依赖监听器顺序;
- Code Mode 有意选择了一个"听起来不太安全"的隔离方案,换取模型直接编排工具链的效率——这是官方明确的设计取舍。
核心差异:Codex 给你一个无法拆除的安全围栏;dsh 给你设计围栏的图纸和材料。前者安全下限高且恒定,后者上限取决于你的配置——自由度的代价是安全责任部分转移给了使用者。
五、会话与可观测性:对话历史 vs 事件溯源
这是 dsh 差异化最明显的一层。
Codex 维护的是常规对话历史:支持会话恢复,但不保存每次模型请求的完整上下文,无法精确回放"当时模型到底看到了什么"。
DeepSeek Harness 采用 append-only(仅追加)事件溯源 架构,官方原则是 “Model-visible means logged”——模型能看到的一切(system prompt 修改、工具调用、推理步骤、上下文注入)都写入同一条事件流。会话恢复、分叉、转录、遥测、持久化全部从这一条事件流派生。由此获得四种能力:
- 可追溯:沿事件流定位错误上下文或异常工具结果,而不只是看最终答案;
- 可恢复:会话状态不依赖进程中难以解释的内存对象;
- 可分叉:同一历史可从任意节点创建新路径,对比不同模型、工具或策略——类似版本控制;
- 可评估:基于事件流构建失败分类、回归测试和运行时指标。
配套的 Trajectory View 可回放任意一次 Agent 执行的完整决策路径。需要注意:可观测不等于已安全——事件流能让你知道"发生了什么",但不会自动阻止恶意插件窃取凭证;会话日志本身含敏感上下文,还需要保留期、脱敏和访问控制。
六、运行模式与并行能力
DeepSeek Harness 内置四种预设组合(Profile 把配置组合成插件树):
| 模式 | 工具集 | 适用场景 |
|---|---|---|
| 标准模式(standard) | 完整工具集 | 日常开发 |
| 代码模式(code / PTC) | 模型生成代码编排工具链 | 高效批量执行 |
| 极简模式(minimal) | 仅 Shell + 文件编辑 | 基准测试(V4 Pro 官方跑分环境) |
| 创造模式(cordis) | 运行时检查 + 试验插件 | 开发调试新插件 |
另有 Headless 模式 + Python SDK,支持程序化批量运行(逐文件/逐模块循环派发任务),这是交互式产品形态较难覆盖的场景。
Codex 的优势在多端矩阵与云端并行:ChatGPT 桌面端 Codex Tab、CLI、IDE 集成、Codex Cloud 最多 6 条并行线程,可从 GitHub / Linear / Slack 直接触发任务,图形化并行任务管理体验成熟。
七、成本结构
| Codex | DeepSeek Harness | |
|---|---|---|
| 工具本身 | 订阅制(ChatGPT Free/Plus $20/Pro $100-200 档位内含用量)或 API 计费 | MIT 开源免费,只付模型 API 费 |
| 典型模型成本 | GPT-5.4:输入 $2.5/M、输出 $15/M(>272K 长上下文溢价 2×/1.5×) | V4-Flash 极简任务约 ¥0.2/次;V4-Pro 标准编程任务约 ¥1–3/次 |
| 成本特征 | 订阅可预期,超额转 API | 搭配 DeepSeek 自家模型时与海外旗舰相差约一个数量级 |
第三方横评(同一批 30 个 Agent 任务、同一模型接入不同 Harness)显示,不同 Harness 的 token 消耗和单任务成本差异可达数倍——Harness 本身就是成本变量,这也是"固定模型测 Harness"成为主流评测方法的原因。
八、生态与组合关系:对手还是上下层?
一个常被忽视的事实:dsh 内置了 Codex 和 Claude Code 的子代理适配器(默认关闭),可以从 PATH 解析它们的二进制并把子任务委派过去,还提供桥接插件复用两者的 hooks 配置。
这意味着两者不必非此即彼。一个现实的 2026 年组合方式是:
- Codex 作为编辑器里/云端的交互式编码 Agent,处理日常开发、不可信 PR 审查(硬沙箱);
- dsh 作为服务器上的编排层,把任务分发给合适的 Agent 或模型,所有过程汇入同一条可回放的会话日志。
配置层面也互不冲突:AGENTS.md(Codex)与 settings.yaml(dsh)可以共存于同一仓库。
九、选型速查表
| 你的需求 | 推荐 | 理由 |
|---|---|---|
| 开箱即用、不想折腾配置 | Codex | 成熟产品,体验一致性高 |
| 审查不可信代码(外部 PR、CI) | Codex | 内核级沙箱不可绕过 |
| 图形化并行任务管理 | Codex 桌面端 | Codex Tab + 云端 6 线程 |
| 深度绑定 ChatGPT/OpenAI 生态 | Codex | 原生集成 |
| 深度定制 Agent 行为(换循环、换沙箱) | DeepSeek Harness | 一切皆插件,无特权内核 |
| 多模型自由切换 | DeepSeek Harness | 模型适配是架构层一等公民 |
| 成本敏感的批量任务 | DeepSeek Harness + V4 系列 | MIT 免费 + 低价模型 |
| 会话审计、回放、分叉、回归评估 | DeepSeek Harness | append-only 事件溯源 |
| 二次开发自己的 Agent 产品 | DeepSeek Harness | MIT 协议,可改任何一层 |
| 上生产关键路径 | Codex(当前) | dsh 官方明确警告破坏性变更,需 pin 版本并充分测试 |
十、总结
Codex Harness 和 DeepSeek Harness 代表 Agent 工程的两条路线:
- Codex 把复杂留给厂商,把简单留给用户——Rust 单体内核、内核级沙箱、多端矩阵,用封闭换性能、安全和一致性。它是"更好的产品"。
- DeepSeek Harness 把复杂和权力一起交给开发者——Cordis 微内核、一切皆插件、事件溯源可回放,用开放换自由、可审计和生态可能性。它是"更有想象力的架构"。
架构中心上,Codex 的中心是 Agent Loop,dsh 的中心是可组合、可替换、可回放的能力网络。短期看,Codex 的成熟度和安全下限更适合多数团队直接使用;长期看,dsh 示范的"运行时彻底插件化"路线——事件溯源做真源、能力做 seam、策略做单调、循环可替换——很可能会被下一代 Agent 工具大量借鉴。两者不是替代关系,而是可以分层的组合关系。

157

被折叠的 条评论
为什么被折叠?



