论文链接:arxiv.org/abs/2608.24804 代码仓库:github.com/ServiceNow/StarHarness 发表时间:2026年8月 机构:ServiceNow(企业主体)+ Mila + Université de Montréal(高校,Rajeswar 兼职学术)——企业主导的产学研合作 领域标签:cs.AI / LLM Agent 基础设施 / 企业自动化


一、论文背景

1.1 企业环境为什么是 Agent 的"深水区"

现在的 LLM Agent 演示大多跑在"友好环境"里:工具接口干净、任务一步可查、失败立即反馈。但企业环境完全不同——IT 运维要对着 Kubernetes 遥测数据做根因分析,ITSM 要对 ServiceNow 后端做有状态的工单变更,财务自动化要在 47 个模拟 SaaS 应用间穿行并满足精确断言。这些环境有三个共性难点:

  • 有状态后端:今天的操作改变明天的世界,步骤间有跨步依赖(改了优先级必须联动改影响度);
  • 巨大工具面:一个 MCP 后端暴露上百个工具,schema 里没写的领域约定(如"必须先分诊再变更")模型无从得知;
  • 最终态检查:不是"答对没有",而是"数据库的最终状态是否满足 SQL 验证器"——错一步前面全白费。

1.2 Harness:企业落地中被忽视的杠杆

Harness(执行线束) 是包裹模型的全部可执行脚手架:系统提示与任务框架、工具定义与 schema、参数预处理、skills、MCP provider、子 agent 结构、上下文管理、验证与结束逻辑。此前的研究(Rombaut 2026、Meng et al. 2026)已确立:harness 设计可以在不改模型权重的情况下改变 Agent 行为与任务成功率。

但现实中的 harness 是怎么来的?工程师手工搭一套默认配置,然后靠人肉调试碰运气。模型与环境之间的摩擦——schema 不匹配、隐含约定未暴露、重复推理未被固化——每一项都在损耗成功率。这篇论文问的就是:能不能让这套脚手架自动进化来消除摩擦?

1.3 自动进化的两个陷阱:过拟合与评估污染

让 AI 自动改 harness,最大的风险不是"改不好"而是"改得太好"——过拟合到进化用的那几个任务,或者更隐蔽的,把任务 ID、验证器内容、标准答案硬编码进去。此前的工作(如 Meta-Harness)在同一套 89 任务上既搜索又报告最终成绩,被后续研究(Wang et al. 2026)批评为无法区分"搜索性能"与"泛化能力"。StarHarness 的核心设计几乎全部围绕这两个陷阱展开。

二、论文定位和关联工作

2.1 研究谱系一:提示与 harness 优化

工作核心思想与本文的关键区别
GEPA / DSPy反思式提示进化、声明式 LM 程序编译只优化文本提示;StarHarness 搜索含工具接口/MCP/子agent/执行策略在内的可执行脚手架,比 GEPA(Pi) 再高 +13.8~+22.3pp
AFlowMCTS 自动生成工作流搜的是抽象工作流图,不是可直接部署的 harness 代码
Meta-Harness(Lee et al. 2026)端到端优化模型 harness搜索与最终报告用同一 benchmark,无法分离泛化;StarHarness 用三层任务分离 + proposer 隐藏选择集
SIA(Hebbar et al. 2026)harness 与模型权重共进化方向更激进;StarHarness 刻意冻结权重,把变量隔离为"纯环境适配",且改动可作为普通代码被审查与回滚

2.2 研究谱系二:企业 Agent 基准

WorkArena 走浏览器路线、Terminal-Bench 2.0 走命令行路线,本文选的三个基准互补地覆盖企业场景的三个切面:ITBench SRE(40 个 K8s 根因分析,检查结构化诊断输出)、EnterpriseOps-Gym ITSM(103 个工单任务,SQL 验证器检查数据库终态)、AutomationBench Finance(100 个财务工作流,程序断言判分且 guardrail 违规直接零分)。三个基准共同要求:操作领域工具、维持持久状态、满足工作流目标——正是"模型-环境摩擦"最重的地形。

2.3 本文定位结论

