Self-Harness:让AI Agent学会自我修复的框架

📰 本文选自 自游人今日AI科技日报

Agent的上限在Harness,不在模型

AI Agent领域2026年有个越来越明确的共识:一个Agent在真实任务里能不能跑顺,核心决定因素不完全是模型本身。系统提示怎么写、工具怎么暴露、错误怎么恢复、什么时候验证中间产物、什么时候停止无效探索——这些围绕模型的工程层(业内叫Harness),对最终表现的影响往往超过模型参数的多少。

上海人工智能实验室发布的Self-Harness框架[^1],解决的就是这个问题。它不改模型权重、不换更强的老师模型、增加的计算几乎可以忽略——但它干了一件之前只有人类工程师能干的事:分析Agent的错误、找出Harness的弱点、提出改进方案、验证是否有用,然后进入下一轮循环。

结果相当硬:在Terminal-Bench 2.0基准测试中,将多个主流模型驱动的Agent性能提升了33%到60%[^2]。

Harness为什么需要自动优化

先承认一个事实:大多数Agent项目里,Harness是靠人调的。

工程师写一个初始的System Prompt,配好工具接口,设几个错误处理规则,跑一遍测试。发现某类任务总是失败?回去改Prompt、调整参数、加fallback逻辑。这个过程有几个问题:

  1. :每次迭代需要人类工程师分析失败trace、猜想原因、修改配置、重新运行评测
  2. 非系统性:工程师可能会漏掉某些弱点的模式,或者某次修改引入新问题没被发现
  3. 不可迁移:为一个模型调好的Harness,换个模型可能完全不work
  4. 天花板低:人类能想到的优化手段是有限的

Self-Harness的设计哲学是:把Harness本身当作一个可迭代的外部状态,让Agent根据自己的失败轨迹提出小步改动,再用回归测试决定是否接受。

三轮迭代机制

Self-Harness的核心流程是三个循环的阶段[^2]:

第一轮:弱点挖掘(Weakness Discovery)

Agent在当前Harness配置下执行一批任务。系统收集所有失败案例——不是简单的"这个任务失败了",而是详细记录:在哪个步骤失败、失败类型(工具调用错误/逻辑推理错误/超时/输出格式不符)、失败前的上下文是什么。

这一步的输出是一份弱点报告——清晰描述了当前Harness在哪些方面让Agent吃了亏。

举个例子:如果发现大量失败案例中Agent反复尝试一个不存在的文件路径,说明工具描述不够清晰或者缺少当前目录状态的反馈机制。如果Agent经常在某个类型的问题上"想太多"超时,说明循环策略需要调整。

第二轮:方案生成(Proposal Generation)

基于弱点报告,Self-Harness让同一个模型生成Harness改进方案。

这听起来像"让病人给自己开药方",但实际上很合理——因为Harness是外部工程配置,不是模型内部参数。模型很清楚自己"什么地方看不懂"、“什么信息对决策很关键”。所以它确实能提出有针对性的改进,比如:

  • “工具X的描述应该更详细地说明它只接受绝对路径”
  • “在步骤5之后应该增加一个验证环节,确认文件是否真的被创建”
  • “当错误信息包含’permission denied’时应该直接报告而非重试”

这些改进是以结构化补丁的形式生成的,可以精确应用到Harness配置的特定位置,而不是整个替换。

第三轮:回归验证(Regression Verification)

改完之后不能直接上线——必须验证。Self-Harness在新Harness配置下重新运行之前所有任务(通过的和失败的都跑),检查两个指标:

  1. 通过率是否提升:失败的任务有变通过吗?
  2. 退步检查:之前通过的任务有变失败吗?

只有通过率和退步检查都过关的改进才会被接受并保存到Harness的新版本中。如果某次改进导致退步,它会被丢弃,系统回到上一版本继续尝试其他方案。

然后进入下一轮迭代。经过多次这样的三轮循环,Harness逐步收敛到一个更优的配置。

实测数据:33%-60%的提升

论文在Terminal-Bench 2.0上测试了三款主流开源模型[^2]:

模型BaselineSelf-Harness后提升幅度
MiniMax M2.5~33%
Qwen3.5-35B~47%
GLM-5~60%

这些数字的核心意义在于:没有改动任何模型权重,没有使用更强的模型作为"老师",纯靠工程层的自动优化就实现了这个量级的提升。

