从 UK AISI Inspect 到 Claude Code、DeepSeek:为什么“Harness 工程学”正在决定 Agent 的跑分生死线?
发布日期:2026-10-06
很多人第一次体验大模型写代码,是在网页聊天框里。
你从项目里拷出几十行报错函数,往输入框里一贴,它不仅秒级指出问题所在,还能把重构好的逻辑和边界测试解释得头头是道。那一刻,所有人都会惊叹它的大脑有多聪明。
接着,大家开始在 IDE 里使用代码补全工具。光标停顿处,轻轻敲击一下 Tab 键,整段代码如流水般展开。
到这一步,几乎所有工程师都会自然而然产生一个更大的渴望:既然它这么聪明,为什么不彻底把键盘交给它?让它自己去终端(Terminal)里找文件、改代码、跑编译、修好复杂的 GitHub Issue?
然而,只要你真正尝试过在命令行里跑一个自主编程智能体(Coding Agent),就大概率经历过一场让人哭笑不得的灾难:
- 粗暴的文件覆写:明明只要改动一行配置参数,它却非要把一个 2000 行的文件从头到尾重写一遍。写到第 1800 行时 Token 截断,整个模块当场报语法错误;
- 令人窒息的复读机死循环:运行测试报了一个环境依赖错误,它没有任何新思路,而是把完全一模一样的命令连续执行了五六遍,直到把额度耗光;
- 刷屏日志引发的“瞬间失忆”:终端输出了一屏上千行的堆栈日志,一股脑塞进上下文,大模型立刻陷入注意力迷失,甚至连用户最初交代的任务目标都忘得一干二净。
面对这些啼笑皆非的翻车现场,早期很多人的第一直觉是:“这大模型还是太笨了,上下文窗口不够用,等哪天下一代模型出来了再用吧。”
但紧接着,一个耐人寻味的行业现象颠覆了大家的直觉。
从“玄学翻车”到“判若两人”:那个藏在背后的变量
在 2024 至 2025 年前后,技术圈开始陆续出现一些真正能在终端里稳定干活的工程级工具:无论是 Anthropic 官方推出的 Claude Code、OpenAI 的 Codex CLI,还是开源社区久负盛名的 Aider 与轻量脚手架 π。
很多开发者在实测后感到困惑:
为什么背后的基础大模型并没有变,但换到这些专门工具里,它突然就像换了一个人?
它不再盲目覆写整个文件,而是精准地在指定行号做局部的单块替换;测试报错后,它能从数百行日志中精准挑出核心错误行进行定向重试;即便执行了几十轮交互,逻辑依然清晰,很少陷入死循环。
难道是官方背地里偷偷给它换了一个“更高级的秘密模型”?
并没有。底层调用的还是完全公开的基座 API,算力开销也完全一致。真正拉开本质差距的,从来不是模型这颗“大脑”,而是包裹在模型外部的那套系统级运行环境——工程上称之为 Harness(执行脚手架)。
核心认知锚点:一个真正能上战场的智能体系统,从来不是单一的大模型,而是:
智能体系统 = 认知模型 (Model) + 执行脚手架 (Harness)
- 认知模型 (Model):负责意图解构、逻辑推演与代码生成(相当于顶级赛车的“大马力引擎”);
- 执行脚手架 (Harness):负责状态调度、文件局部编辑、输出截断、沙盒隔离与自愈门禁(相当于赛车的“传动变速箱、底盘调校与安全气囊”)。
在平坦笔直的短道(如简单的单轮问答、生成独立代码片段)上,单凭强劲的引擎就能跑出漂亮的成绩;但一旦进入布满急弯与深坑的实际工程赛道(数十个文件交叉依赖、多轮动态测试反馈),底盘散架的赛车哪怕马力再大,也只能冲出赛道。
行业由此得出了一个残酷却清醒的结论:脱离 Harness 去单独评价一个 Agent 模型的智商,就像脱离底盘去评价一台跑车的越野性能一样,缺乏现实工程意义。
技术演进三部曲:脚手架如何演变成一门硬核工程学?
回看整个编程智能体的技术演进脉络,行业对 Harness 的认知经历了一条由浅入深的清晰路线:
| 演进阶段 | 时间跨度 | 核心范式 | 典型做法与局限 |
|---|---|---|---|
| 第一阶段:蛮荒套壳期 | 2023 ~ 2024 初 | “聊天框套循环” | 写一个简单的 while True 循环,把终端输出无脑全量追加进 Prompt。缺乏截断保护,极易陷入死循环与上下文溢出。 |
| 第二阶段:终端实战摸索期 | 2024 ~ 2025 | “工程特化脚手架” | 以 Claude Code、Aider、Codex CLI 为代表,摸索出局部单块替换(Search & Replace)、Git 自动回滚、输出硬截断等防崩机制。 |
| 第三阶段:国家级度量衡确立 | 2024 中 ➔ 2026 | “标准 Harness 与白盒审计” | 以英国国家 AI 安全所 UK AISI Inspect 为代表,确立 Docker/microVM 沙盒隔离与 Solver Traces 轨迹审计,让跑分与安全性具备工业复现性。 |
1. 社区横评:各流派 Harness 的实战设计取舍
在脚手架实战摸索期,开源社区与商业大厂演化出了截然不同的设计哲学。除了商业闭源旗舰 Claude Code 与 Codex CLI,开源世界里除了近期因 R1 推理模型而爆火的 DeepSeek Harness,最受推崇的实际正是走向两个极致的 Pi (pi.dev) 与 OpenCode (by Anomaly):
| 维度 | Anthropic Claude Code | OpenAI Codex CLI | 开源极简主义:Pi (pi.dev) |
开源重型底座:OpenCode | DeepSeek 推理闭环 Harness |
|---|---|---|---|---|---|
| 设计哲学 | 工程师极简交互、强约束单块编辑 | 企业级长程会话、强权限控制 | 黑客极简主义、反脚手架膨胀 | 全功能产品化、开箱即用工程底座 | 强化学习环境奖励、测试驱动闭环 |
| 核心执行模式 | 本地终端受控 Bash、行号字符锚定 | 远程虚拟化沙盒、工作区持久化 | 微内核循环:仅 read/write/edit/bash |
多会话并发、显式 Plan/Build 模式切换 | 纯 Docker 沙盒无损重置、测试集执行 |
| 上下文与扩展 | 严格硬截断、防 KV Cache 污染 | 动态审批门禁(Approval Gate) | 零多余封装,靠 TS 脚本/Skills 挂载 | 原生 LSP 代码语义感知、跨 TUI/桌面/IDE | 紧密绑定 CoT 思维链、测试日志回传 |
| 最适配场景 | 开发者日常命令行快速重构 | 复杂长程企业工单全自动运维 | 极客深度定制、拒绝黑盒框架臃肿 | 团队级标准化协作、复杂大项目交付 | 复杂数学逻辑与单元测试长链自纠错 |
1.1 Anthropic Claude Code:对 Token 经济与上下文洁癖的极致打磨
Claude Code 在终端之所以显得“聪明”,首要原因在于其 Harness 对上下文空间的极端保护。
它彻底抛弃了早期将整个文件内容全量回传并重写的低效做法,强制模型通过基于精确字符匹配的 replace_file_content 进行局部单块替换。对于 grep、find 或构建输出,其 Harness 施加了严格的物理截断阈值,避免单次误操作将数十万无用 Token 灌入 KV Cache,从而彻底杜绝了模型在长对话后期注意力被稀释(Lost in the Middle)的问题。
1.2 OpenAI Codex CLI:以安全沙盒与状态持久化见长
OpenAI 在其工程化工具链中更关注状态的跨会话留存与隔离。其 Harness 强调为 Agent 运行提供隔离的文件系统视图,并在执行潜在破坏性指令(如 rm -rf、跨网络数据外发)时,在 Harness 层强制挂起等待人工签名(Approval Gate)。这种设计把大模型从“不可信的自由脚本”约束为一个“受限沙盒内的安全工作进程”。
1.3 开源极简标杆 Pi (pi.dev):黑客极简主义与“反脚手架膨胀(Anti-Harness Bloat)”
在开源领域,Pi 代表了一种完全不同于传统框架的独立哲学。
许多主流 Agent 框架动辄引入复杂的抽象层、层层嵌套的多智能体(Multi-Agent)类库与死板的固定规划模板,导致模型还没开始读代码,上下文就已经被臃肿的框架元提示词(Prompt Bloat)占满。
Pi 则走向了极致的克制:它主张“微内核化(Micro-Kernel)”。它的核心运行时极其精炼,默认只向模型提供四个原生的底层元工具:read、write、edit 和 bash。它坚决不替开发者做主观规划假设,而是把提示词、上下文流与执行策略的主权 100% 交还给开发者。开发者可以通过轻量的 TypeScript 扩展和自定义 Skills 按需组装自己的工具链。这种“轻装上阵”的设计,不仅让冷启动速度达到了毫秒级,更让基座模型的注意力能够 100% 聚焦于代码逻辑本身。
1.4 开源重型利器 OpenCode (by Anomaly):全功能产品化与多端工程生态
与 Pi 的极简哲学形成鲜明对照的,是 OpenCode。如果说 Pi 是一把锋利的手术刀,OpenCode 就是一座开箱即用的重型军火库。
OpenCode 旨在解决团队级真实开发中的工程复杂性:
- 原生 LSP(Language Server Protocol)集成:让智能体不再像普通文本模型那样盲目 grep,而是能够像高级 IDE 一样理解代码的类型定义、调用层级与符号跳转;
- 双模态工作流架构:内置显式的 Plan 模式(架构推演与步骤拆解) 与 Build 模式(单步执行与回滚),从状态机层面阻断无头苍蝇般的乱撞;
- 全平台多端覆盖:不仅支持强大的 Terminal UI(TUI),还提供了独立的桌面应用与主流 IDE 插件,支持多会话(Multi-session)并行跑任务。对于不想从零手搓脚手架、希望直接拥有生产级工程治理底座的团队来说,OpenCode 是开源领域的标杆之作。
1.5 DeepSeek Harness:专为强化学习与测试驱动而生
近期因 R1 等深度推理模型爆火的 DeepSeek Harness,其重心既不是为了做日常终端交互,也不是为了拼多端 UI,而是专为长思维链(Long CoT)强化学习打造的环境脚手架。它在隔离的 Docker 沙盒中以极快速度执行单元测试,将代码编译与测试结果(Pass / Fail / 段错误)转化为确定性的环境奖励信号回传给模型,倒逼大模型在长程推演中实现自我验证与逻辑纠错。
2. 核心命题:Agent = Model + Harness
回顾大模型应用的早期探索,很多人曾寄希望于“模型能力泛化一切”——认为只要模型上下文从 8k 扩展到 128k 乃至 1M,智能体就能自动解决一切工程问题。但工业界的真实落地彻底击碎了这种幻想。
Agent 的物理公式本质上是:智能体系统 = 认知模型 (Model) + 执行脚手架 (Harness)。
认知模型负责在高维概率空间中理解意图、规划步骤并生成假设;而脚手架则负责将这些假设安全、准确、幂等地落地到确定性的物理计算机世界中:
| 协同分工 | 认知模型 (Model) | 执行脚手架 (Harness) |
|---|---|---|
| 物理本质 | 高维概率推演与语言学表征 | 确定性状态机与系统级运行时 |
| 核心职责 | 意图对齐、分支规划、代码生成、逻辑推演 | 工具通信、状态卸载、沙盒隔离、异常重试 |
| 工作边界 | 仅输出 Token 概率分布,无外部执行能力 | 提供物理执行面,约束安全与权限边界 |
| 类比定位 | 顶级赛车的“大马力引擎” | 赛车的“传动变速箱、底盘调校与安全气囊” |
如果把模型比作赛车的“引擎”,那么 Harness 就是赛车的“底盘、变速箱与悬挂系统”。在平坦笔直的短道(如简单的单轮问答、生成独立代码片段)上,仅凭强劲引擎就能跑出漂亮的成绩;但一旦进入布满急弯与坑洼的拉力赛道(如包含数百个文件、依赖环境复杂的实际项目重构),底盘散架的赛车哪怕马力再大,也只能冲出赛道。
这就是为什么评测业界明确指出:脱离 Harness 去单独评估一个模型的 Agent 性能,是缺乏工程复现价值的。