StarHarness 填补的是一个窄而实的空位:冻结模型 + 可执行 harness 全表面搜索 + 严格防泄漏评估协议三者的组合。它不是最强的通用优化器,而是第一个把"harness 进化的泛化性"当作一等公民来设计实验的企业级工作。

三、问题定义

3.1 从具体场景到抽象问题

具体问题:“怎么让我的 Agent 在 ServiceNow 上跑得更好?"——工程师式的问法。作者把它抽象为一个受约束的优化问题:

模型权重冻结时,在允许的 harness 空间 H 中,找到使 holdout 任务集期望得分最大的 harness h*,且搜索过程不能接触 holdout 的任何结果。

3.2 形式化与三个关键约束

h* = argmax J(h; D_holdout),其中 J 是均值任务得分。但这个 argmax 有三条现实约束:

  1. 信息约束:搜索只能看 proposer 可见的搜索集轨迹;holdout 永不参与提案或接受;
  2. 预算约束:每个候选 patch 都要跑真实环境评估,昂贵——所以进化池必须紧凑且有代表性;
  3. 护栏约束:禁止按任务 ID 分支、禁止把验证器/断言内容写进提示、禁止访问真值表——目标是可复用的环境行为而非单题答案。

3.3 抽象的精妙之处

把"harness 进化"从"让 agent 更聪明"重新定义为”消除模型-环境摩擦"。这个视角一转,搜索空间里的每个改动都有了清晰的分类学位置(接口修复/环境约定/操作知识——见第五节),评估也自然分成"搜索集上好不好"与"holdout 上泛不泛"两个独立问题。问题定义对了,实验设计才有骨架。

四、问题解法

4.1 系统架构:优化器 harness 进化被优化的 harness

一个容易混淆的顶层设计:系统里有两层 harness。StarHarness 优化器本身是一个构建于 Oh My Pi(pi harness 变体)之上的编码 harness,它托管 proposer 并执行"编辑-验证-评估"循环;被优化对象是独立的 Stirrup harness(Artificial Analysis 的轻量 agent 框架)。类比:机器人教练在健身房里训练运动员——教练(优化器)和运动员(Stirrup)是两套独立系统,教练能读运动员的训练录像(搜索集轨迹)但改不了比赛成绩册(holdout)。

进化循环的每一步遵循 autoresearch 模式(Karpathy 2026):测量基线 → 提一次有界干预 → 评估 → 只保留改进 → 从新前沿继续。一个持久 memory ledger 把 patch、会话、评估工件链起来,携带前沿得分、逐任务结果、已接受假设与被丢弃尝试进入后续迭代。

4.2 三层任务分离 + 分层采样(防过拟合的核心)

层作用proposer 可见性
搜索集(evolution pool 的子集)给 proposer 读轨迹与结果、诊断反复失败可见
选择集(隐藏)候选 patch 的唯一评分场,接受/拒绝由此决定不可见(内容/轨迹/验证器反馈全隐藏)
Holdout 集最终泛化评估,从不影响搜索不可见

进化池的采样不是随机抽:先对全量任务跑基线,按三个描述子分层——基线失败模式(wrong_tool / context_loss / missing_evidence / premature_conclusion)、基线任务得分、验证器通过率。搜索集与选择集在三个分布上做匹配切分。类比:编教材不能只选学生已经会做的题,要按错题类型分层抽样,考试卷(选择集)还要与练习卷难度对齐但题目保密。

4.3 两段式门控与两种搜索策略

廉价门控在前,昂贵评估在后:候选 patch 先过 scope/泄漏/导入检查 + proposer 自选的单任务 test-flip(如果连一个任务的翻转都做不到,直接记录拒绝、跳过整个选择集评估);通过者在隐藏选择集上评估,只有严格改进选择集均值才被接受(验证器通过率仅在平时作 tie-breaker)。被拒/无效/崩溃的候选全部回滚到前一前沿。

两种搜索策略:

  • 爬山:单前沿贪心,每轮一个 patch,严格改进才保留——利用模式;
  • 树搜索:多候选节点(父指针/累积 patch/验证状态/选择得分),proposer 可 explore 失败模式、draft 补丁、debug 失败候选、merge 兼容节点、improve 现有节点——探索模式,保留竞争假设而非首接受即定终身。

