← 返回 2026-04-01

Meta-Harness:模型Harness的端到端优化 Meta-Harness: End-to-End Optimization of Model Harnesses

Yoonho Lee, Roshen Nair, Qizheng Zhang, Kangwook Lee, Omar Khattab, Chelsea Finn 📅 2026-03-30 👍 22 2026-07-13 08:36
LLM系统优化 代理系统 代码搜索 检索增强生成 自动机器学习

提出基于文件系统的harness优化框架,自动搜索最优LLM系统配置

前置知识

LLM Harness

Harness是围绕大型语言模型的代码层,决定了模型在每个步骤看到什么上下文信息,包括存储、检索和展示给模型的内容。它不仅仅是一个简单的提示词模板,而是一个完整的状态程序,可以管理记忆、检索策略、工具调用和提示词构造等复杂逻辑。

本文的核心就是优化harness代码,理解harness的作用对于理解论文的问题定义和方法至关重要。

文本优化方法

文本优化方法是一类迭代改进文本或代码工件的技术,使用来自先前尝试的反馈。代表性的方法包括TextGrad、OPRO、GEPA、AlphaEvolve等,它们通常基于损失梯度、进化算法或反思反馈来优化提示词或代码片段。

本文将Meta-Harness与这些方法进行对比,展示其在更大规模问题设置中的优势。

Pareto前沿

Pareto前沿是指在多目标优化问题中,不存在其他解在所有目标上同时更优的解集合。当一个解在至少一个目标上优于另一个解,而在其他目标上不劣于它时,就说它支配另一个解。Pareto前沿包含了所有不被支配的解。

本文需要同时优化准确性和上下文成本等多个目标,Pareto前沿用于表示和选择最优的harness配置。

编码代理

编码代理是基于语言模型的系统能够调用开发工具和修改代码。它不仅生成代码片段,还能理解代码库、执行命令、调试错误和进行复杂的多步骤编程任务,就像一个经验丰富的开发者。

Meta-Harness的核心组件就是一个编码代理,它能够阅读文件系统、分析执行轨迹并生成新的harness代码。

研究动机

大型语言模型系统的性能不仅依赖于模型权重,还依赖于harness的设计。然而harness目前主要由手工设计,过程耗时且效率低下。现有的文本优化方法在这个问题上不适用,因为它们过于激进地压缩反馈信息:有些是无记忆的只基于当前候选,有些只基于标量分数,有些将反馈限制在短模板或摘要中。例如,代表性的文本优化方法在每次工件评估中只能使用100到30000token的上下文,这远低于harness搜索所需的诊断足迹。而且,harness的决策可能在多步推理后才会产生影响,短视的反馈无法追溯到早期的harness选择。

本文的目标是本文的目标是自动化harness工程过程,设计一个能够端到端搜索最优harness代码的系统。具体来说,要开发一个外层循环系统,能够在固定语言模型的情况下,通过优化harness代码来提升系统在目标任务分布上的性能。系统需要能够处理长期依赖关系,允许proposer访问完整的候选历史,包括源代码、评估分数和执行轨迹,而不是依赖压缩的总结或手工设计的搜索结构。

与已有工作不同的是,本文的独特切入角度是将harness优化问题重新构建为一个代码搜索问题,其中proposer可以通过文件系统访问所有先前候选者的完整历史。这与现有方法的关键区别在于:现有方法通过标量分数、固定窗口或LLM生成的总结来提供反馈,而Meta-Harness让proposer通过标准文件系统操作如grep和cat来有选择地检查原始代码和执行轨迹。这种方法每次评估可产生多达1000万token的诊断信息,比现有文本优化方法的反馈预算高出约三个数量级。另一个独特之处是将诊断和编辑决策完全委托给编码代理本身,而不是在外层循环中硬编码搜索启发式规则。

核心方法

Meta-Harness的方法整体思路是使用一个编码代理作为proposer,通过文件系统访问所有先前候选harness的完整历史,然后提出新的harness代码进行评估。系统维护一个不断增长的文件系统D,其中存储了每个已评估harness的源代码、评估分数和执行轨迹。在每个迭代中,proposer首先检查先前的代码、分数和执行轨迹,分析可能的失败模式,然后生成新的harness。这个过程重复固定次数的迭代,最后返回存储在文件系统中的harness的Pareto前沿。方法的核心思想是让proposer自主决定检查哪些信息,而不是在外层循环中硬编码这些决策。这种方法可以随着编码代理能力的提升而自动改进。

Meta-Harness的核心创新点是:通过文件系统暴露完整历史,使proposer能够有选择地诊断原始先前的代码和执行轨迹,而不是从压缩的每个候选总结中优化。对于每个先前的候选harness,文件系统存储源代码、评估分数和执行轨迹,proposer通过grep和cat等标准操作检索它们,而不是将它们作为单个提示词摄入。这种设计的本质区别在于:现有方法通常使用短视或重度压缩的反馈,而Meta-Harness提供了对完整历史的自适应访问。另一个关键创新是将诊断和提案完全委托给编码代理,proposer是能够检索信息、导航先前工件和编辑代码的代理,而不是在固定提示词上操作的原始next-token模型。这种方法允许proposer在算法结构级别修改harness,从检索、记忆或提示构造逻辑的更改到完整的程序重写。