3. 实测见真章:Databricks 数百万行代码库实测 —— 为什么“Token 单价”是最大的认知陷阱?
光有架构理论还不够,工程界最关注的核心痛点始终是:不同的 Harness 搭配不同的基座模型,在真实多语言复杂工业任务中,表现效果到底差多少?每个任务的 Token 消耗和财务账单究竟怎么算?
大数据与 AI 巨头 Databricks(由 Apache Spark 创始人 Matei Zaharia 等领衔团队)进行的一项工业级基准评测提供了极具穿透力的一手实测数据(公开技术报告《Benchmarking Coding Agents on Databricks’ Multi-Million Line Codebase》)。
Databricks 没有采用容易被“训练集泄露”污染的公开玩具数据集,而是直接采集其内部跨越 10 多种语言(Scala, Go, Rust, Java, Python, Bazel 等)、涵盖数百万行真实生产级代码的真实研发任务,交由不同模型与不同 Harness 进行端到端攻坚。

这项真实工业实测得出了三条颠覆许多人直觉的核心结论:
3.1 结论一:Harness 对单任务成本具备 2 倍以上的乘数杠杆(2x+ Cost Variance)
在控制底层模型权重与思考强度完全相同的前提下,Databricks 严密对比了不同脚手架的端到端开销:
当把同一个模型挂载在精简极简主义脚手架 Pi 与某些重型原生脚手架(如 Claude Code / Codex 原生交互层)进行横向对比时,在任务解决质量完全持平的前提下,单次任务的总开销相差超过 2 倍以上!
差异的核心根源在于:每轮交互注入的上下文膨胀速度(Context Bloat)。
- 重型脚手架倾向于在每轮交互中把大量环境快照、历史冗余日志一股脑追加给模型,形成沉重的 KV Cache 负担;
- 而 Pi 每轮交互注入给模型的上下文只有传统脚手架的 约 1/3(3x less context per turn)。它始终维持极度紧凑的工作集(Tight Working Set),不仅让模型在极短的有效注意力跨度内更快收敛,而且以更少的推理轮次直接结单,把无效 Token 开销直接砍半。
3.2 结论二:“单 Token 标价”是最大陷阱,决定成本的是“单任务成本(Price-per-Task)”
很多技术负责人在选型时习惯比对官方 API 的每百万 Token 标价,以为单价低的模型一定更省钱。
Databricks 实测揭示:Token 标价往往是实际任务成本的反向指标!
在真实多百万行代码任务中:
- 某款中型推理模型在官方标价上比顶级旗舰便宜约 1.7 倍;
- 但在实际复杂工程任务中,该中型模型完成单任务的成本反而高达 $2.09 / 任务,比顶级旗舰的 $1.94 / 任务 还要贵 8%!
- 同时,其任务解决率还落后了 6 个百分点(81% vs 87%)。
原因非常残酷:推理能力稍弱的模型在面对复杂的长程代码依赖时,会产生大量迷茫的反复试探、多次重复检索与无意义重试,实际消耗了高出 1.9 倍的 Token 数量。单价再便宜,乘以近两倍的无效 Token 浪费,最终无论在时间延迟还是账单总额上,都全面溃败。
3.3 结论三:分级路由治理 —— 25% 的低复杂度任务不需要劳驾顶级神仙
Databricks 针对数千名工程师的日常 PR 复杂度分析发现:
- 约 25% 的任务属于低复杂度操作(修改一个配置项、翻转一个灰度 Feature Flag、修正简单拼写);
- 约 60% 属于中等复杂度(添加常规业务逻辑或单文件单元测试);
- 仅有约 15% 属于深水区架构重构。
将所有日常琐碎任务不加区分地全量交给最昂贵的旗舰模型是巨大的算力浪费。最佳的工业实践是分级路由:由精简低开销的脚手架(如 Pi)搭载高性价比中轻量模型负责 25% 的常规日常操作,仅在遇到高难度深水区时,才升级调用具备长链推演的顶级基座,从而在帕累托前沿上实现成本与质量的最优解。
4. 解构工业级 Harness:四项不可逾越的工程底座
要搭建一个能够稳定支撑长程自主任务的 Harness,底层必须严格处理好四项工程挑战:
- 工具契约与 Token 经济学:单块精确局部替换,拒绝全量文件覆写;配备输出硬截断保护器。
- 状态治理与符号化卸载:上下文窗口绝非长效记忆,核心状态沉淀至 SQLite 或 Markdown。
- 确定性沙盒隔离:Docker 与 Firecracker microVM 毫秒级重置,保证环境绝对幂等无污染。
- 闭环纠错与自愈循环:宽容语法解析容错,三次以上连续相似报错主动熔断阻断死循环。
4.1 工具契约与 Token 经济学(Tool Schemas & Token Economy)
- 禁止全量文本覆写:提供文件修改能力时,严禁使用整文件覆写的接口设计。必须使用带有行号边界(
StartLine,EndLine)或精确锚点匹配(TargetContent➔ReplacementContent)的微观编辑工具。 - 保护性拦截器(Circuit Breaker):工具执行的 stdout/stderr 必须配备严格的字符数与行数保护。当输出超过阈值(如 50KB 或 800 行)时,Harness 应主动截断并转储至临时辅助索引文件,仅向模型主上下文返回前序行与截断元数据。
4.2 状态治理与主动符号卸载(State Governance & Proactive Offloading)
- 上下文不是长期存储介质:Transformer 的注意力机制对长序列中的信息具备均匀衰减特性。Harness 必须承担“主动遗忘与提炼”的职责。
- 符号化卸载(Symbolic Offloading):将任务清单、架构决策图谱与文件映射关系下沉到结构化介质(如本地 SQLite 数据库或带 WikiLinks 的结构化 Markdown 文档),使得主上下文始终维持在轻量状态(通常建议稳定在 8k~16k Token 的最佳注意区间)。
4.3 确定性沙盒与毫秒级环境重置(Deterministic Sandboxing)
- 不可信代码物理隔离:智能体自主执行 Bash 命令或运行自动化测试时,绝对不能裸奔运行在开发宿主机上。
- 从重型 Docker 走向轻量 microVM:采用基于轻量虚拟化(如 Firecracker microVM,以 E2B、Daytona 为代表)或精简 Docker 容器的机制,实现 100~300ms 内快速拉起全新隔离沙盒,保证每一次基准测试与构建任务都具备绝对幂等的初始状态。
4.4 闭环纠错与自愈循环(Closed-Loop Error Recovery)
- 杜绝脆弱的正则表达式硬解析:针对大模型偶发的尾部逗号、未闭合转义字符等格式缺陷,Harness 层应具备强类型的宽容解析(Permissive JSON Parsing)与自动修复注入机制。
- 死循环熔断机制:当检测到同一个工具连续 3 次返回相同或相似的错误堆栈时,Harness 必须主动介入并向模型发出结构化中断警告,强行阻断无效尝试。
5. 国家级度量衡:UK AISI Inspect 的架构哲学
正因为 Harness 的设计差异会导致测评结果天差地别,长期以来各大厂商公布的 Agent 基准跑分经常陷入“互不相认、无法复现”的口水战。
为此,英国国家人工智能安全研究所(UK AISI) 联合 Meridian Labs 正式推出了开源的统一大模型与智能体评测系统——Inspect(Inspect AI)。Inspect 的诞生,标志着智能体评测从随意的脚本测试,全面走向国家级、标准化的工业基础设施阶段。
| Inspect 架构分层 | 核心协议 / 接口 | 工程设计目标与职责 |
|---|---|---|
| 数据集规范 (Dataset) | Dataset / Sample 协议 |
统一加载 SWE-bench Verified、GAIA、Cybench,消除提示词泄露与歧义 |
| 求解器脚手架 (Solver) | Solver 统一执行协议 |
标准化 Agent 规划逻辑、工具注册与多轮 ReAct 调度,保证跨模型公平横评 |
| 原生沙盒层 (Sandbox) | SandboxEnvironment 接口 |
深度集成 Docker/Kubernetes/Modal,自动拉取官方镜像并在测试后瞬间销毁 |
| 多维验证器 (Scorer) | Scorer 判定套件 |
验证 Git Patch 回归测试,结合 Trajectory Quality 进行多维度质检 |
| 白盒审计系统 (Log) | Solver Traces 追踪回放 |
逐帧记录 Thinking、工具传参、环境输出与 Token/延迟开销,彻底杜绝作弊 |

