斯坦福 Meta-Harness:让 AI Agent 自动进化「外挂大脑」
斯坦福 Meta-Harness:让 AI Agent 自动进化「外挂大脑」
先收藏,回头一定用得上。
斯坦福 IRIS Lab 上个月开源了一个叫 Meta-Harness 的项目,上线两个月 GitHub 星标破千。它解决的核心问题很精准:LLM 的能力不只取决于模型权重,还取决于包围模型的那层「harness」——决定存什么、取什么、展示什么给模型的代码。这块一直是手工设计,现在终于可以自动化了。
这个方向被项目作者称为 Harness Engineering,与 Prompt Engineering、Context Engineering 并列,是 LLM 应用优化的第三层范式。
本文提纲
- Harness 是什么:LLM 应用的「外挂大脑」
- Meta-Harness 怎么工作:外层进化循环
- 三个实验结果:全面碾压人工基线
- ONBOARDING 流程:拿来即用的适配方法
- 对开发者的意义
Harness 是什么:LLM 应用的「外挂大脑」
一个 LLM Agent 的完整架构可以分成两层:
graph TB
subgraph "Fixed Base Model"
M[LLM Core Weights]
end
subgraph "Harness Layer - Optimizable"
R[Retrieval Strategy]
S[Storage Logic]
P[Presentation Format]
T[Tool Use Scaffolding]
end
R --> M
S --> R
P --> M
T --> M
style M fill:#FF6B6B,color:#000000
style R fill:#4ECDC4,color:#000000
style S fill:#45B7D1,color:#000000
style P fill:#96CEB4,color:#000000
style T fill:#FFEAA7,color:#000000Harness 就是中间那层:在模型权重不动的情况下,管理记忆检索策略、上下文构建方式、工具调用逻辑的代码。它决定了模型「看什么、记什么、怎么组织信息」。
目前的做法——无论是 RAG pipeline、few-shot 样本选择,还是 Agent 的 system prompt——基本都是工程师手动调参、反复试错。Meta-Harness 的想法是:既然 harness 本质上就是代码,为什么不让另一个 AI 来自动搜索和优化这些代码?
Meta-Harness 怎么工作:外层进化循环
Meta-Harness 的核心是一个外层进化循环(Outer Evolution Loop),整体架构如下:
graph LR
subgraph "Outer Loop - Evolution"
PR[Proposer Agent
Claude Code]
EV[Evaluate]
SC[Score & Rank]
AR[Archive Traces]
end
PR -->|Write new harness code| EV
EV -->|Run on search set| SC
SC -->|Scores + traces| AR
AR -->|Prior experience| PR
style PR fill:#FF6B6B,color:#000000
style EV fill:#4ECDC4,color:#000000
style SC fill:#45B7D1,color:#000000
style AR fill:#96CEB4,color:#000000关键设计:
1. 提议者是一个完整的编码 Agent
Meta-Harness 用 Claude Code 作为 Proposer Agent——它不是一个简单的文本生成器,而是能看到源代码、历史评分、执行 trace 的完整编码 agent。它通过文件系统访问所有前代候选的完整经验,而不是像传统文本优化器那样把反馈压缩成一段文字。
2. 验证集严格隔离
进化过程中只用 validation set,test set 绝不暴露。代码里有 FRONTIER_VAL 和 PENDING_EVAL 两层日志做追踪。
3. 候选 harness 是真正的 Python 代码
每个候选 harness 是一个继承 MemorySystem 基类的 Python 文件,写进 agents/ 目录。进化循环通过 benchmark.py 调度评估,inner_loop.py 执行单次评估。
最小启动命令只有两行:
cd reference_examples/text_classification
uv sync && uv run python meta_harness.py --iterations 1三个实验结果:全面碾压人工基线
论文展示了三个不同领域的实验,结果都很硬核:
实验 1:在线文本分类
在文本分类任务上搜索最优记忆系统。Meta-Harness 自动发现的 harness 比当时最强的上下文管理系统高 7.7 个百分点,同时上下文 token 用量减少了 4 倍。
注意这个 trade-off:不只是更准,还更省。
实验 2:检索增强数学推理
在 200 道 IMO 级别的数学题上测试。单个自动发现的 harness 在 5 个未见过的模型上平均提升 4.7 个百分点准确率。
这个结果的意义在于泛化性——在一个模型上发现的 harness 策略,迁移到其他模型上依然有效。
实验 3:Agent 编程(Terminal-Bench 2.0)
在 Terminal-Bench 2.0 上搜索最优的 Agent 脚手架(scaffold)。发现的 harness 超越了最强的人工工程基线。
Terminal-Bench 是一个模拟真实终端环境的编程基准,考验 Agent 的多步规划、工具使用和代码调试能力。能在这个场景胜出,说明自动发现的 harness 不只是学术玩具。
三个实验的横向对比
| 实验领域 | 优化目标 | 关键结果 |
|---|---|---|
| 文本分类 | 记忆系统 | +7.7 分,token 减 4x |
| 数学推理 | 检索策略 | +4.7 分(跨 5 模型泛化) |
| Agent 编程 | 脚手架 | 超越最强人工基线 |
ONBOARDING 流程:拿来即用的适配方法
Meta-Harness 不仅仅放出了实验代码,还设计了一套结构化的领域适配流程。
项目根目录的 ONBOARDING.md 是一个给编码 assistant 用的引导 prompt。你只需要把自己的编码助手指向这个文件,它就会引导你通过对话逐步产出一份 domain_spec.md,定义好任务、评估方法、harness 接口、基线、预算等。
这个流程会帮你判断 Meta-Harness 是否适合你的场景。适合的条件包括:
- 任务是长周期、多步骤的(harness 选择很重要)
- 有重复性任务或 episode,不是一次性定制流程
- 基础模型固定,主要优化空间在检索、记忆、上下文构建、工具调用
- 有可量化的评估指标和稳定的评估循环
- 存在反复出现的错误模式
如果你想用自己的 Proposer Agent(而不是 Claude Code),只需要参考 claude_wrapper.py 写一个适配层。核心要求很简单:一个能干净记录交互日志的 wrapper。
对开发者的意义
Meta-Harness 的价值不在于它发现了某个特定的 harness 策略,而在于它验证了一个假设:harness 代码可以被自动化搜索和优化。
目前我们做 RAG、做 Agent、做 memory system,大部分时间在手动调参。Meta-Harness 提供了一条不同的路——定义好评估指标和搜索空间,让 AI 自己去找最优解。
项目使用 MIT 协议开源,Python 编写,依赖只有 uv 和一个 LLM endpoint。如果你在做 LLM 应用并且已经有一个评估 pipeline,值得花一个下午试试用 Meta-Harness 搜索更好的 harness。
论文标题:Meta-Harness: End-to-End Optimization of Model Harnesses,作者 Yoonho Lee, Roshen Nair, Qizheng Zhang, Kangwook Lee, Omar Khattab, Chelsea Finn。
试过了?评论区说说你的体验。还没试?收藏起来周末折腾。
作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。