• 论文链接:StateM: Reaching 95.3% Raw Accuracy, or a $15 Frontier Run, on Terminal-Bench 2.1 via Harness Scaling
  • 代码仓库:论文声明核心代码与运行时用例已开源(github,正文标注)
  • 发表时间:2026年8月15日(arXiv:2608.15089v1)
  • 机构:作者署名 “Somewhere on the Earth”(Ziheng Qin / Yaxin Lu / Zhangyang “Atlas” Wang / Kai Wang)——个人时间完成的独立研究,总预算 200 美元内实用不足 125 美元,作者刻意匿名以强调去机构化属性
  • 领域标签:Agent 工程、Harness Scaling、长时程执行、Terminal-Bench

一、论文背景

**Harness 是什么?**在 LLM Agent 生态里,harness 指模型外层的整个执行系统——规划提示、TODO 清单、规则文件、记忆文件、宿主侧钩子、工具路由。同一个模型挂在不同 harness 上,长时程任务表现可以差出数十分。2026 年以来,“模型不是瓶颈、执行系统才是"的证据不断累积:DeepSeek 开源的 Harness 数天冲上 12 万星、Salesforce 的 DarwinX 用 harness 种群进化拿下四基准平均 +17 分、美团的 AutoDesign 用元 harness 递归自改进 harness。Harness scaling 由此成为一个正式的研究议题:不改模型权重,只改运行时,能榨出多少"已完成度”?

**长时程 Agent 为什么会失败?**论文开篇给出一个精确刻画:底层模型明明能解每一步,整趟运行仍然失败——agent 偏离计划、丢失可变任务状态、跳过必要检查、重复无效动作、在交付物未验证完成前就停手。作者的判断是,这些失败大多不是模型能力问题,而是 harness 的状态维护、执行约束、进度验证与错误恢复四项职能失守。现有系统呈两极:LangGraph 式状态机/图运行时提供强控制但把 agent 拆成节点局部的模型调用、开发者拥有控制工件;Codex/Claude Code 式通用 CLI agent 保留宽泛自主性但计划与清单只是"软"的自然语言工件,钩子挂在工具事件而非语义转换上。缺的是一个既保留 agent 统一推理循环、又提供可强制执行的转换语义、且控制工件对 agent 和用户双向可见的中间形态——这正是 StateM 的定位(论文图 1 的设计象限右上角)。

二、论文定位和关联工作

论文把自身置于四条研究线的交汇处,并明确声明新颖性不在任何单一组件,而在其组合:

研究谱系代表工作核心思想与 StateM 的关键区别
状态化编排StateFlow、LangGraph显式状态与转换提升任务接地与失败恢复控制工件为开发者所有、模型被拆进节点;StateM 保持通用 agent 为唯一执行者
CLI agent 软控制Codex、Claude Code计划/清单/规则/钩子软约束无权威执行状态,完成靠 agent 自证;StateM 把这些碎片组织进共享 runbook
纵向可靠性AgingBench冻结权重的 agent 随记忆维护老化(压缩/干扰/修订/维护四类)跨会话诊断;StateM 处理单次运行内的程序执行,两者互补
Harness 自适应Agentic Harness Engineering、Life-Harness、Self-Harness、Better Harnesses Smaller Models从轨迹反馈进化工具/提示/记忆优化对象是提示或组件;StateM 的优化对象是显式状态机 runbook 本身(转换检查、恢复路径、状态局部上下文都可被超 agent 循环修改)

定位结论:StateM 与 harness 进化方法最接近之处在超 agent 优化循环,但核心贡献是该循环所修改的执行基底——一个 agent 原生、联合可编辑、同时充当运行时控制面/审计面/改进搜索空间三重角色的 runbook 表示。

三、问题定义

具体场景:长时程 CLI agent 任务(如 Terminal-Bench 的 89 个终端挑战)中,模型能解局部步骤但整趟失败。

核心洞察——两类操作压力与三类执行缺口:(1) 控制信号稀释——紧凑的计划及其完成标准被越来越长的命令/观察/修复 trace 包围,计划 token 的注意力权重被稀释;(2) 可变状态歧义——已完成目标、待办依赖、失败尝试、合法下一步必须从 append-only 历史中反推,而非读取权威的当前状态。由此产生三类缺口:认知缺口(决策点上缺知识/方法)、程序记忆缺口(跨运行不保留/不激活教训——“程序性遗忘”)、程序遵从缺口(正确程序已激活但未完整执行)。

形式化:runbook 定义为有向状态机 ℬ = (S, s₀, S_T, E, Φ)——状态集、初态、终态集、边集与转换条件。求:在不改变模型权重、不接触模型内部的前提下,通过改进 ℬ 及其执行机制,最大化任务完成率,且满足三条递增强度的实证检验:同模型冻结提升、跨代冻结迁移、跨供应商廉价适配。

抽象的精妙之处:把"agent 可靠性"从模型属性重新定义为执行系统的属性,从而使"一个模型一代的差距"可以用运行时工程在 38 美元内补齐——问题从"如何训练更强模型"变为"如何把模型已有能力转化为完成的、可靠的工作"。