5.1 原生一等公民沙盒(First-Class Sandboxing)
传统的评测工具往往依赖外部系统手动配置环境,导致测试过程充满网络不确定性与脏状态干扰。
Inspect 将沙盒视为核心一等对象。通过标准化的 SandboxEnvironment 接口,Inspect 原生支持 Docker,并可扩展至 Kubernetes、Modal 等云端弹性沙盒。
在评估 SWE-bench 任务时,Inspect 会自动为每一个 GitHub Issue 拉取对应的官方 Docker 镜像,在独立沙盒内克隆仓库、重置环境、执行 Agent 提交的 Patch,并运行官方测试集(PASS_TO_PASS / FAIL_TO_PASS)。测试完毕后瞬间销毁沙盒,确保整个评测链条具备极高的一致性。
5.2 求解器与脚手架标准化(The Solver Protocol)
Inspect 规范了智能体的交互抽象协议——Solver。
一个 Solver 封装了智能体的完整思考与决策逻辑(例如单步提示、工具注册、多步 ReAct 规划)。无论接入的是 Claude Code 风格的紧凑型求解器,还是基于多智能体协作的群聊求解器,只要实现统一的 Solver 接口,就能在完全相同的标准化测试集和沙盒条件下进行绝对公平的横向对照。
5.3 终结黑盒:全生命周期轨迹审计(Solver Traces & Trajectory Evals)
Inspect 彻底颠覆了以往只看“最终通过与否(0 或 1)”的粗暴打分模式,引入了详尽的 Solver Traces(求解轨迹回放体系):
- 白盒逐帧回放:记录智能体在每一个决策步长的思考内容(Thinking Chain)、发起的工具调用类型、传入的原始参数以及沙盒返回的真实输出;
- 异常行为透视:能够精准识别出智能体虽然碰巧输出了正确答案,但在中途产生了“死循环工具调用”、“尝试伪造测试文件”或“违规访问外网”等不可信动作;
- 资源与 Token 消耗审计:精确统计解决单个任务所消耗的上下文步长、Prompt Token、Output Token 以及沙盒执行延迟,为企业衡量 Agent 的实际 ROI(投入产出比)提供了第一手客观数据。