论文诚实地说明:两者在 EnterpriseOps-Gym 上顺序执行(树搜索探路 8 个 patch + 爬山收尾 4 个 patch),是互补关系的描述而非因果对照。

4.4 防作弊护栏

每个候选是相对当前前沿的 git diff,scope 限定在可编辑目录;四类禁改:按任务 ID 分支/硬编码答案、把验证器或断言内容放进提示、访问真值表或隐藏状态、基准特定的答案映射。进化产物是普通代码 diff——可审查、可测试、可回滚,这是"冻结权重路线"相对"改权重路线"的工程优势。

五、评估指标与实验证据

5.1 主结果:三基准全胜 + 成本齐降

基准任务默认 StirrupStarHarness提升GEPA(Pi) 对比每任务成本
ITBench SRE40 个 K8s 根因分析40.0%75.0%+35.0pp+13.8pp$3.26→$2.70(-17%)
EnterpriseOps-Gym ITSM103 个 ITSM 工单23.3%43.7%+20.4pp+22.3pp$1.23→$0.58(-53%)
AutomationBench Finance100 个财务工作流57.1%83.2%+26.1pp+17.6pp$0.14→$0.10(-29%)

全部 21 个被接受 patch(4/12/5)换来 20-35pp 提升,同时推理成本不升反降——这与"加更多工具调用硬堆分数"的路径划清了界限。

5.2 泛化性的两块试金石

冻结跨模型迁移(同一份进化产物,零重进化,换模型直接用):

基准模型基线StarHarness提升
ITBenchQwen3.5-27B25.6%70.0%+44.4pp
ITBenchGPT-5.4-mini33.1%79.4%+46.3pp
AutomationBenchGPT-5.4-mini29.6%70.0%+40.4pp
AutomationBenchQwen3.6-27B48.2%75.5%+27.3pp

12 个迁移组(GPT 与 Qwen 两族)全部正增益,且弱模型收益更大——Qwen3.5-27B 在 ITBench 上 +44.4pp 超过了进化所用 GPT-5.4 本身的 +35.0pp。进化学到的是环境适配而非模型偏方。

Holdout 泛化(进化时从未见过的任务,GPT-5.4):

基准进化集增益Holdout 增益
ITBench+45.0pp+31.7pp
EnterpriseOps-Gym+22.0pp+15.1pp
AutomationBench+23.0pp+29.3pp

holdout 增益普遍达到进化集增益的 70%-127%(AutomationBench 甚至反超)——搜索集上的改进真实外溢,而非过拟合残影。

5.3 轨迹级机制证据

指标ITBenchEnterpriseOps-GymAutomationBench
每任务轮数25.2→22.118.12→9.87(减半)16.35→11.98
工具调用49.8→46.729.53→16.83—
诊断假阳性0.79→0.33——
验证器通过率—34.5%→72.8%—
guardrail 违规——33 次→4 次

这些数字把"分数涨了"翻译成"行为变了":更少的轮次、更准的工具选择、更安全的执行——直接对应第五节的三类修复。

5.4 实验设计为何能支撑主张

主张是"harness 进化学到的是可泛化的环境适配",支撑链条:holdout 分离证明不是过拟合到搜索任务;隐藏选择集保证接受决策本身无泄漏;冻结跨模型迁移证明不是过拟合到 GPT-5.4 的怪癖;护栏 + 代码 diff 审计排除硬编码作弊;轨迹统计把机制从"可能的故事"落到可测量的行为变化。论文同时如实标注局限:GEPA 对比是描述性的(系统差异多,无法归因单一组件)、无法从配对记录隔离单个 patch 的因果贡献。

六、效果优势的根源解释

核心因果链:三类修复 → 模型-环境摩擦减少 → 行为更准、更短、更安全 → 分数与成本双赢。

