MemoHarness: Agent Harnesses That Learn from Experience
Yue Huang, Wenjie Wang, Han Bao, Yuchen Ma, Xiaonan Luo, Yi Nian, Haomin Zhuang, Zheyuan Liu, Yue Zhao, Xiangliang Zhang
cs.AI, cs.CL
2026-07-15
MemoHarness 把 Agent Harness 拆成上下文、工具、生成、编排、记忆、输出六维,用双层经验库在测试时按案例改配置。Terminal-Bench 上 GPT-5.3-Codex 从 0.722 提到 0.806,跨模型平均再涨 0.098。
同一颗基座模型,换一套 Agent Harness,任务成功率能差出几十个百分点。Harness 是模型外面那层壳:上下文怎么拼、工具何时调、解码怎么设、多轮怎么排、记忆留什么、输出怎么收。业界已经反复撞上这件事,自动优化却还停在更窄的对象上,改 prompt、改 DSPy 式流水线、改工作流图。Meta-Harness 把 harness 代码当成搜索对象,搜完仍是一份训练期产物,部署时全局复用。
真实案例在领域、推理深度、检索需求和输出格式上差得很远。一套「平均最优」配置会系统性错配某几类题。MemoHarness 要补的是测试时适应:搜索阶段学一份全局 harness,面对新题再改一版,而且没有标签、没有反馈、也不再搜一轮。
Harness 被拆成沿推理时间轴的六个可编辑控制面。
这很像给同一份源码换编译选项,而不是重写程序。搜索从一份最小 harness 起步:无示例、无工具、确定性单次解码、无记忆、原样吐出。每轮控制器根据经验库提出下一份配置,在带标签的搜索集上跑完全部案例。正确率是主排序,token 用量只在同分时当平局决胜。实现里一共 10 轮外循环。
经验库分两层。一层是逐案执行条目,记下配置增量、轨迹、奖励、代价,外加诊断器标出的主失败维度。另一层从失败簇里蒸馏跨案例的全局模式。诊断器并不做完整因果解释,只把 verifier 结果、超时、缺产物、命令失败映射到六个维度之一,信号粗,但稳。测试时冻结这份库,用指令向量的余弦相似度取出最像的成功和失败邻居,再把全局 harness 改成案例专用版。简单题可以继续轻量,检索重、多步、格式敏感的题才加编排。
主评测切在 Terminal-Bench 全套 89 题的 80/20 划分上,18 题持出,基座是 GPT-5.3-Codex。MemoHarness 成功率 0.806,比最强固定 harness 基线 Codex 的 0.722 高 0.084;相对 Claude Code、OpenCode、Terminus 的提升在 +0.250 到 +0.445 之间。产品级基线不能当成纯脚手架对照,论文自己把它写成「最接近的已发布配置」。
三套任务上,验证集选出的最终 harness 相对最小起点都有涨。
| 任务 | 起点 | 最终选出 |
| Terminal-Bench | 0.722 | 0.806 |
| LiveCodeBench | 0.900 | 0.967 |
| FinanceAgent | 0.600 | 0.767 |
搜索轨迹并不单调。Terminal-Bench 第 4 轮持出到过 0.833,LiveCodeBench 第 3 轮摸到 1.000,最终交付按验证集选,所以会低于训练峰值。FinanceAgent 这种多步分析题头寸最大,搜索集约 10 轮从 42.5% 爬到 65.0% 附近;LiveCodeBench 接近模型天花板,在大约 4 个点的窄带里晃。
跨数据集是选择性迁移。Terminal-Bench 上学来的 harness 把 MMMLU 从 0.818 提到 0.848,StrongReject 从 0.879 提到 0.909,SWE-Bench Pro 从 0.706 提到 0.765。HumanEvalFix 和 Reasoning-Gym-Easy 已经饱和,纹丝不动。LiveCodeBench 源把 MMMLU 推到 0.879,LawBench 却从 0.675 掉到 0.669。
同一份 GPT-5.3-Codex 搜出来的 harness,不重训直接套到另外六颗模型,Terminal-Bench 上颗颗都涨,平均 +0.098。GLM-5 从 0.500 到 0.733;GPT-4.1 只从 0.500 到 0.538;DeepSeek-V3.2 从 0.333 到 0.444。
成本按公开标价事后算。MemoHarness 因为检索经验库,输入 token 到 14.18M,其中 13.32M 走缓存,18 题持出集约 6.89 美元,低于 Codex 的 10.28 和 Claude Code 的 9.51。OpenCode 只要 2.34 美元,准确率也低得多。缓存打不满,这本账会改写。
从业者这两年已经把大量时间花在给模型套壳上。MemoHarness 把这层壳从手写默认值,变成可搜索、可诊断、可按案例改的对象。长程、工具密集的任务收益更大;接近饱和的单次代码生成,涨幅有限。跨模型还能涨,说明学到的不完全是某一家模型的 prompt 癖好。
它仍然是渐进工作。搜索要标签,测试时适应不回环,经验库、全局模式、案例适应三项没有拆干净的消融。能用的场景更接近「有一摊带 verifier 的历史跑数,想给同类任务换壳」,不是无监督在线自我进化。
附录把软肋写清楚了。主数字来自 18 题持出集的点估计,没有置信区间,也没有显著性检验。基线并不都换得了同一颗模型。组件归因缺失。成本高度依赖缓存命中。控制器和诊断器是启发式,不是学出来的。
另外两处读下来站不太住。正文写「比其他基线高 0.250 到 0.445」,却没给出 Terminus、OpenCode、Claude Code 各自的成功率,柱状图只能当示意。跨模型实验把在 GPT-5.3-Codex 上搜到的壳直接套走,GLM-5 多了 0.233 很抢眼,但没有报告这颗模型默认 harness 本身有多弱,涨幅可能混进了起点太差。