Hierarchical Self-Improvement: A Framework for Task-Specific Evolvable Agent Harnesses
Tailin Zhou
cs.AI
2026-08-09
HSI 用同一冻结的 DeepSeek-V4-Flash 同时执行任务、改写任务 harness、再改写进化策略。BALROG 上相对初始 harness,BabyAI 进度从 42.0 升到 81.3,Crafter 从 11.6 升到 44.6,NLE 几乎没有提升。
LLM agent 的分数差,很大一块来自 harness:提示词、工具编排、记忆、校验。同一块模型换一套脚手架,成绩能差出一大截。现有两条路都没把这个问题收干净。Gödel Agent、Darwin Gödel Machine 这类自改进系统,主要在改逐步决策代码;Meta-Harness、Self-Harness 这类 harness 工程,又经常要靠更强的外部 proposer 来提方案。最近还有评测指出,自动改 harness 容易过拟合,不一定打得过单纯加长测试时推理。
真正要问的是:模型参数冻死之后,agent 能不能自己改自己的 harness,以及这种改法最终卡在哪。
港科大 Tailin Zhou 提出 Hierarchical Self-Improvement(HSI)。一块冻结的 DeepSeek-V4-Flash 同时干三件事,三套作用域、三份记忆,共用同一个 react() 循环:
这样改 harness 和改「怎么改 harness」都发生了,但不会无限递归。任务执行时关掉 thinking,改代码时打开 thinking,用来把 harness 进化的贡献和测试时推理拆开。
一轮进化固定 5 次外循环,每次最多 80 步。种子选择会从进化图里挑祖先,写出假设:改哪一版、为什么、往哪走、怎么证伪。主进化只保证一件事不变:任务注入接口 usingharness 冻住,内部可以热替换。提交时不只留最高分,保留多条支路。最后按验证表现挑一版导出。候选排序用带噪声的下置信界 r = μ − 0.5σ/√n,对外报告仍用原始 % Progress。进化不能把模型换成外部搜索或非 LLM 策略,但可以改 harness 里的工具和逻辑。实际轨迹里,BabaIsAI-Make 还是长出了 BFS 寻路。
评测在 BALROG 上,六个长程文本交互环境。对照是同一块 DeepSeek-V4-Flash、同一套任务时无 thinking 配置下的初始手工 harness。公开榜单只作背景,那些模型开了各自的 reasoning。
Setup A 用同一任务集、每局重新采样种子:
| 环境 | Init harness | HSI meta-off | HSI meta-on |
| BabyAI | 42.0 | 77.3 | 81.3 |
| Crafter | 11.6 | 36.4 | 44.6 |
| TextWorld | 40.0 | 46.0 | 65.0 |
| MiniHack | 0.8 | 5.8 | 15.8 |
| NLE | 0.0 | 0.0 | 0.2 |
| 平均 | 18.9 | 33.1 | 41.4 |
相对初始 harness,meta-on 在 BabyAI +39.3、Crafter +33.0、TextWorld +25.0、MiniHack +15.0。关掉元进化器,TextWorld 掉到 46.0,MiniHack 掉到 5.8。NLE 几乎没动。
跟榜单比,TextWorld 的 65.0 高于 Grok-4 的 62.9 和 Claude-Opus-4.5-Thinking 的 59.0;Crafter 的 44.6 高于 GPT-5-minimal-think 的 39.1。整体平均 41.4,仍低于 Gemini-3-Pro 的 52.1。推理预算不一样,不能当公平对决。
Setup B 在 BabaIsAI 子套件上留 20% 未见测试集。BreakStop 从 0.03 升到 0.98,GoTo 从 0.18 升到 1.00。Make 从 0 升到 0.36,方差很大。Crafter 轨迹里,dev 奖励从 0.166 爬到第 4 轮的 0.578,第 5 轮回退。进化不是单调上涨。
这是一条不改权重、只改脚手架的轴。对已经部署、不能动底座的 agent,HSI 给出一个可执行模板:每个任务族自己养一份 harness,通过固定接口热替换,用环境反馈筛版本。任务执行关掉 thinking,把「多想一会儿」从增益里剔掉了,这些分数更接近 harness 本身的贡献。
它成不了通用 harness 一次训好到处用。BabaIsAI 的导航子套件能迁到未见任务,Make 就不行。作者把缩放方向写成「每个任务族持续进化」,不是一张万能脚手架。代码已开源。单人项目,计算预算有限,只跑了一块模型。
作者承认两道硬边界。反馈保真度:奖励太稀,进化没信号。底座能力:模型本身够不着的任务,改 harness 补不回来。NLE 同时踩中这两条。
实验还有几处站不稳。Setup A 是同一任务分布换种子,不是任务级留出;泛化只在 BabaIsAI 三个子套件上测过。全程单一种群、单条谱系、一块 DeepSeek-V4-Flash,没有跟「同一模型开 thinking」或「单纯加测试时搜索」做对照,而作者引用的评测恰恰警告过 harness 进化可能打不过 test-time scaling。附录 Table 3 把 TextWorld 的 Meta 标成 off,正文 Table 1 却报了 meta-on 的 65.0,配置对不上。主文说不能用外部搜索替换模型,Make 轨迹里却长出了 BFS。Init harness 没有预先评估,第 1 轮冷启动,初始基线怎么估的也没写清。
能跟的人可以拿来当「冻模型、改脚手架」的实验脚手架。别指望它把弱模型抬过能力上限。