编程 不等终局再 reset:Continual Harness 在单集中途改写自己的 prompt、子代理与技能

2026-09-09 00:05:07

不等终局再 reset:Continual Harness 在单集中途改写自己的 prompt、子代理与技能

arXiv:2605.09998 · 参考实现 sethkarten/continual-harness(MIT)

Claude Code / OpenHands 这类 coding harness 会给基础模型补上工具、记忆与规划,但长 horizon、部分可观测的具身决策一直没有对等封装。Continual Harness 是一个 reset-free 的自改进框架,评测域是 Pokémon Red/Emerald:起点只有一个极简环境接口(帧、ASCII 文本地图、按钮输入),随后由一个 LLM Refiner 在 episode 中途直接改写整套 harness 状态,全部通过在线 in-context learning 完成。

Refiner 四 pass 在线 CRUD

Harness 状态就是四件东西:

  • p:system prompt
  • G:子代理集合
  • K:技能库
  • M:记忆

F 步触发一轮精炼:Refiner 先读最近一段 trajectory,识别失败签名(navigation loops、tool-call failures、stalled objectives、missed exploration),再依次跑四个 pass:

  1. 重写 system prompt p
  2. 对子代理 G 做 CRUD
  3. 对技能 K 做 CRUD
  4. 对记忆 M 做 CRUD

对 agent 侧只暴露一个工具 evolve_harness。实现集中在 agents/utils/harness_evolver.py,工具注册在 agents/tools/registry.py

省在更新落在当前局内

GEPA 这类 prompt-optimization 方法要跑完整条 episode,每次更新之间都把环境 reset。Continual Harness 的更新点在 episode 中间:失败签名出现后立即重写 p/G/K/M,当前 episode 剩余帧直接按新 harness 执行,已经走过的 trajectory 和付掉的按钮成本不需要重放。换句话说,改进在 reset 之前就已经开始在同一个局里计价。

收益随模型能力缩放

在 Pokémon Red/Emerald 上用 Gemini 3 Pro / Flash / Flash-Lite 从零开始跑,整体相对 minimalist baseline 显著降低 button-press cost,并追回了与专家手工 harness 之间的大部分差距。但收益严格依赖能力档位:

  • Gemini 3 Pro:严格 Pareto 占优;
  • Gemini 3 Flash:有改善,但方差高;
  • Gemini 3 Flash-Lite:低于 minimalist baseline。

边界很干净:弱模型不要指望 bootstrap 自动补强,收益不随框架单独缩放。

启动与 bootstrap 三种变体

基础启动命令:

python run.py --game red --scaffold continualharness --enable-prompt-optimization --optimization-window-length 50 --backend gemini --model-name gemini-3-pro-preview --port 8000 --agent-auto

不带 --enable-prompt-optimization 时行为退化为 simple + stub。

bootstrap 三变体:

  • from scratch:不带 --bootstrap-from,精炼全程开启
  • bootstrap frozen:带 --bootstrap-from,但不带更新 flag
  • bootstrap updating--bootstrap-from 与更新 flag 同时给,装载后继续在线演化

服务端与端口布局

Headless 架构里 game + emulator 放在 server 进程,agents / UI 都是 client:

  • run.py:启动 FastAPI game server 与 frame stream,绑定 port+1
  • run_cli.py:额外启动 MCP proxy,绑定 port+2,供容器化 CLI agent(Claude Code、Gemini CLI、Codex、Hermes)接入
  • web UI:http://localhost:{port}/stream

项目前身是 sethkarten/pokeagent-speedrun,改名并泛化为现在的形态。

ARC-AGI-3 移植

社区移植版 feng-rrRay/Continual-Harness-ARC-AGI-3(MIT)把同一套方法搬到不提供规则与领域知识的交互式推理 benchmark 上。需要 Python ≥ 3.12、uvARC_API_KEYthree.arcprize.org)和 GEMINI_API_KEY

uv run main.py --agent=continualharness --game=ft09
复制全文 生成海报 Continual Harness 智能体 Agent PokeAgent 自改进

推荐文章

程序员茄子在线接单