目次
Harness²は、エージェントの実行環境をタスクごとに改善し、その改善で得た知見を次のタスクにも活かすフレームワークだ。モデルの重みは固定したまま、プロンプトやツール設定などを見直し、ベンチマークで効果を確かめられる。
要点#
- 実行環境の改善を「タスク単位」と「継続的な学習」の二段階で行う。
- 候補を試して振る舞いの違いを比べ、正解データなしで設定を組み直す。
- OpenCodeとCodexの実行環境、JobBench・LAB・WorkBuddy-Benchに対応する。
- 小規模なデモはモデルの認証情報なしで実行できるが、モデルを使うベンチマークにはAPI費用がかかる。
- ネットワーク制限がない実行環境では、評価前にベンチマークの解答や採点基準へのアクセスを防ぐ必要がある。
Harness²が改善するもの#
エージェントの「ハーネス」は、モデルを動かすための設定や道具立てを指す。Harness²では、システムプロンプト、ガードレール、メモリ、ツールの案内、サブエージェント、スキル、スクリプト、プラグインの8項目を編集できる。
こうした設定は、モデルに渡す情報や使えるツール、作業の進め方を左右する。モデル自体を学習し直さず、タスクに合わせて周辺の仕組みを調整するのがこのプロジェクトの狙いだ。
2段階で改善する#
タスク単位の改善では、「Propose–Probe–Compose」の手順を使う。まずハーネスの変更案を作り、同じタスクで実行して影響を調べる。次に、実行結果の振る舞いを比べて設定を組み直す。正解データからのフィードバックではなく、実行ごとの差を手がかりにする。
もう一段は、改善の知見を次のタスクに引き継ぐ仕組みだ。採用したハーネスと、実行結果に裏付けられた教訓を保存し、以降の改善に使う。毎回ゼロから設定を考えるのではなく、タスクをまたいで蓄積する設計になっている。
並列と逐次を選ぶ#
再帰の回数は--kで指定する。--k 1なら、Propose–Probe–Composeを1回実行する。--k K --mode parallelでは、汎用候補とドメイン別候補を試し、複数の構成案を作る。--k K --mode sequentialでは、前のステップで改善したハーネスと証拠を次のステップに渡しながら、順に磨いていく。
候補を広く探したいなら並列、ひとつの構成を段階的に深めたいなら逐次が向く。実験結果では、GLM-5とGemini 3.5 Flashでベースのハーネスを上回り、WorkBuddy-Benchで最大11.5ポイント、JobBenchで最大4.5ポイント、LABの部分合格率で最大11.8ポイントの向上が報告されている。これは掲載された実験条件での数字であり、別のモデルやタスクでも同じ改善が出るとは限らない。
まずはデモを動かす#
動作確認には、Linux、Python 3.12、uvを使う。リポジトリを取得した後、仮想環境を作ってデモを実行する。デモでは2種類の再帰モードを試せて、モデルの認証情報は要らない。
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2ベンチマークを試す場合は、Node.js 20以降、Google Cloud CLIなどの準備が加わる。Vertex AIのプロジェクトとモデルを設定し、たとえばLABのタスクをひとつ実行するなら、次の流れになる。
harness2-setup lab
harness2-check --bench lab
harness2 --bench lab --k 1 --mode parallel \
--only-domains antitrust-competition --max-tasks 1
harness2-judge --bench lab --k 1 --mode parallel
harness2-report --bench lab --k 1 --mode parallelモデルを使った実行にはAPI費用がかかる。まず--max-tasks 1のように対象を絞り、--dry-runでモデルを呼び出さずにタスク選択を確認してから実行すると、費用を抑えやすい。
評価前に確認すること#
評価の条件は、改善実行と採点・レポートでそろえる。ベンチマーク、実行環境、対象範囲、--k、モード、seedが違うと、比較の前提が崩れる。条件を変えて再実行する場合は、結果の保存先も分ける。通常はruns/以下に結果が残り、同じコマンドを再実行すると途中から再開できる。
また、実行環境のネットワークアクセスは制限されておらず、Codexはサンドボックス無効で動く。公開ベンチマークの解答や採点基準にアクセスできる可能性があるため、評価前にネットワーク制限を設定する必要がある。
次の一歩#
まずgoogle-research/harness2 ↗を開き、Linux環境でharness2-demo --output runs/demo --k 2を実行して、並列・逐次の結果を確認しよう。
出典: https://github.com/google-research/harness2
目次