方法步骤详情

Meta-Harness的方法步骤包括:输入任务X、语言模型M、proposer P和迭代次数N。首先初始化harness种群H,从零样本、少样本、ACE和MCE等主要基线harness中选择初始集合。然后初始化文件系统D为空,用于存储代码、分数和轨迹。对于H中的每个harness,使用Evaluate函数评估其在语言模型M和任务集X上的性能,将harness和评估结果存储到文件系统中。接下来进入主循环,从t=1到N进行迭代:proposer P查询文件系统D,检查先前的harness和分数;proposer P提出k个新的harness;对于每个新提出的harness,如果它通过接口验证,则在文件系统中存储该harness和评估结果。最后返回存储在D中的harness的Pareto前沿。在实际实现中,每个harness是一个单文件Python程序,修改任务特定的提示、检索、记忆和编排逻辑。

技术新颖性

Meta-Harness的技术新颖性体现在多个方面。首先,它在代码空间中执行搜索,其中对检索、记忆或提示构造逻辑的小更改可能在多步后影响行为,使局部搜索启发式与问题不匹配。通过检查执行轨迹,proposer可以推断harness失败的原因以及哪些早期设计选择可能导致失败,而不仅仅是它失败了。其次,它允许proposer在算法结构级别修改harness,范围从检索、记忆或提示构造逻辑的更改到完整的程序重写,而不是填充模板或应用预定义的变异操作符。第三,它不强加父选择规则,proposer可以自由检查任何先前的harness及其执行轨迹。第四,它的外层循环故意保持极简,通过将诊断和编辑决策留给proposer而不是硬编码搜索启发式,Meta-Harness可以随着编码代理变得更加能干而自动改进。最后,表示harness为程序提供了自然的正则化偏差:编码模型倾向于提出相干算法而不是脆弱的硬编码解决方案,这使搜索偏向于可重用的上下文管理过程。

Meta-Harness search loop
Figure 2: Meta-Harness search loop
Meta-Harness outer loop over harnesses
Algorithm 1: Meta-Harness outer loop over harnesses

实验结果

Meta-Harness在三个任务域中展示了卓越性能。在线文本分类任务中,发现的harness比最先进的手工设计harness ACE提高了7.7个点,同时使用4倍更少的上下文token。仅用4次评估就匹配了下一个最佳方法的最终性能,60次提议后其最终准确度超过最佳先前的文本优化器10个以上点。消融研究表明,完整的Meta-Harness接口达到50.0中位数和56.7最佳准确度,而仅分数达到34.6中位数和41.3最佳准确度,分数加总结达到34.9中位数和38.7最佳准确度,证明原始执行轨迹的访问是关键成分。在分布外评估中,选定的Meta-Harness系统达到73.1%的最佳平均准确度,超过ACE的70.2%和所有少样本基线。检索增强的数学推理任务中,单个发现的harness在200个IMO级别问题上平均提高了五个未见过模型的4.7个点准确度。它匹配或超过最强大的固定基线的平均表现,超过BM25检索1.3个点,同时避免了密集检索和随机少样本提示在几个模型上观察到的回归。在TerminalBench-2上的自主编码任务中,Meta-Harness发现的harness在Claude Opus 4.6上达到76.4%的通过率,超过手工设计的Terminus-KIRA的74.7%,在该模型的所有代理中排名第二。在较弱的Claude Haiku 4.5模型上,改进更大:Meta-Harness达到37.6%,超过下一个最佳报告的代理的35.5%有2.1个点。

Comparison of text optimization methods and their settings
Table 1: Comparison of text optimization methods and their settings
Test-set metrics for all harnesses on the three datasets
Table 2: Test-set metrics for all harnesses on the three datasets
Ablation of the information available to the proposer in online text classification
Table 3: Ablation of the information available to the proposer in online text classification
Text classification accuracies of the harnesses proposed by different text optimizers
Table 4: Text classification accuracies of the harnesses proposed by different text optimizers
OOD text classification dataset evaluation
Table 5: OOD text classification dataset evaluation
Retrieval-augmented math problem solving on 200 IMO-level math problems
Table 6: Retrieval-augmented math problem solving on 200 IMO-level math problems
Pass rate on TerminalBench-2
Table 7: Pass rate on TerminalBench-2
Harness Optimizer Search Progress & TerminalBench-2 Harness Performance
Figure 1: Harness Optimizer Search Progress & TerminalBench-2 Harness Performance
Pareto frontier of accuracy vs. context tokens on online text classification
Figure 3: Pareto frontier of accuracy vs. context tokens on online text classification
查看结构化数据
任务指标本文基线提升
在线文本分类 准确度 48.6% ACE: 40.9% +7.7%
在线文本分类 上下文token 11.4K ACE: 50.8K -77.6%
数学推理(200个IMO问题) 平均准确度提升 +4.7% 无检索 +4.7%
TerminalBench-2(Claude Opus 4.6) 通过率 76.4% Terminus-KIRA: 74.7% +1.7%
TerminalBench-2(Claude Haiku 4.5) 通过率 37.6% Goose: 35.5% +2.1%