四、问题解法

StateM 是一个 YAML 配置的状态机运行时 + CLI 界面。按"运行时与控制档案分离—状态双重边界—转换验证—失败驱动优化"四层展开:

1. 运行时与控制档案分离。运行时提供状态持久化、转换验证、钩子执行、历史与恢复的通用机制;控制档案(runbook)指定特定工作类的阶段、指令、检查与修复策略。这个分离让 Terminal-Bench 结果可以被正确解读:测的是"运行时+进化过的档案"的组合,而非状态机抽象本身。

2. 状态 = 上下文边界 + 契约边界。进入状态时,in_hook 刷新当前阶段、合法出边、状态局部指令与持久进度——建立新的"控制锚点",对抗控制信号稀释;离开状态须通过 before_transfer 块中配置的退出条件——out_hook 持久化进度/更新回执。检查按证据强度分层:命令/谓词检查(宿主可执行、可独立复现)> 人工检查 > 清单/消息检查(结构化自证)> llm_review 检查(语义判断但非确定性验证)。这个分层的要义是:agent 的完成声明不构成独立验证——回执与声明被显式呈现为可审计但非证明。

3. Agent 原生操作。agent 通过与做任务相同的 CLI 动作空间操作控制层:查看当前状态(StateM state)、请求转换(goto)、查看失败条件、审查执行历史、恢复中断、在许可范围内更新 runbook 工件。用户可检查、编辑、版本化、审计同一 runbook——共享所有权是与开发者拥有图运行时的本质区别。

4. 失败驱动 harness 优化。运行后把失败分类为缺上下文/非法转换/弱检查/过早交接/无效恢复等控制层缺陷;由工作 agent 或独立超 agent 提议对状态边界、提示、钩子、检查、恢复规则与实践激活条件的修改;候选修改经评审、回归测试后并入新版本 runbook。**“黄金法则”**约束档案开发:偏好最小可复用控制、从可见任务语义而非任务身份路由、开发反馈与冻结评估分离;禁止使用隐藏测试/验证器实现/公开解法/任务哈希——防止答案编码式作弊。

一个典型编码 runbook 的状态流:start(加载持久上下文)→ plan → execute(in_hook/out_hook/before_transfer 四段结构)→ review → handoff,附 session_refresh 节点处理上下文压缩后的状态恢复。

五、评估指标与实验证据

指标体系:主指标为试次级成功率(89 任务×5 试次=445 试次);辅助指标为五试次任务覆盖(每题至少成功一次的任务数)、API 实际支出;诚实性指标为公开提交的原始分与 adjudication 敏感度(论文主动披露 4 条被识别为 reward hacking 的轨迹,置零后 93.26%)。

主结果(Terminal-Bench 2.1):

系统档案状态得分说明
GPT-5.5 xhigh + Codex参考分83.1%官方参考
GPT-5.5 xhigh + StateM开发档案92.1%88/89 覆盖
GPT-5.6 Sol xhigh + Codex参考分84.9%官方参考
GPT-5.6 Sol xhigh + StateM冻结GPT 档案95.28% raw424/445,公开提交 PR #142
GPT-5.6 Luna + Codex参考分76.7%—
GPT-5.6 Luna + StateM冻结档案85.4%超过 Sol 参考分
DeepSeek-V4-Flash 裸—82.7%基线
DeepSeek-V4-Flash + StateM冻结档案82.0%负迁移:直接冻结反降 0.7
DeepSeek-V4-Flash + StateM<38 美元适配88.09%392/445,标准超时
DeepSeek-V4-Flash + StateM适配+该任务延时88.76%描述性口径

成本边界:DeepSeek 最终评测证据约 15 美元(对照 GPT-5.6 Sol max 参考 574.68 美元,38.9 倍);含适配全部支出 52.22 美元(11 倍)。

任务侧泛化(BusinessBench,477 实例 7 族):冻结一次 held-out 评测 macro +0.55 / micro +1.34——总体增益小;但机制匹配的两族(Budget Approval +12.21、Machine Operating +9.21)合计 +10.04 分;负迁移族 RefactorBench -2.78(初期控制挂在错误边界:过度强调向后兼容而未闭合显式迁移义务)、WooCommerce -3.70。

实验设计为何有证明力:(1) 冻结迁移设计(GPT-5.5 开发的档案不改一字用于 GPT-5.6)排除了"对目标模型调参"的解释,证明可迁移的是控制原则而非拟合;(2) DeepSeek 的"冻结失败→适配成功"两段式,精确定位了迁移边界在哪(原则可迁移、具体实践需廉价适配);(3) BusinessBench 的正负迁移并存,证明增益来自"控制边界与执行结构的匹配"而非控制总量;(4) 主动披露 reward hacking 轨迹并给出置零后的分数,是罕见的诚实性实践。

六、效果优势的根源解释