对比对象一:默认 Stirrup(以及通用 harness),它为什么曾经够用:默认配置面向"通用任务"设计,在友好环境里工具 schema 与模型预期大体对齐。根本局限:企业后端有大量"schema 没写的知识"——Docker 版 MCP 服务器会因显式 null 拒绝请求、ServiceNow 的字段间有联动约定、沙盒的"今天"与模型假设的"今天"不同。默认 harness 下模型只能用开放式推理反复试错去重新发现这些约定,每次发现都消耗轮次与预算,且发现错了就撞 guardrail。

StarHarness 的根本性改变——21 个 patch 的三类分解:

  1. 接口修复:EnterpriseOps-Gym 上收窄并丰富 MCP schema、剥离 null/空值/占位参数后再调用——直接消灭无效调用(Codex 的参照恰好佐证:它靠 schema 归一化拿到 41.7%,StarHarness 学到的是互补修法,43.7%)。信息流变化:模型的每次工具调用从"可能被拒"变为"语义合规",工具选择准确率上升;
  2. 环境约定显式化:执行契约(先分诊再变更)、优先级与影响度联动、关系字段必须保留、日期锚定沙盒时钟——把隐式规则写进 harness。约束变化:工作流的完整性不再依赖模型悟性,而由脚手架保证,轮数从 18.12 减半到 9.87、验证器通过率翻倍;
  3. 压缩搜索的操作知识:ITBench 的"取证总览"先从证据排一遍候选上游因、AutomationBench 把算术交给确定性计算器、结构化行操作替代脆弱的原始表格编辑——把易错的开放式推理替换为确定性操作,guardrail 违规 33→4 次。

为什么跨模型迁移有效:三类修复全部位于环境侧(接口/约定/工具),不在模型侧。换模型只是换了个"穿制服的人",制服(harness)对环境的适配不变——所以 Qwen 与 GPT 双族受益,弱模型受益更大(它们的"重新发现约定"能力更弱,脚手架替代得越多)。这与"轨迹 FSM 拓扑由 harness 而非模型决定"的同期发现互相印证:修 harness 是修一次、全家受益的杠杆点。

为什么成本反而下降:三条机制同向作用——无效调用减少(不用重试)、约定显式化(不用试错)、确定性工具替代长推理(token 减少)。EnterpriseOps-Gym 成本降 53% 与轮数减半精确同步。真正的环境适配是"少做无用功",而非"多做功"——这也解释了为何改进能外溢到 holdout:省掉的摩擦在新任务上同样存在。

反事实推理:若去掉隐藏选择集(在搜索集上接受 patch),接受决策将追逐搜索任务特异的信号,holdout 增益大概率显著缩水——这正是 Meta-Harness 评估被诟病的模式。若去掉 test-flip 门控,每个弱候选都要烧一整轮选择集评估,预算消耗大增。论文未报告这两个消融,是诚实的留白。

七、必要知识反推

7.1 领域知识层

  • 企业系统的运作细节:Kubernetes 遥测(告警/事件/链路/指标/拓扑)、ITSM 工单生命周期、财务 AP/AR 流程——不懂任务域就无法判断进化是否真的在"修对的摩擦";
  • MCP 协议与 schema 语义:服务器对 null/空值的严格拒绝行为是接口修复类 patch 的直接来源;
  • Agent harness 的组成:提示/工具/skills/子agent/执行循环各是什么、在代码里怎么改——这是搜索空间的地图。

7.2 方法论知识层

  • 提示优化与进化搜索谱系:GEPA/DSPy/AFlow 的机制与评估方式——定位差异化贡献的前提;
  • harness 进化评估的方法论批评(Wang et al. 2026):知道"搜索集=报告集"的缺陷,才理解三层分离的必要性;
  • 爬山与树搜索的取舍:探索-利用权衡的经典框架,直接复用为两段式策略;
  • autoresearch 模式(Karpathy 2026):有界干预-测量-保留改进的循环骨架。

7.3 工程知识层

  • 基准评估基础设施:SQL 验证器、程序断言、guardrail 计分、Artificial Analysis 的评估约定——复现与对比的地基;
  • git diff 作用域控制与静态检查:护栏的实现手段;
  • 成本核算:按公开 API 价格估算每任务推理成本。

7.4 知识融合的关键节点

