Skip to content

Harness 时代 — AI 编程的底盤戰爭

核心论点:AI 编程智能体的竞争焦点已从"谁的模型更强"转向"谁的 Harness(运行架子)更高效"。2026 年三大关键节点:GitHub 量化了 Harness 的工程价值、OpenAI Codex 完成云端化与团队级工程化、Vercel AI SDK 用 HarnessAgent 实现了不同 Harness 的统一编排与随意切换。


目录


一、什么是 Harness(运行架子)

隐喻

如果 AI 模型是发动机,Harness 就是底盘与变速箱

具体功能

Harness 是包裹在 AI 模型外面的那一层编排架构,负责:

职责 说明
工具配置 为模型配置什么工具(MCP tools、CLI、API)
上下文管理 塞入什么上下文(系统提示、文件、历史)
工作流编排 按什么流程运行(多轮推理、子代理、权限流)
会话管理 会话隔离、压缩(compaction)、运行时配置
沙箱执行 安全的代码执行环境

为什么 Harness 比模型更重要

OpenAI 的 Codex 在过去半年输出量暴增(研究部门涨 56 倍、工程部门涨 27 倍),但真正决定编程智能体好不好用的,往往是这层外在的"架子"——同样一个模型,放进不同的 Harness,Token 消耗和完成质量可以差距巨大。

  ┌─────────────────────────────────────────┐
  │              Harness(运行架子)           │
  │  ┌───────────────────────────────────┐  │
  │  │  工具    上下文    工作流    沙箱   │  │
  │  │  ┌─────────────────────────────┐  │  │
  │  │  │       AI 模型(发动机)       │  │  │
  │  │  │   Claude / GPT / Gemini     │  │  │
  │  │  └─────────────────────────────┘  │  │
  │  └───────────────────────────────────┘  │
  └─────────────────────────────────────────┘

二、GitHub:首次量化 Harness 的工程价值

对照实验

GitHub 做了一件前所未有的事:在控制变量(拉平上下文窗口、推理强度)的前提下,用同一个模型执行同一批任务,分别放入不同 Harness 运行

"在达到相同代码完成率的情况下,换一个架子,Token 消耗量会产生显著差异。"

Effective Tokens(ET)公式

GitHub 发明了 Effective Tokens 指标来跨模型层级标准化 Token 消耗:

ET = m × (1.0 × I + 0.1 × C + 4.0 × O)
变量 含义 权重说明
m 模型成本乘数 Haiku=0.25×, Sonnet=1.0×, Opus=5.0×
I 新处理的输入 Token 基准权重 1.0
C 缓存读取 Token 仅 0.1×(从缓存读取成本极低)
O 输出 Token 4.0×(所有厂商最贵的 Token 类型)

工程意义:一个 10% ET 减少意味着真实成本减少 10%,无论用哪个模型。

GitHub 实测数据(12 个生产 Workflow)

Workflow ET 降幅 运行频率 说明
Auto-Triage Issues -62% 6.8 次/天 109 次 post-fix 运行,最显著持续改善
Smoke Claude -59% 高频 MCP 工具裁剪 + 降级到 Haiku 模型
Security Guard -43% 每个 PR 触发 安全审查,不涉密文件直接跳过 LLM
Community Attribution -37% 8 次 post-fix 移除完全未使用的 8 个 MCP 工具
Daily Compiler Quality -19% 1 次/天 较小改善幅度

频率乘以省量:Auto-Triage Issues 的 62% × 6.8 次/天,在观察期内累计节省约 7.8M ET

三大 Token 杀手(GitHub 发现的最常见低效模式)

1. 未使用的 MCP 工具注册

GitHub MCP Server: 40 个工具注册
  └── 实际使用: 2 个
  └── 纯开销: 38 个 × 10-15KB schema = 每轮 +8-12KB Token

"Workflow 作者自然倾向于注册完整工具集(最省事),但随着时间推移,大多数 workflow 只依赖一小段稳定工具。"

2. 用 MCP 做确定性数据获取

❌ 低效:MCP 工具调用(一次完整 LLM 推理轮)
   Agent → 决定调用工具 → 生成参数 → 接收响应 → 回到推理

✅ 高效:预下载 / CLI 代理
   Agent 启动前 → gh pr diff → 写入文件 → Agent 直接读文件
   (零 LLM 调用,纯确定性 HTTP 请求)

GitHub 的核心洞察

"许多 agent 轮次实际上在做确定性数据收集——读取 issue 元数据、扫描标签——这些根本不需要推理。把它们移出 LLM 推理循环。"

3. 单条规则配置错误导致失控循环

"Daily Syntax Error Quality 是优化前 ET 最高的 workflow。根因是一行配置错误:sandbox 只允许相对路径,每次 compile 都被阻止。Agent 陷入 64 轮 fallback 循环,手动读取源码来重建编译器本应输出的信息。修正一行 bash 白名单规则就消除了循环。"


三、OpenAI Codex:从本地工具到云端生产力

定位转变

维度 之前(本地工具) 现在(云端生产力工具)
执行位置 本地终端 云端远程执行
团队协作 个人开发脚手架 团队/组织级管理
成本管控 个人 API key 花费上限监控 + 分析面板
工作流 本地连续操作 手机启动 → 云端运行 → 稍后查看

新增能力

  • 远程执行:在手机上启动任务,让其在云端运行,稍后再查看结果
  • Codex SDK 整合:编程化接入团队工作流
  • 管理后台:团队级成员管理和权限控制
  • 花费上限监控:设置 per-provider 消费限制
  • 分析面板:可视化 Token 消耗和成本分布

工程意义

AI 编程的 Harness 从个人开发工具升级为组织级基础设施——开始具备企业管理所需的可观测性、成本控制和权限治理能力。