6. 工程启示:自研 Agent 体系的设计准则
UK AISI Inspect、Databricks 工业级实测与整个 Harness Engineering 学科的成熟,为我们设计与落地本地化、生产级 AI 智能体体系(如企业自主研发的智能化流水线与生产级 Agent 运行时)提供了至关重要的工程启示:
- 不要试图训练“全能模型”,优先打磨“高韧性 Harness”:
对于绝大多数研发团队而言,微调一个专属基础模型的成本极高且容易引入灾难性遗忘。相反,优化工具接口的契约定义、完善自动截断与重试逻辑、精简 Prompt 结构,往往能够以几十分之一的成本,换取远超模型版本迭代的稳定性收益。 - 坚持“单向数据流”与“物理安全隔离”:
坚决杜绝在裸机环境直接暴露未受控的终端执行工具。在本地通过 Docker 或轻量沙盒提供执行边界,在外部通信层接入标准化的 Model Context Protocol (MCP) 与瞬态加密通道,才能确保高自主度 Agent 不会演化为系统安全灾难。 - 从静态结果验收迈向轨迹可解释性:
在内部研发与 CI/CD 流水线中,引入类似 Inspect 的白盒轨迹监控。评估一个 Agent 的优劣,不仅要看它今天有没有跑通测试,更要看它的决策路径是否简洁、工具使用是否符合正交原则、在遇到意外报错时是否展现出了确定性的自愈与降级能力。
参考来源与权威信源
- 官方文档:UK AISI: Inspect AI Official Framework
- 开源仓库:GitHub - UKGovernmentBEIS/inspect_ai
- 评测扩展套件:GitHub - UKGovernmentBEIS/inspect_evals (SWE-bench & GAIA)
- 工业代码库基准:Databricks: Benchmarking Coding Agents on Multi-Million Line Codebase
- 权威软件工程基准:SWE-bench: Evaluating Large Language Models on Real-World Software Issues
- 终端评测标准:Terminal-Bench 4.0

浙公网安备 33010602011771号