局限与改进

作者承认了一些局限性。Meta-Harness的性能在很大程度上依赖于proposer编码代理的能力,本文只在一个特定的强编码代理上进行了评估,更广泛的研究仍然需要在不同的proposer代理上变化效果。实验主要在三个任务域中进行,虽然涵盖了文本分类、数学推理和自主编码,但可能无法代表所有可能的harness应用场景。另一个潜在问题是过拟合,特别是在TerminalBench-2实验中,搜索和最终评估使用相同的89任务基准。作者通过人工检查和基于正则表达式的审计来检查任务特定字符串泄漏,但在该基准上发现的harness可能专门针对TerminalBench-2。此外,方法需要大量的计算资源,因为每次评估harness需要在搜索集上运行完整评估,这可能限制了在更大规模问题上的应用。最后,文件系统中的完整历史存储可能会变得非常大,虽然proposer可以通过标准操作有选择地检索信息,但存储和访问成本仍然是一个考虑因素。

独立分析的弱点

本文存在几个可以改进的弱点。首先,方法目前主要优化单个标量目标或简单的Pareto前沿,但在实际应用中可能需要同时考虑更多维度的目标,如推理速度、成本、安全性等。改进方向可以是扩展多目标优化框架,支持更复杂的目标权衡。其次,文件系统中的完整历史虽然提供了丰富的诊断信息,但随着搜索进行会变得越来越大,可能会影响效率和可扩展性。可以考虑引入增量索引、智能压缩或层次化存储来缓解这个问题。第三,方法假设有一个固定的任务分布用于搜索,但在实际应用中任务分布可能会变化或难以获得。改进方向可以是开发在线或迁移学习机制,使系统能够适应新任务分布而无需从头搜索。第四,方法目前主要关注代码级别的优化,但有些harness改进可能需要同时调整模型参数或架构。可以考虑将harness搜索与模型权重优化结合起来,形成更完整的系统优化框架。最后,方法依赖于编码代理的能力,但不同的编码代理可能在不同的任务域上表现不同。可以考虑开发任务特定的proposer或集成多个proposer来提高鲁棒性。

未来方向

作者提出了几个有前景的未来研究方向。一个自然的下一步是共同演化harness和模型权重,让策略塑造模型学习的内容,反之亦然。这种协同演化可能会产生比单独优化任一组件更好的性能。另一个方向是研究不同的proposer代理如何影响harness搜索的效果,进行更广泛的研究来了解效果如何在不同proposer代理之间变化。还可以探索更复杂的harchess设计空间,包括更丰富的工具集成、更复杂的记忆结构和更灵活的编排逻辑。从应用角度来看,可以将Meta-Harness扩展到更多的任务域,如多轮对话、决策制定、创意生成等,以验证其通用性。从效率角度来看,可以研究如何减少harness评估的计算成本,例如通过代理指标、分层评估或并行化。从理论角度来看,可以开发harness搜索的理论框架,理解其收敛性质、样本复杂度和泛化保证。最后,可以探索更人机协作的工作流程,让Meta-Harness辅助人类工程师而不是完全自动化,结合自动搜索和领域专业知识。

复现评估

本文的复现性评估显示了一定的开放性和挑战性。作者在项目页面提供了交互式演示,并在GitHub上发布了优化的harness代码,这为理解方法和复现部分结果提供了资源。然而,完整的实验设置包括几个可能难以复现的组件。在线文本分类实验使用了三个特定数据集(LawBench、Symptom2Disease、USPTO-50k),这些数据集可能需要许可或特殊访问。数学推理实验使用了超过500,000个已解决问题的检索语料库,经过仔细去重和去污染,这需要大量的数据处理工作。TerminalBench-2是一个公开的基准,但包含了89个具有复杂依赖性和大量领域知识的挑战性任务,完成这些任务可能需要特定的环境设置和领域知识。从计算角度来看,一次典型的搜索运行在大约20次迭代中评估大约60个harness,这可能需要大量的计算资源,特别是在使用大型语言模型如GPT-OSS-120B、GPT-5.4n、GPT-5.4m、Gemini-3.1-Flash-Lite和Gemini-3-Flash时。然而,作者提供了额外的提示来在新域中实现Meta-Harness,这有助于在其他设置中复现方法。总体而言,虽然完整的实验复现可能需要大量资源和特定数据访问,但核心方法的开源和详细的实验描述为研究社区提供了良好的起点。