HarnessX 深度拆解:不堆参数,改"运行时外壳"——Agent 进化的另一条路
论文:HarnessX: A Composable, Adaptive, and Evolvable Agent Harness Foundry
团队:Darwin Agent
链接:https://arxiv.org/abs/2606.14249
GitHub:https://github.com/Darwin-Agent/HarnessX
一、核心问题:Agent 的"隐形天花板"
做 Agent 的同学都有这种体验:换模型效果提升 5%,改 prompt 提升 10%,但改"运行方式"可能提升 40%——却没人系统性地做这件事。
HarnessX 团队把这个"运行方式"叫做 harness(运行时外壳):prompt 怎么组织、工具怎么编排、错误怎么恢复、记忆怎么管理、上下文怎么截断……这些不是模型本身的能力,却决定了模型能把能力发挥到什么程度。
现有框架的三大痛点:
- 手搓静态:每个 benchmark 都要重写一套 harness
- 架构纠缠:context、tools、memory、control flow 全混在一起,改一处崩三处
- 与训练脱节:执行时产生的轨迹(成功/失败/错误恢复)从没被用来改进 harness
HarnessX 的解法:把 harness 当成一等对象——可组合、可进化、可与模型协同训练。
二、核心洞察:模型越弱,harness 收益越大
实验结果中最反直觉的一条:
| Benchmark | Claude Sonnet 4.6(强模型) | Qwen3.5-9B(弱模型) |
|---|---|---|
| ALFWorld | +11.2% | +44.0% |
| GAIA | +7.3% | +18.5% |
弱模型的 harness 提升是强模型的 2-4 倍。
这说明什么?强模型自带"纠错能力",对 harness 的依赖低;弱模型"底子差",但一个好的 harness 可以帮它补上大量短板——更好的错误恢复、更精准的工具调用、更有效的记忆检索。
Agent 进步不只能靠换更大的模型。优化运行时接口是另一条可行、且对资源有限者更友好的路径。
三、三层设计:harness 作为一等对象
第一层:可组合的基础单元(Processor)
HarnessX 把 harness 拆成 9 个维度的行为空间,每个维度对应一种 Processor(处理器):
| 维度 | Processor 示例 |
|---|---|
| Context | System prompt 模板、历史消息包装 |
| Tools | Skill 加载器、Schema 适配器、工具过滤 |
| Memory | 提取、检索、压缩、5 种记忆策略 |
| Control | 安全限制、重试策略、路由决策 |
| Evaluation | LLM Judge、PRM、自验证 |
| Multi-Model | 模型路由、fallback |
| Observability | OTel 追踪、Checkpoint、指标 |
组合方式:用 | 操作符像搭积木一样拼接 Processor。
# 伪代码示例
harness = (
context.SystemPrompt("你是一个研究助手") |
tools.SkillLoader(["search", "calculator"]) |
memory.LightMemory(strategy="time_decay") |
control.RetryPolicy(max_retries=3)
)
关键设计:类型安全的替换代数——每个 Processor 有明确输入输出类型,插入/移除不会破坏整体结构。
第二层:AEGIS 进化引擎
AEGIS(Automated Evolution of Generated Interface Structures)是 HarnessX 的核心——一个从执行轨迹中自动进化 harness 的多智能体流水线。
它的关键洞察:改 harness 在结构上等价于强化学习。
| RL 概念 | Harness 进化对应 |
|---|---|
| 状态(State) | 当前 harness 配置 |
| 动作(Action) | 对 harness 的 typed edit(替换/添加/移除 Processor) |
| 奖励(Reward) | 任务成功率(benchmark verifier 打分) |
| 轨迹(Trajectory) | 完整执行日志(成功/失败/错误信息/中间状态) |
这个"运行对偶"(operational mirror)的意义:RL 里的经典问题(reward hacking、灾难性遗忘、探索不足)在 harness 进化里会变成真实的设计风险,可以用 RL 理论来预测和防御。
第三层:Harness-Model 协同进化
不仅 harness 在变,模型也在变——两者共享同一个 replay buffer:
循环:
1. 用当前 harness + 模型跑任务 → 产生轨迹
2. 轨迹用于:
a. AEGIS 进化 harness(哪些 Processor 该换/改)
b. RL 训练模型(cross-harness GRPO)
3. 新 harness + 新模型 → 下一轮
Cross-harness GRPO:模型从多个 harness 版本的轨迹中学习,避免"只适应某一种 harness 配置"。
四、AEGIS 四阶段流水线:防作弊、防遗忘
AEGIS 不是单模型直接改代码,而是四个角色的协作:
1. Digester(消化器)
输入:原始执行轨迹(可能数万 token)
输出:结构化失败证据(哪些 task 失败、失败模式归类、信号强度评分)
关键机制:如果信号太稀疏(失败太少或太杂),直接终止本轮进化——防止在噪声上浪费计算。
2. Planner(规划器)
输入:失败证据 + 当前 harness 配置 + 编辑历史
输出:adaptation landscape(适应图景)——列出所有可能的改动方向
区分两类改动:
- 增量改动:调 prompt、改工具参数、换记忆策略
- 结构改动:添加新 Processor、重组控制流、引入新维度
3. Evolver(进化器)
输入:规划出的改动方向
输出:具体的 typed builder edits(带明确 change manifest)
每个 edit 都附带:改什么、为什么改、预期影响、回滚方案。
4. Critic + 确定性闸门(评审 + Gate)
Critic:用 LLM 评审 edit 的合理性——声称的改进是否有轨迹支持?是否会导致已解决任务回退?
确定性闸门:硬性规则检查——必须通过单元测试、不能破坏已有功能、类型安全。
两者都通过 → edit 被 ship(部署)
任一失败 → edit 被 reject,记录原因
五、真实案例:维基抓取全返回空
论文里举了一个 GAIA benchmark 上的真实案例:
问题:某版本 harness 里的维基百科抓取工具突然全部返回空结果——因为目标网站改了反爬策略。
静态 harness 的结果:任务成功率从 74.8% 掉到 68%。
AEGIS 的修复过程:
- Digester:发现大量"搜索成功但内容获取失败"的模式
- Planner:判断是工具层面的问题,需要在 tools 维度增加 fallback 策略
- Evolver:生成一个"多源抓取 + 失败自动切换"的 Processor 组合
- Critic:验证新组合不会破坏其他工具调用
- 部署后:成功率从 74.8% → 79.6%
关键:这不是"改 prompt"能解决的问题,而是工具层面的结构性修复——harness 进化触及了传统 prompt 优化到不了的地方。
六、实验结果:平均 +14.5%,最高 +44%
五大 Benchmark
| Benchmark | 类型 | 最佳提升 | 备注 |
|---|---|---|---|
| ALFWorld | 具身规划 | +44.0%(Qwen3.5-9B) | 弱模型收益最大 |
| GAIA | 多步检索/推理 | +18.5%(Qwen3.5-9B) | 异构任务集,需 variant isolation |
| WebShop | 网页交互 | +12.3% | 电子商务购物 |
| τ³-Bench | 多轮对话 | +1.1% | 接近天花板,提升有限 |
| SWE-bench Verified | 软件工程 | +8.7% | 代码修复 |
关键消融
| 配置 | GAIA 提升 | 说明 |
|---|---|---|
| 完整 AEGIS | +14.5% | 四阶段流水线 |
| 去掉 Critic/Gate | +8.2% | 灾难性遗忘出现,部分任务回退 |
| 单模型 evolver(CC SDK) | +6.1% | 相当于 SICA 等基线 |
| Harness-only(无 model co-evolution) | +9.8% | 协同进化再 +4.7% |
反向缩放规律
| 模型 | ALFWorld 提升 | GAIA 提升 |
|---|---|---|
| Claude Sonnet 4.6(强) | +11.2% | +7.3% |
| GPT-5.4(中) | +22.8% | +12.1% |
| Qwen3.5-9B(弱) | +44.0% | +18.5% |
模型越弱,harness 进化收益越大。 这对资源有限的团队是重大利好——不用换模型,改 harness 就能追上。
七、局限与开放问题
论文自曝的局限
- 没有 held-out 泛化测试:所有实验都是在进化用的任务集上测的,没见过新任务
- 计算成本:15 轮进化消耗 100M-175M token 的 meta-agent 预算,不便宜
- 异构任务集的停滞:GAIA 这种任务差异大的 benchmark,单 harness 进化会 stagnate(停滞)——需要 variant isolation 策略来恢复
- Meta-agent 依赖:AEGIS 的 Digester/Planner/Evolver/Critic 都是 Claude Opus 4.6 驱动的,对强模型有依赖
更深层的挑战
- harness 进化 vs 模型训练的资源分配:多少算力给 harness、多少给模型?没有理论指导
- 可解释性:AEGIS 生成的 edits 有时人类难以验证——尤其是结构改动
- 生态问题:HarnessX 是一个框架,但社区是否愿意把 harness 配置"标准化"?
八、定位与意义
HarnessX 不是另一个 Agent 框架(如 LangChain、AutoGen),而是一个 harness 的"锻造厂"(foundry):
- 它不规定你该用什么工具、什么记忆策略
- 它提供组合这些元素的代数和进化它们的引擎
- 它证明了一件事:运行时接口的优化是和模型训练同等重要的杠杆
在模型 scaling law 收益递减的今天(GPT-5 到 GPT-5.4 的提升可能远不如 GPT-3 到 GPT-4),HarnessX 指向了一条互补路径:不堆参数,改架构——不是模型架构,而是模型"外面那层壳"的架构。
32B 密集模型击败 560B MoE(OProver),350M 检索模型击败 600M(LFM2.5),弱模型靠 harness 进化追上强模型(HarnessX)——2026 年的一个趋势正在浮现:算法设计和系统优化,正在重新获得对参数规模的压倒性优势。
参考链接
- 论文:https://arxiv.org/abs/2606.14249
- GitHub:https://github.com/Darwin-Agent/HarnessX
- Darwin Agent 团队:https://github.com/Darwin-Agent
- 相关:LIFE-Harness(适配接口而非模型)https://arxiv.org/abs/2505.22166
- 相关:SICA(自进化代码)https://arxiv.org/abs/2502.09169
#HarnessX #DarwinAgent #Agent框架 #harness进化 #AEGIS #强化学习 #AIAgent #LLM应用 #小模型大胜 #小凯
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。