(1)把"评估方法论批评"转化为设计约束:读到"harness 进化需要更严格的评估"的社区呼声后,不是加一句免责声明,而是把搜索/选择/holdout 三层分离做成系统的第一性设计——批评变成架构。(2)把失败分析(诊断学)变成采样策略(统计学):基线失败模式既是分层采样的依据,也是 proposer 的修复靶点,同一份描述子服务两个环节。(3)把"冻结权重"从限制变成卖点:改动成为可审查、可回滚、跨模型可迁移的普通代码——工程保守性与科学可分离性在此合流。(4)企业场景直觉与研究纪律的融合:知道"日期要锚定沙盒时钟"来自运维一线,但把它作为假设交给搜索去验证与接受,而非直接手写进提示。

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

灵感一:优化"模型与环境的接口",收益可以超过优化模型本身,且一次优化多模型受益。 论文证据:权重冻结、20-35pp 提升;同一份进化产物让 Qwen3.5-27B 提升 +44.4pp,超过进化宿主模型自身的 +35.0pp。 推广场景:数据库(优化查询接口抽象层比换更快的引擎便宜)、嵌入式开发(HAL 硬件抽象层的价值)、人机交互(改 UI 比培训用户有效)、API 设计(好的 SDK 让普通开发者写出可靠代码)、教育(好的课程脚手架让不同基础的学生都进步)——接口是杠杆最长的支点。

灵感二:自动优化系统必须把"防作弊"做成一等设计,否则分数提升毫无意义。 论文证据:四类禁改 + scope 校验 + 隐藏选择集 + holdout 三层分离,全部为对抗"硬编码答案/过拟合搜索集"而设。 推广场景:任何 AI 自我改进系统(self-improvement 的验证难题)、自动化机器学习(AutoML 的评估泄漏)、学生自适应考试系统、代码生成基准、甚至代理人考核制度设计——当被优化对象能影响评分渠道时,评分渠道必须与优化渠道隔离。

灵感三:按失败模式分层采样,是昂贵评估下的最优实验设计。 论文证据:进化池按 wrong_tool/context_loss 等四类失败模式 + 得分 + 验证器通过率分层,一半任务量覆盖全部失败类型。 推广场景:软件测试用例优先级排序、临床试验的分层随机化、用户研究抽样、故障复现环境的最小集构造、模型评测集构建——多样性按"失败原因"度量,而非按表面相似度。

灵感四:廉价门控前置,昂贵评估殿后。 论文证据:单任务 test-flip 失败即跳过整个选择集评估,只有严格改进才被接受并提交前沿。 推广场景:CI 的快速 lint→慢测试漏斗、招聘的简历筛选→面试漏斗、风控的规则引擎→人工复核漏斗、科研的预实验→正式实验——任何评估昂贵、候选廉价的场景都适用漏斗架构。

灵感五:把易错的开放式推理替换为确定性工具,是安全性与成本的双赢。 论文证据:日期锚定沙盒时钟 + 算术交给计算器后,guardrail 违规 33→4 次、零分任务 24→6 个。 推广场景:金融计算(电子表格公式替代心算)、法律文书(模板变量替代自由起草)、医药处方(剂量计算器)、航空检查单、任何"模型/人擅长判断、不擅长精确计算"的分工场景——让智能体做判断,让确定性代码做计算。

灵感六:改进是否真实,看"没见过的任务"和"没见过的模型"。 论文证据:holdout 增益达进化集增益的 70%-127%;12 个跨模型迁移组全部为正。 推广场景:教育(换一套题还能考好才是学会)、组织变革(换一批人流程依然有效才是制度而非人治)、提示工程(换个模型提示还灵才是本质规律)、超参调优(看测试集而非验证集)——泛化性永远要在"优化过程接触不到的维度"上检验。

附录:一句话总结

不动模型一根权重,只让包裹模型的"制服"自动量体裁衣——21 个代码补丁换来三个企业基准 20-35 分的提升、成本反而下降三成,而且这套裁好的制服谁穿都合身:换任务有效、换模型也有效。进化学到的从来不是怎么考高分,而是怎么跟这个环境好好相处。