对比对象:Codex/Claude Code 式软控制(计划/清单在上下文中自然语言存在)与 LangGraph 式强控制(开发者拥有的图)。前者为何曾经有效:短任务中计划仍处注意力近端、状态可从简短历史反推。后者的根本局限:把 agent 拆解为节点局部的窄调用,碎片化推理并引入路由错误(论文引用 Dennis et al. 2026 的证据:强模型拿到完整程序上下文反而优于重编排版本)。

StateM 的机制因果链:状态进入钩子(刷新控制锚点)→ 直接对抗控制信号稀释 → 计划与完成标准始终处于注意力近端 → 阶段内执行不偏航;状态外置的权威当前状态 → 消除 append-only 历史反推的歧义 → 循环/分支任务中"哪个版本是现行值"不再模糊 → 早期关键决策不因状态混淆而失效;before_transfer 受检转换 → 把"agent 自称完成"升级为"运行时可验证证据"(命令/谓词检查可独立复现)→ 提前终止与跳步被结构性阻断;版本化实践 → 跨运行的教训以可激活的控制规则形式沉淀 → 程序记忆缺口被外部记忆填补。

反事实证据:去掉适配(DeepSeek 冻结档案)→ 82.0%,比裸基线还低——证明不是"任何 runbook 都有效",控制挂错边界反而添乱;BusinessBench 负迁移族同样证明这点。22 小时连续开发运行(含上下文压缩与 stop-hook 续行)中 StateM 控制状态保持完整,观察到的减速来自终端输出堆积而非控制态丢失——支撑"程序状态外置于模型上下文之外"的必要性。

不能从根源解释的部分:论文坦诚 95.28% 是 pre-adjudication 公开提交分(PR 未合并),9 条被标记轨迹全部置零则为 93.26%;且五试次覆盖不等于单次运行可靠性。

七、必要知识反推

领域知识层:长时程 agent 的失败形态学(计划偏离/状态丢失/跳步/提前终止)——不掌握就无法把失败分类为控制层缺陷;Terminal-Bench 的评测协议与 adjudication 流程——不掌握无法设计"原始分 vs 置零分"的诚实报告;append-only 上下文与可写状态在信息可得性上的差异——这是"外置状态"动机的第一性依据。

方法论知识层:有限状态机的形式语义(ℬ = (S, s₀, S_T, E, Φ))与转换系统验证——runbook 表示的数学基础;harness 进化研究谱系(Self-Harness、Life-Harness 等)——避免重复声明已知的"harness 可优化"结论,把新颖性精确锚定在执行基底表示上;因果推断中的冻结/适配两段式设计——迁移边界的实证定位方法。

工程知识层:Codex agent 的 CLI 动作空间与钩子机制——agent 原生操作面的实现前提;YAML 工件的版本化与审计——用户共享控制层的载体;成本核算纪律(开发/适配/评测分离记账)——15 美元结论的可信度来源。

知识融合的关键节点:把数据库式的"转换事务语义"(进入/退出条件、提交/回滚)嫁接到 agent 的自然语言执行流上,同时保持 agent 的统一推理循环——这个融合点要求同时理解状态机验证与 LLM agent 行为学,缺任何一侧都只能做出 LangGraph 复制品或另一个软清单。

八、论文中可以提取的通用性灵感

1. 能力轴分离:把"系统完成度"从"模型能力"中拆出来度量与优化。论文证据:同模型 +9 分、冻结跨代 +10.4 分、38 美元跨供应商适配 +5.4 分。推广场景:任何"组件强但系统弱"的领域——RAG 管线的检索器/重排器分离优化、自动驾驶的感知/规划解耦、临床决策的支持/执行分离。

2. 声明与证据分层:自证不构成验证。论文把检查分为命令/谓词(可独立复现)、人工、结构化自证、语义评审四档,并明确"回执的出现不等于证明"。推广场景:AI 生成代码的"测试通过"声明须区分自写测试 vs 既有测试;合规科技中的自我评估 vs 第三方审计;科研复现中的作者声明 vs 独立复跑。

3. 程序记忆外置:教训应转化为可激活的控制规则而非自由文本。论文的"经验必须过滤后才能成为记忆,harness scaling 是抽象问题不是规则堆积"。推广场景:事故后复盘制度(把教训写成检查单而非报告);个人知识管理(方法论条目化+激活条件 vs 笔记堆积);组织流程管理(SOP 版本化+准入评审)。

4. 迁移边界分级:原则可跨域、实践须本地化。冻结档案在 GPT 代际间无缝迁移、在 DeepSeek 上需要 38 美元适配、在异构任务族上正负迁移并存。推广场景:管理制度的跨子公司移植(价值观可迁移、流程须本地化);机器学习管道的跨数据集迁移(表征可迁移、头须重训);教学法的跨课堂迁移。

5. 负结果的结构性利用:控制挂错边界比没有控制更糟。RefactorBench -2.78 与 DeepSeek 冻结 82.0% 两个负迁移被用来精确定位"控制必须匹配执行边界"的规律。推广场景:任何引入守门/审批机制的系统设计——守门位置错误不仅无益反而拖累吞吐;医疗分诊层级设计;代码评审的门禁位置选择。