14 平台化转向
前面各节把 Harness 当作工件来解剖。 本节论证:这个工件已经换了品类——在 2025 年到 2026 年年中之间,编码智能体 Harness 完成了从工具到平台的转向:一个拥有自己的扩展生态、包经济学、治理层、切换成本,并且自 2026 年 6 月起还拥有自己元层的运行时。 本研究的 4 月版曾以“CLI 即框架假说”的名义谨慎地提出这一论断。 此后在语料库自身的源码树、厂商 SDK 与市场中积累的证据,让我们可以把它作为一个论点陈述出来。
14.1 从假说到论点:CLI 即框架
对 LangChain、AutoGen 等缺席(观察 13.2)的标准解读是:生产级 Harness 不需要框架。 但有第二种解读:它们不需要框架,是因为 Harness 本身就是框架——开发者交付软件所经的默认编排层,而不只是他们查询的一个工具。
想想框架传统上提供什么:一个循环、一个工具注册表、一个记忆层、一个配置表面、一个扩展机制。 这里研究的每个生产级系统样样都有。 Claude Code 出货流式 ReAct 循环、43 个注册工具、基于压缩的记忆管理器、CLAUDE.md 驱动的配置、用于集成的 MCP 与用于能力包的 Skills——Codex、Gemini CLI、Mistral Vibe、Hermes 与 OpenCode 同样如此,各用自己的习语(Pi 除 MCP 外样样匹配,而它刻意拒绝 MCP,偏好 CLI 工具加它的扩展总线)。 区别在于,“框架”不是开发者引入代码的库;它是开发者身处其中工作的运行时。 开发者的“程序”是一个自然语言任务加一棵 Markdown 文件树(CLAUDE.md、AGENTS.md、GEMINI.md、SKILL.md),配置智能体的行为、工具访问与领域知识。 “API”是文件系统、终端与 git。
来自语料库的四个趋同信号支持这一解读。
信号 1:技能是声明式程序。
11 个系统中有 9 个实现技能(观察 12.5):包含 SKILL.md 及指令、可选脚本与元数据的目录。 一个技能在功能上就是为 LLM 运行时而非 CPU 运行时编写的程序。 它声明智能体应该做什么(SKILL.md 正文)、何时激活(Claude Code 的 paths frontmatter、OpenHands 的 PathTrigger 规则、OpenClaw 的 requires),以及可以用什么工具。 这是传统框架中插件的结构类比,只是编程语言成了英语加 YAML frontmatter——而且这一层如今有了注册表、供应链安全与智能体作者(第 12.5 节)。
信号 2:Hook 与事件总线作为扩展基底。
4 月时,面向用户的生命周期 Hook 还是 Claude Code 的特色。 到 7 月,它已是占主导的扩展基底——11 个系统中的 9 个,只有 Aider 与 Mini-SWE-Agent 弃权:Codex 出货的 Hook 事件名逐字就是 Claude Code 的;OpenHands 把 pre_tool_use/post_tool_use/stop Hook 接进 Agent.step(),且允许一个智能体作为 Hook 处理器;Mistral Vibe 在内部中间件管线旁边加了 hooks.toml shell Hook(拒绝、改写输入、附加上下文);Gemini CLI 向扩展暴露 11 个循环生命周期事件;Pi 就是一条事件总线,约 33 个类型化事件从工具拦截覆盖到原始供应商 I/O;OpenCode 的插件是返回 20 个类型化 Hook 的函数。 这与 Web 框架和构建系统用了几十年的扩展模型相同,只是应用于一个 LLM 执行循环。 开发者不是在为智能体写程序,而是在它里面写程序。
信号 3:工具与工作流之间边界的消失。
在传统开发工作流里,开发者写代码、跑测试、看日志、提交、开 PR,都是离散步骤。 在 Harness 工作流里,这些步骤经自然语言指令委派给智能体,由智能体的工具系统执行。 智能体循环就是工作流引擎:Claude Code 的协调者阶段、Codex 的 update_plan 工具与 /goal 工作流、OpenHands 经裁判审计的目标循环。 当开发者输入一个任务,智能体派生子智能体、调度工具、管理上下文、产出结果时,CLI 已把构建系统、任务运行器与 IDE 的角色一并吞下。
信号 4:Harness 作为服务表面。
4 月之后最清晰的信号:Harness 现在出货的是平台的接口。 OpenCode 内嵌一个发布 OpenAPI 规范与生成式 SDK 的 HTTP 服务器,每个 UI——TUI、桌面、Web、IDE 插件、CI 动作——都是客户端。 OpenHands 经一个 OpenAI兼容网关暴露会话,任何能调 chat-completions 端点的工具都能驱动一个智能体:智能体即模型。 Mistral Vibe 把本地会话瞬移到托管运行时;Claude Code 把它的 SDK 与托管的 Managed Agents API 配对。 一个带客户端、SDK 与托管层级的运行时,不是带生态的工具;是带分发的平台。
14.2 Harness 与框架的合并
如果 Harness 就是框架,两类工件就应当合并——而在 2026 年,它们正在两个方向上可见地合并(表 15)。
| 方向 | 工件 | 它是什么 |
| Harness 框架 | Claude Agent SDK [38] | “作为库的 Claude Code”:同样的工具、循环、上下文管理、Hook 与子智能体,可在 Python/TypeScript 中引入;外加托管的 Managed Agents API |
| openai-codex SDK | pip install openai-codex:启动 Codex 线程、跑轮次、流式看进度、控制工作区访问;Python/TypeScript,随 Codex 仓库交付 | |
| OpenHands 智能体 SDK | V1 重构就是一次 SDK 化:智能体变成 openhands-sdk/openhands-tools 包,外加一个智能体服务器 | |
| Pi 包 / OpenCode SDK | 可引入的 pi-agent-core 加 RPC 模式;在内嵌服务器上生成的 @opencode-ai/sdk | |
| 框架 Harness | Deep Agents [37] | LangChain 架在 LangGraph 上的 Harness:todo 规划、带权限的虚拟文件系统、子智能体、带渐进披露的 SKILL.md 技能、AGENTS.md 记忆 |
| Pydantic AI Harness [39] | pydantic-ai 的“电池”:可组合能力(文件系统、Rust 沙箱解释器中的 code 模式),把框架智能体变成编码智能体 | |
| Strands harness-sdk [40] | 写进仓库名的合并:一个框架组织把“智能体 Harness 本体”作为 SDK 交付 |
两个方向都汇入同一工件形态——循环 + 工具 + 技能 + 子智能体 + Hook + MCP + 会话——无论起点是终端产品还是编排库。 趋同本身就是验证:当 LangChain——观察 13.2 记录了它缺席于每个 Harness 运行时的那个框架——终于构建了自己的 Harness 时,它独立采纳了语料库的约定(SKILL.md 渐进披露、AGENTS.md 记忆、子智能体派生、todo 规划)。 而下一小节的元 Harness 从上方补全了这幅图:其基线安装把 claude-agent-sdk 与 openai-agents 作为生产依赖引入——一个 2026 年编排层所依赖的“框架”,正是Harness SDK。 于是 2025 年代框架的双重缺席得到历史解答:Harness 没有采纳框架;它们取代了框架,把自己变成可引入的库,并把“我该用哪个智能体框架?”这个问题改写成了“你已经在跑哪个 Harness?”
14.3 平台经济学:市场、切换成本、治理
九十天窗口期内的三个进展,是教科书式的平台经济学。
市场。
Codex 长出了插件市场(GitHub/git/URL 来源、会话内安装审批、工作区共享);技能注册表出现在四个系统中,带信任分级、来源验证与隔离区(第 12.5 节);OpenClaw 把官方插件外部化到 npm。 能力分发如今有了应用商店的机制——包括应用商店式的安全病灶,SkillProbe 对已发布技能的审计即是明证 [89]。
切换成本。
Codex 出货一个一等导入器,专门针对 Claude Code 的磁盘状态:它探测 ~/.claude/projects 的会话 JSONL 文件,在导入台账下转换为 Codex 的 rollout 条目,并提议把 ~/.claude/settings.json 翻译成 ~/.codex/config.toml。 厂商互写对方会话存储的导入器,是平台竞争进入“用户数据成为护城河”的阶段——而反向力量同样可见:OpenCode 读取 Claude Code 的技能目录,OpenHands 读取 Claude Code 的插件清单并直接托管竞争对手的 Harness,元 Harness 则把每个厂商的锁定机制套利进自己的适配器表面。
企业治理。
Codex 的配置栈如今延伸到用户之上——MDM 管理的偏好、整机系统文件与企业云端下发包,同时供养基础默认值与一个可以硬性限制用户与项目作用域能设置什么的约束引擎。 与此同时,Google 宣布 Gemini CLI 将过渡为 Antigravity 品牌的 CLI——闭源,而 Gemini CLI 是 Apache-2.0(第 3.7 节)——并撤掉消费级免费档;SpaceX–xAI 合并加上宣布的 600 亿美元 Cursor 收购(截至 2026 年 7 月待完成),把 Harness 层按收购规模定价。 治理层、分级门控与收购级定价,是平台的签名,不是独立工具的。
14.4 元 Harness 层
Omnigent [25] 不是第十二个 Harness;它是一个押注——赌 Harness 已成为大宗组件,而持久的价值坐在高一层。 Databricks 于 2026 年 6 月将其开源(Apache 2.0,总量约 100 万行,其中生产级 Python 约 31.2 万行):一个四层进程拓扑(服务器 宿主守护进程 运行器 每会话的 Harness 子进程),其适配器边界按显式设计是 Omnigent 自身公共 REST API 的递归子集。 它的注册表随附 23 个规范 Harness 适配器(外加 16 个别名与一个社区入口点组),覆盖 Claude Code、Codex、Cursor、OpenCode、Hermes、Pi、Goose、Qwen、Kimi、Kiro、Copilot 与 Antigravity,并形式化为五种集成模式(sdk-in-process、cli-subprocess、acp-subprocess、native-tui、native-server);声明的能力要与一个一致性基准对账(探测基本轮次、工具调用、流式、中断、模型覆盖、策略拒绝),四个旗舰 SDK 适配器已完成实测验证,其余为尽力而为的声明。 Harness 像硬件一样被测试。
在这个边界之上,元层增加了任何单一 Harness 都不提供的四样东西。 组合:任何注册表中的 Harness 都可以作为任何其他 Harness 的子智能体会话被寻址,于是 Claude 大脑的编排者可以把工作派给 Codex,再让 Cursor 审查。 跨 Harness 策略:一个三级策略平面(会话 智能体 管理员;六个阶段;CEL(Common Expression Language)、Python 或 LLM 分类器求值器;跨会话的按用户预算)经由每个厂商自己的扩展机制对外来 Harness 强制执行——Claude Code Hook、Cursor Hook、Hermes Hook、ACP 权限请求——带失败即关闭的语义。观察 7.1 的那些锁定机制,从高一层看,成了一张适配器表面。 统一的沙箱与出站栈:Linux 上 bubblewrap 加 seccomp,macOS 上生成的 Seatbelt 配置,Windows 上 Job Objects——与语料库在 Codex 内部记录的同一架构,在元层重新实现,外加一个 L7 MITM 出站代理(自有 CA、按主机规则、默认拒绝),其上承载一个无密钥凭据代理:真实令牌从不进入沙箱,合成占位符在传输途中被换成凭据——Codex 也出货同样的设计(它的 network-proxy crate),这里被抬升到元层、覆盖所有被包裹的 Harness。 可共享会话:服务器持久化的转录,带多设备同步、ACL 授予、评审评论、分叉与会话中途切换 Harness。
它不做什么同样有信息量:它不实现编辑循环、仓库上下文、编辑应用策略——解剖图的 D3/D4 核心留在界线之下——而且它不假装各 Harness 等价:逐 Harness 的能力记录、厂商专属的 webhook 端点、一个 Claude 专属的 todos 字段、一个 Codex 专属的 goal 模式扩展,都会经“公共”API 按设计漏出来。 它的旗舰示例 Polly 是一个跨厂商的协调者-工作者:一个 Claude Code 大脑的编排者,自己不写代码,把工作扇出到六个厂商 Harness(每个任务一个 git worktree),并在编排者提示词中强制跨厂商评审——评审者必须与实现者不同厂商(机制层的护栏门控的是扇出与爆炸半径,不是厂商身份)。 连它的克制都有信息量:沙箱按设计施加得不一致(它用自己的沙箱 exec 包裹 Claude CLI,但对 Codex 委托给其原生沙箱模式),证明操作系统级隔离抗拒被抽取成共享服务。 双重缺席在元层同样成立:一百万行里没有智能体框架、没有 RAG——除非你把它的两个基线依赖 claude-agent-sdk 与 openai-agents 算进去,而这正是第 14.2 节的要点所在。
14.5 Harness 演化的九十天
由于 4 月版的 8 个系统是被重新固定版本而非替换,语料库包含一个受控的纵向样本:同一批 Harness,跨一个季度的源码 diff。 四段乐章刻画了这个窗口。
趋同变成了模仿。
4 月的趋同多半是独立的重新发现;7 月的趋同可以溯源。 Codex 逐字采纳了 Claude Code 的 Hook 事件词汇与 plan 模式的人机工学;OpenHands 采纳了 Claude Code 的插件清单格式、任务工具签名与静态/动态缓存边界;OpenCode 读取 Claude Code 的技能目录;Hermes 的源码注释致谢 OpenCode(编辑匹配器)、Codex(智能审批)、OpenClaw(编排者提示词)与 Goose(上下文提示)。 跨 Harness 的谱系如今写在代码本身里。
模式沿语料库向下扩散。
工具延迟加载从一个系统变成三个(外加七个技能变体);只读 plan 模式从两个变成全部四个厂商原生系统;LLM 审批分类器从一个(Claude Code)变成两个(Codex 的 Guardian);轮次级检查点从一个(Mistral Vibe)变成三个;安全感知的调度器划分从一个变成两个。 这个领域里一个竞争性特色的半衰期,如今以周计。
策略从散文迁出。
这个季度最清晰的修辞趋势(观察 7.3):Codex 的最新模型提示词删掉了禁提交与反过度打磨规则,代之以特性开关;Mistral Vibe 删掉了“绝不提交”硬规则,把提示词重新奠基在一个服务端 A/B 测试过的七级优先契约上;OpenHands 教授提交的机制。 随着模型内化规范、Harness 长出治理表面,行为策略正从提示词(模型读它)迁往配置(平台强制它)。
代码树本身以平台速度移动。
Codex 的工作区在一个季度内几乎翻倍(62.1 万 约 112 万行 Rust,89 126 个 crate)——记忆、Guardian、市场插件、code 模式、实时语音;Mistral Vibe 增长 77%(3.56 万 6.3 万行);OpenHands 重构为 SDK,其应用仓库变成自动化控制中心;Gemini CLI 宣布品牌转向并门控了免费档;这个领域的先驱 Aider 落入社区维护,窗口期内仅 18 个 commit。 4 月版的观察中有三条需要原地实质修订——耦合二分法(观察 7.1)、“体量意味着沙箱”的相关性(观察 10.2)、协议站位叙事(观察 13.3)——每一条都被九十天前尚不存在、或我们当时看不见的证据纠正。 方法论教训可以推广:在这个领域,清单式论断(工具数量、特性格子、版本固定)以周为单位衰减,而结构式论断(循环分类、子系统解剖、那些缺席)迄今证明是耐久的。 本版全文据此把两者分开陈述。
观察 12。编码智能体 Harness 在 2026 年上半年完成了平台化转向,而转向的每一层如今都在源码中可见:扩展基底(Hook、技能、插件)在全部生产系统中趋同;能力分发获得了市场、注册表、信任分级与智能体作者。厂商互写对方磁盘状态的导入器与 MDM 级治理层;Harness 变成可引入的 SDK,而框架厂商开始出货 Harness(第 14.2 节的合并);智能体本身作为一个 OpenAI 兼容端点背后的模型变得可寻址;一个元 Harness 如今在一个 API 之后编排 11 个厂商 Harness 的舰队——本研究系统的五个位列其中——重新实现其中昂贵的部分(沙箱、策略),套利其中专有的部分(Hook、会话存储)。这个领域的竞争单元不再是智能体循环,而是它周围的生态表面。