另外值得注意的:GLM-5获得的最大提升(60%)恰恰说明一个问题——能力越强的模型,在糟糕的Harness下"浪费"的潜力越大。优化Harness的收益和模型能力正相关。

开发者怎么集成

Self-Harness的代码已在GitHub开源(datawhalechina/self-harness)[^3]。集成到现有Agent项目的基本思路:

最小集成步骤

1. 定义Harness配置结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# harness_config.json
{
    "system_prompt": "你是一个编程助手...",
    "tools": [...],
    "error_handling": {
        "max_retries": 3,
        "timeout": 120
    },
    "verification": {
        "enabled": true,
        "checkpoints": ["before_write", "after_execute"]
    }
}

2. 准备测试任务集

Self-Harness需要一批有明确成功/失败标准的任务。每个任务需要定义:输入、预期操作序列(或至少是预期的最终状态)、成功判定函数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
tasks = [
    {
        "id": "task_001",
        "description": "创建目录并写入文件",
        "setup": "空目录",
        "expected_result": {"check": "file_exists('output/result.txt')"},
        "base_harness": "harness_config.json"
    },
    # ... 更多任务
]

3. 运行Self-Harness优化循环

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from self_harness import SelfHarnessOptimizer

optimizer = SelfHarnessOptimizer(
    model="qwen3.5-35b",  # 你要优化的Agent模型
    base_harness="harness_config.json",
    tasks=tasks,
    max_iterations=10    # 最多跑10轮迭代
)

best_harness = optimizer.optimize()
print(f"最佳Harness通过率: {optimizer.best_score}")

4. 部署优化后的Harness

best_harness的内容替换你原有的Harness配置,Agent后续请求都使用新配置。

集成建议

  • 从小开始:先用10-20个典型任务跑一轮,看看有没有正收益,再扩大规模
  • 任务多样性:测试任务要覆盖不同类型的失败模式,否则Self-Harness只能治一种病
  • 别上来就信:前几轮产生的改进建议可能质量不高,需要人工review——尤其是在生产场景中
  • 定期重跑:你的模型可能会更新版本或部署环境变化,Harness需要与时俱进

与传统Harness优化的区别

维度人工优化Self-Harness
迭代速度小时/天级分钟级
优化策略依赖工程师经验数据驱动的系统性分析
覆盖面可能遗漏边缘案例所有失败案例都会被分析
回归保护依赖人工测试自动回归验证
成本工程师时间GPU时间(一次,后续复用)

局限与风险

说清楚Self-Harness目前还做不到的事:

它不能修复模型本身的问题。如果Agent在一类任务上失败是因为模型缺乏领域知识,再好的Harness也救不了。Harness优化的是模型能力的使用效率,而不是模型能力本身。

生成的改进可能有偏。模型提出Harness改进方案时,可能倾向于某种类型的修复(比如反复调整Prompt措辞),而忽略更结构化的改进(比如重新设计工具接口)。

依赖测试任务的代表性。如果测试集没有覆盖某些生产中的真实失败模式,Self-Harness就不会针对这些模式优化。

一次性的投入产出比。如果只需要跑一个Agent、做几件事,人工调一调就够了。Self-Harness的价值在需要持续迭代、大量任务的场景中体现——这就是为什么论文选择了Terminal-Bench这种大规模评测基准来验证。


参考来源:

  1. Self-Harness: 让Agent学会改造自己的"操作系统" - CSDN — 论文与机制详解
  2. 上海人工智能实验室造出了一个会自我进化的AI科学家 - 至顶科技 — arXiv:2606.06473论文报道与消融实验
  3. GitHub - datawhalechina/self-harness — 官方开源代码
  4. Stanford Meta-Harness - CSDN — 同方向的斯坦福工作对比
  5. AI Agent Harness Engineering全解 — Harness工程背景知识

📖 延伸阅读

最后更新:2026-06-24

本文由 AI 辅助撰写,经人工审阅。内容仅供参考,不构成任何建议。
© 2026 自游人 17YOU.COM · 转载请注明出处

原文链接: https://www.17you.com/ai/self-harness-framework/ 已复制!
一起薅AI羊毛

保持关注,记得把网址 (17you.com) 加收藏夹!有空经常来网站看看!我们每天都分享最新鲜、最实用的AI知识、最新动态、最新技术,以及最新的应用场景。

请点击联系我


相关内容