四、Vercel AI SDK:Harness 的统一编排

HarnessAgent — 像换模型一样换 Harness

Vercel AI SDK v7 引入 HarnessAgent,用一个统一接口驱动多种现成 Harness:

"AI SDK 一直让你不重写代码就能换模型。现在你能用同样的方式换 Harness。"

import { HarnessAgent } from '@ai-sdk/harness/agent';
import { claudeCode } from '@ai-sdk/harness-claude-code';
import { createVercelSandbox } from '@ai-sdk/sandbox-vercel';

const agent = new HarnessAgent({
  harness: claudeCode,    // ← 换成 codex 或 pi 即可切换
  sandbox: createVercelSandbox({
    runtime: 'node24',
    ports: [4000],
  }),
  tools: { /* 自定义工具 */ },
  skills: [ /* 自定义技能 */ },
});

const session = await agent.createSession();
const result = await agent.stream({
  session,
  prompt: '检查测试失败并修复生产代码。',
});

一行切换harness: claudeCodeharness: codex,其余代码不变。

Harness 管理的组件

HarnessAgent 统一抽象
├── Skills(技能)
├── Sandboxes(沙箱)
├── Sessions(会话)
├── Permission Flows(权限流)
├── Compaction(上下文压缩)
├── Runtime Configuration(运行时配置)
└── Sub-agents(子代理)

工程红利

结合 GitHub 的量化结论:

前提:不同 Harness 的 Token 效率差距可达 40-62%
     ↓
推论:不修改代码就能随时切换 Harness = 巨大的成本弹性
     ↓
实践:写一次 Agent 代码 → 按场景选最优 Harness
      ├── 日常 CI → 选 Token 效率最高的
      ├── 复杂推理 → 选推理能力最强的
      └── 成本敏感 → 选最省钱的

初始支持的 Harness Adapter

Adapter 状态
Claude Code 已支持
Codex 已支持
Pi 已支持
更多 开发中

注意:当前为 experimental 发布,版本间可能有 breaking changes。


五、三大进展的工程启示

技术红利转移路线图

2023-2025              2026                    未来
   │                     │                      │
   ▼                     ▼                      ▼
模型参数卷动     →   Harness 底盘优化     →   全链路编排优化
(谁的模型更强)      (谁的架子更高效)        (谁的管线更智能)
   │                     │                      │
   ▼                     ▼                      ▼
GPT-4 → Claude      GitHub量化 + Codex上云   跨Harness编排
→ Gemini → ...      + Vercel统一抽象         + 组合最优策略

核心启示

# 启示 来源
1 Harness 和模型一样关键,且优劣可以被量化测量 GitHub 对照实验
2 效果不佳或成本过高时,先别换模型,先换/优化 Harness 影片核心建议
3 最便宜的 LLM 调用是你不做的那个 GitHub Security Guard 案例
4 确定性操作移出 LLM 推理循环 GitHub MCP→CLI 迁移
5 Harness 切换能力本身就是工程红利 Vercel HarnessAgent
6 AI 编程开始走向团队和组织层级管理 Codex 云端化

六、实战落地指南

诊断决策树:Agent 效果不好怎么办?

Agent 效果不佳 / 成本过高
│
├── 第一步:检查 Token 消耗分布
│   ├── 启用 API proxy 日志(GitHub 模式)
│   ├── 输出 token-usage.jsonl(每次调用的 input/output/cache)
│   └── 计算 Effective Tokens(跨模型标准化)
│
├── 第二步:识别 Token 杀手
│   ├── 未使用的 MCP 工具?→ 裁剪工具集
│   ├── 确定性数据获取用 MCP?→ 改用 CLI 预下载
│   └── 失控循环?→ 检查 sandbox 权限配置
│
├── 第三步:优化 Harness(不换模型)
│   ├── 换更高效的 Harness
│   ├── 降级模型层级(Opus → Haiku)
│   └── 重构为子代理团队(小模型分工)
│
└── 最后才考虑:换底层模型

Token 优化清单

✅ Token 效率检查清单:
□ MCP 工具注册:实际调用的 vs 注册的,裁剪未使用项
□ 确定性数据获取:能用 gh/CLI 的不用 MCP
□ 预下载策略:Agent 启动前预取必需数据
□ 模型分层:数据收集用 Haiku,推理用 Sonnet/Opus
□ 缓存利用:最大化 cache-read Token 占比
□ 失控检测:监控 turns-per-run 异常飙升
□ Sandbox 权限:确保必需工具不被阻断
□ Run 频率 × 省量:优先优化高频 workflow

Harness 选型对比

维度 Claude Code Codex CLI GitHub Copilot CLI
定位 深度推理 + 重构 快速生成 + 模式补全 CI/CD 集成 + 代码审查
Token 效率 高(上下文管理精细) 中(模式补全流畅但可能冗余) 高(量化验证)
MCP 支持 原生 原生 原生
Sandbox
团队管理 强(云端化) 强(GitHub 集成)
切换成本 需重写 Agent 代码 需重写 Agent 代码 需重写 Agent 代码
Vercel 统一 已适配 已适配 待适配

Vercel HarnessAgent 的价值:消除"切换成本"列——写一次代码,随时换 Harness。

GitHub 实测中学到的最佳实践

实践 来源案例 效果
移除未使用的 MCP 工具 Smoke Claude -59% ET
gh pr diff 替代 MCP Auto-Triage Issues -62% ET
安全文件跳过 LLM Security Guard -43% ET
修正 sandbox 白名单 Daily Syntax Error 消除 64 轮死循环
模型降级(Opus→Haiku) Smoke Claude 配合工具裁剪叠加省量
优先优化高频 workflow Auto-Triage Issues 6.8 次/天 × 62% = 7.8M ET

参考资料

相关笔记