返回博客

Harness² 递归自我改进|GLM-5提升11.5分

人工智能1033
Harness² 递归自我改进|GLM-5提升11.5分

Agent 的能力上限早就不是模型决定的,是 harness 决定的。

HF Papers 热榜上的 Harness²(Recursive Agent Harnessing for an Open World)把这个判断推进了一步:既然 harness 是可变面,能不能让 Agent 自己改自己的 harness?它给出的是一个两级递归框架——任务级用 Propose-Probe-Compose 的对比式编辑,在没有标准答案的开放任务上也能可靠判断"这次改动是不是更好";harnessing 级把这些编辑经验沉淀下来,让 Agent 面对下一个新任务时起点更高。结果是在三个专业基准、四种模型配置上,单步递归即稳定提升:GLM-5 与 Gemini 3.5 Flash 在 WorkBuddy-Bench 最高提升 11.5 分,LAB 提升 11.8 个百分点。

这篇拆解两级递归各自解决了什么难题,讨论生产系统里启用自演化 harness 的安全边界与成本结构,附接入示例,走 4sapi.com 统一端点。

一、痛点:harness 的迭代速度跟不上任务

harness 是模型之外的一切:工具定义、提示词、循环结构、校验规则、重试策略。现实里它有三个迭代瓶颈:

Harness² 的两级递归正好对应这三个瓶颈:任务级递归解决"没有验证器怎么改",harnessing 级递归解决"经验怎么累积"。

二、原理速览:两级递归各管一层

text
任务级递归(对单个任务改 harness)
  ┌─────────────────────────────────────┐
  │ Propose:提出 harness 编辑候选        │
  │ Probe:同一任务跑改动前后两个版本      │
  │ Compose:对比执行轨迹,择优合成        │
  │  → 关键:不依赖标准答案,              │
  │    比较的是"过程证据"而非"结果对错"    │
  └─────────────────────────────────────┘
              │ 编辑经验
              v
harnessing 级递归(跨任务累积)
  ┌─────────────────────────────────────┐
  │ 从历次任务级编辑中抽取可泛化的改进      │
  │ 更新持续改进 harness                   │
  │  → 下一个新任务的起点已被抬高           │
  └─────────────────────────────────────┘

任务级递归的聪明之处在于把"结果对错"换成"过程对比":同一个任务,改动前后的执行轨迹放在一起,哪个版本的工具调用更合理、失败恢复更顺畅、卡点更少,模型可以对比判断而不需要知道正确答案。这让自演化第一次在开放任务上变得可靠。

harnessing 级则是把"这次学到的"变成"下次自带的"——递归不止加深一步,还留下沉淀。

三、数字怎么读

基准提升幅度说明
WorkBuddy-Bench至 +11.5 分专业工作流任务
JobBench+4.5 分求职类任务
LAB+11.8pp代码/Agent 长任务

三点纪律:

四、与人工 harness 工程的分工

自演化不是取代人工 harness 工程,是重新划界:

工作归属理由
安全边界、权限、审计只能人工自演化不得触碰
工具集定义与凭证管理人工为主涉及外部资源
提示词与流程的局部调优任务级递归高频、低风险、可对比验证
跨任务模式沉淀harnessing 级数据驱动,人工做不动

一条硬边界:递归编辑的对象必须圈定在白名单字段内(提示词模板、重试策略、输出格式约定等),权限配置、工具权限、外发通道这些字段对自演化只读。这是第294期治理原则在自演化场景的直接应用:模型可以提议,但不能成为唯一的授权者。

五、成本结构:对照执行的账

任务级递归的额外成本来自 Probe 环节的对照执行:

text
单任务增量成本 ≈ (对照执行次数 × 单次执行成本) + 编辑与对比的模型调用

三个控制手段:

  1. 按任务价值分档。高价值任务(对外交付、长链路 Agent)启用完整递归,低价值任务直接用现有人工 harness。
  2. 对照执行用便宜档。Probe 的目的是比较过程质量,不追求最优产出,用中档模型跑对照,预算可压到主任务的零头。
  3. harnessing 级的收益是摊销的。一次沉淀惠及后续所有任务,按月度口径摊算,递归的整体成本随任务量上升而下降。

六、Python 接入示例:白名单内的任务级自演化

通过 4sapi.com 端点实现一个最小版 Propose-Probe-Compose,编辑范围锁在提示词模板白名单内:

python
import os
import json
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["API_KEY"],
    base_url="https://4sapi.com/v1",
)

HARNESS = {
    # 白名单字段:允许自演化编辑
    "task_prompt": "逐步完成任务,先列出步骤再执行。",
    "retry_policy": "工具失败时最多重试 2 次",
    # 只读字段:自演化不可触碰
    "tool_permissions": {"fs": "ro", "net": "none"},
}

def run_task(harness: dict, task: str) -> str:
    resp = client.chat.completions.create(
        model="agent-runner",
        messages=[{"role": "system", "content": harness["task_prompt"]},
                  {"role": "user", "content": task}],
    )
    return resp.choices[0].message.content

def propose_edit(task: str, base_trace: str) -> str:
    return client.chat.completions.create(
        model="harness-editor",
        messages=[
            {"role": "system", "content":
             "针对执行轨迹中的卡点,提出 task_prompt 的改进版本,只输出新提示词。"
             "不得涉及权限、网络、外发相关内容。"},
            {"role": "user", "content": f"任务:{task}\n执行轨迹:{base_trace}"},
        ],
    ).choices[0].message.content

def compare(task: str, a: str, b: str) -> str:
    return client.chat.completions.create(
        model="harness-judge",
        messages=[
            {"role": "system", "content":
             "对比两个执行结果的过程质量(步骤合理性、卡点、完整性),"
             "只输出 A / B。"},
            {"role": "user", "content": f"任务:{task}\n[A]{a}\n[B]{b}"},
        ],
    ).choices[0].message.content

def evolve(task: str) -> dict:
    base = run_task(HARNESS, task)
    new_prompt = propose_edit(task, base)
    cand = dict(HARNESS, task_prompt=new_prompt)
    cand_out = run_task(cand, task)
    if compare(task, base, cand_out) == "B":
        HARNESS["task_prompt"] = new_prompt   # 采纳,进入 harnessing 层沉淀
        return {"adopted": True, "prompt": new_prompt}
    return {"adopted": False}

if __name__ == "__main__":
    print(evolve("整理这份会议纪要并生成带负责人的行动项清单"))

要点:

  1. 编辑提议的 system 提示里显式禁止触碰权限类内容,配合代码层白名单双保险。
  2. judge 只看过程质量不看答案,这正是开放任务上无需标准答案的关键。
  3. 采纳的编辑要落盘记录(示例省略),作为 harnessing 级沉淀的原料。

七、落地路径

把自演化 harness 引入生产,建议三步走:

  1. 影子期:递归只做提议与对比,不采纳,人工审阅每条编辑建议,积累"机器能改对什么"的证据。
  2. 受限采纳期:白名单字段内自动采纳,每次采纳生成 diff 与触发任务的审计记录,周度人工复盘。
  3. 常规期:采纳照常,人工精力转向 harnessing 级沉淀的泛化质量与边界巡查。

整个路径的节奏由数据决定,影子期的通过率低于五成就延长观察,不硬切。

八、风险与注意事项

九、验收清单

  1. 白名单字段清单生效,只读字段有代码级保护而非仅提示词约束。
  2. 每次采纳有完整 diff 与审计记录,回滚演练通过。
  3. judge 评价标准含冗余惩罚条款,投机样本回归集通过。
  4. 影子期通过率数据归档,进入受限采纳期的决策有据可查。
  5. harnessing 级沉淀有独立版本管理,与任务级编辑分离。

总结

Harness² 把"harness 是可变面"推进到"harness 可以自我演化":任务级 Propose-Probe-Compose 用过程对比绕开了开放任务没有标准答案的死结,harnessing 级把编辑经验沉淀成跨任务的起点提升,GLM-5 单步即涨 11.5 分且跨模型成立。对生产系统,关键动作是划清边界——提示词与策略白名单内交给递归,权限与外发只读保留给人工,配合影子期与受限采纳期控制引入节奏。我在这篇里给了两级递归的拆解、成本控制手段和最小实现代码,4sapi(https://4sapi.com)同一端点可以为编辑、对照、评判三角色配置不同档位的模型,自演化的账算得清。欢迎在评论区聊聊:Agent 的 harness,上一次人工优化是什么时候?

标签:Harness²AI Agent递归改进模型调优工作流演化

推荐阅读

探索更多前沿洞察与行业干货。