harness2(Harness²)は Google Research のチームが 2026-10-08 に GitHub で公開した研究コードだ。エージェントを動かす外側の仕組み(ハーネス)を、正解を見せないまま書き換えて磨く。2026-10-18 時点で Star は 1.1k、fork 93、コミットは3件、タグとリリースは無い。Linux に入れ、認証情報なしで動くデモとテストまでを動かした。

WHAT IT REPLACES何を代替するか

ハーネスの手直しを改善役のモデルに回させる

人がハーネスを直す

失敗ログを読んでプロンプトを書き換える

  • 直す部品と理由は人の頭の中
  • 次のタスクに教訓が残りにくい

Harness²

モデルの重みは固定、外側だけ書き換える

  • 8つの部品を候補として試走して比べる
  • 採用版と教訓をドメインごとに保存
出典: google-research/harness2 README(1cfe254・2026-10-18確認)

30秒でわかるHarness²(2026-10-18時点)

  • ・正体:Google Research の論文 arXiv:2610.14224 の実装。Apache-2.0、pyproject の版は 0.1.0。Google の公式製品ではないとREADMEに明記
  • ・何ができる:1タスクごとにハーネスの編集を提案し、同じタスクで試走し、違いから合成する。採用した版と教訓はドメインごとの書庫に残し、次のタスクで読む
  • ・実測:harness2-demo が2.45秒で完走(試走28回・改善役32回)。テスト5件も通過。モデルを呼ぶベンチマーク実行は未検証
  • ・注意:ベンチマークを回すには Vertex AI と ADC 認証が要り、1タスクあたり実行 4×k 回・改善役 3×k 回の API 費用がかかる
名前 何か この記事との関係
Harness²(google-research/harness2) エージェントのハーネスを自動で磨く研究コード 本記事の対象
Stokke Harness² ストッケのベビーチェア用ハーネス 別物。日本語で harness2 を検索すると上位を占める
Harness(Harness Inc.) CI/CD などソフトウェア配信の商用サービス 別物

エージェントの枠組み全体の選び方はAIエージェントフレームワーク比較2026|LangGraph・CrewAI・Dify等9種をStar数・実コードで検証にまとめている。

Harness²(harness2)の考え方と書き換える部品

READMEはハーネスを「モデルをエージェントとして動かすための周りの仕組み」と定義する。プロンプト、道具、メモリ、スキル、指揮の流れがそれに当たる。そのハーネスを最適化する作業を Harnessing と呼び、Harness² はそれを2段の再帰で回す。人が手で進めるハーネスエンジニアリングのうち、部品の書き換えと比較を自動にする。

段 何をするか 何を見て決めるか
タスク内の再帰 編集を提案(Propose)→ 同じタスクで試走(Probe)→ 合成(Compose) 実行どうしの振る舞いの違い。正解のフィードバックは使わない
ハーネス改善の再帰 採用したハーネスと、証拠のある教訓を「改善ハーネス」に足す 次の同じドメインのタスクが読む

人がハーネスを直すと、どの部品をなぜ変えたかは人の頭の中に残る。Harness² は、変えた部品・試走で何が起きたか・採用の理由をファイルに書く。次のタスクの改善役はそのファイルを読む。

人の手直しに代わって Harness² が書き換えるのは次の8部品で、モデルの重みには触れない。

役割 部品
文脈を組む システムプロンプト・ガードレール・メモリ・スキル
道具の口 道具の説明(tool guidance)・スクリプト
委任 サブエージェント
中間処理 プラグイン

同じ「エージェントが自分を直す」発想でも、Warp の事例は人が整えた手順書をエージェントが日々更新する運用の話だった(WarpのAIエージェントが毎日自己改善する仕組み)。Harness² は候補を実際に走らせて比べる手続きと、その記録の形をコードで固定した点が違う。

harness2の仕組み:Propose–Probe–Compose と改善ハーネス

TWO LEVELS OF RECURSION1タスクの流れ

1タスクごとに提案・試走・合成して、教訓を書庫に戻す

書庫

改善ハーネス

  1. 基準版を実行
  2. 編集を提案
  3. 同じ課題で試走
  4. 違いから合成正解は見せない
  5. 成果物を選ぶ
  6. 教訓を記録

タスク内

Propose–Probe–Compose

--k 1 で1回。parallel は幅、sequential は深さ

タスク間

採用版と教訓を保存

同じドメインの後続タスクだけが読む

出典: README・docs/EXPERIMENTS.md・harness2/core/library.py(1cfe254)

再帰の回し方は2通りあり、--k が試行の予算になる。

指定 動き(docs/EXPERIMENTS.md)
--k 1 提案・試走・合成を1回。採用の後に振り返り
--k K --mode parallel 全体に効く候補(invariant)と領域向けの候補(domain)を K 個ずつ試走し、K 通りに合成する。幅を探る
--k K --mode sequential 提案・試走・合成を K 回続け、前の結果と証拠を次に持ち越す。深く詰める

改善ハーネスの実体は Markdown とファイルの木だ。harness2/core/library.py の説明どおり、デモの出力には次の形で残った。

パス 中身
library/k2/agg/accounting/INDEX.md そのドメインの採用例の索引。各エントリの「cue(どんな時に効くか)」が並ぶ
…/harnesses/ledger-1/harness/ 採用したハーネスの全ファイル。要約ではなく木ごと持つ
…/harnesses/ledger-1/EXPERIENCE.md 採用の理由・各編集の結果・教訓(cue / lesson / evidence / confidence)

書庫は実行の名前とモードごとに分かれ、同じドメインの先に終わったタスクだけが読む。改善役に渡す材料からは、採点基準や模範解答のファイルを名前で弾く仕掛けがある(leak_globs。デモでは reference_answer.txt)。

harness2をインストールしてデモを動かす

README の手順どおりに入れた。モデルの認証情報は使っていない。

git clone --depth 1 https://github.com/google-research/harness2.git
cd harness2
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e '.[render]'
harness2-demo --output runs/demo --k 2

導入は3.3秒で、追加されたのは openpyxl・python-pptx など8パッケージだった(本体の必須依存は空)。デモは Local demo: 2 tasks completed; 0 failed. を出して2.45秒で終わった。

デモの題材は、正負の金額が混ざった台帳の合計だ。基準版のスクリプトは正の値だけを足すので、ledger-1(100.25・−20.10・5.00)で Total: 105.25 を返す。改善役が if amount > 0 を消す編集を出し、採用版は Total: 85.15 を返した。EXPERIENCE.md には「credits と debits が混ざる台帳では両方の符号を足す」という教訓が残り、2件目の ledger-2 は書庫に1件ある状態から始まった(library_entries_before が 1)。

注意点として、デモの改善役と選択役は台本だ。選択役は台帳を足し直して合う出力を選ぶので、本番の「正解なしで比べる」判断を再現したものではない。デモが確かめているのは、試走の回数、ファイルの置き場所、書庫の読み書きという配管の部分になる。

採用版と教訓は次のコマンドで読める。

cat runs/demo/library/k2/agg/accounting/harnesses/ledger-1/EXPERIENCE.md

出力には adopted: agg1、各編集の結果(verdict: helped)、cue・lesson・evidence・confidence の4項目が並ぶ。

続けて、ベンチマーク側の入口を設定なしで実行した。

harness2-setup lab --dry-run
harness2-check --bench lab

--dry-run は取得・パッチ適用・環境作成の計画を表示して終了コード0で終わる。LAB の本体は harveyai/harvey-labs で、OpenCode は v1.14.18 に固定して取得する。harness2-check は HARNESS2_SOLVER_MODEL is required など8件を挙げて終了コード1になった。モデルは呼ばずに、設定と依存の不足だけを見ている。

検証環境:Linux(x86_64)・Python 3.12.3・uv 0.11.32/2026-10-18

  • ・commit 1cfe254(2026-10-14 の「Fix arXiv link」)を clone
  • ・demo の出力:試走28回・改善役32回・2タスクとも ok
  • ・python -m pytest -q tests:5 passed(pytest は別に入れた)
  • ・README は cp .env.example .env と書くが、1cfe254 には .env.example が含まれていない(MANIFEST.in には記載がある)

未検証の範囲

  • ・モデルを呼ぶすべての経路(改善役・実行役・採点役)と、論文の改善幅の再現
  • ・harness2-setup の実行と、JobBench・LAB・WorkBuddy-Bench のデータ取得
  • ・Codex 実行役と harness2-bridge

harness2でベンチマークを回すのに要るもの

WHAT IT TAKES本番で要るもの

キー無しで動くのはharness2-demoだけ

harness2-demo(台本の改善役・モデル呼び出しなし): demo

ベンチマークを回すときに要るもの:

  1. Vertex AI のプロジェクトと ADC 認証
  2. Node.js 20+・OpenCode か Codex・ベンチのデータ
  3. 1タスクで実行 4×k 回・改善役 3×k 回の API 費用
  4. 採点基準の取得を防ぐ通信の遮断

LAB は全 1,143 タスク。まず --max-tasks 1 から

出典: docs/SETUP.md・docs/EXPERIMENTS.md・harness2 --help(1cfe254)
ベンチマーク 中身 追加で要るもの 上流
JobBench 職種ごとの専門業務 Hugging Face から公開データを取得(アカウント不要) Job-Bench/job-bench-eval
LAB 法務の業務。全1,143タスク Pandoc・Poppler harveyai/harvey-labs
WorkBuddy-Bench オフィス・Web・コード Docker。ライセンスに地域の制限があり、使う前に読むよう案内がある Tencent/workbuddy-bench

複数の実行環境をまとめて動かす仕組みが要るなら、Omnigentとは|Claude CodeやCodexを差し替えるメタハーネスのほうが近い。Harness² は実行環境の差し替えではなく、ハーネスの中身を書き換える研究だ。

費用

harness2 --help は、1タスクあたり実行役の試走が 4×k 回、改善役のセッションが 3×k 回と書く。--max-tasks はドメインごとの上限で、全体の上限ではない。利用額の上限を決めるオプション --max-usd は Issue #4 で提案されている段階だ。

モデル

同梱の設定は Vertex AI の Gemini を実行役と採点役に使う。改善役は Vertex 経由の Claude か Gemini を選べる。Codex を実行役にするときは、harness2-bridge が LiteLLM で Gemini を Responses API の形に変える。ほかの Responses API 互換エンドポイントも環境変数で指定できる。

通信の制限

リリースは実行役の通信を制限しない。Codex はサンドボックスを切って動く。docs/EXPERIMENTS.md によると、検証の実行中に Codex が指示なしで JobBench の採点基準 RUBRICS.json を取得した例があった。評価の前に huggingface.co・github.com などをネットワーク側で遮断するよう求めている。

手作業のハーネス調整とHarness²の比較

観点 人が手で直す Harness²(parallel) Harness²(sequential)
変える対象 人が決めた部品 8部品の候補を全体向け・領域向けに K 個ずつ 前の版を K 回続けて直す
判断の材料 人の評価や正解 同じタスクでの試走の違い(正解は使わない) 同上。証拠を持ち越す
残るもの コミットや人のメモ 採用版の木と EXPERIENCE.md 同上
費用 人の時間 1タスクで実行 4×k 回・改善役 3×k 回 同上
合う場面 少数の決まったタスク 候補を広く試したい 1つの方向を詰めたい

使い分けの基準は「正解を用意できるか」と「API 費用をどこまで払えるか」の2つだ。採点基準を書ける業務なら、正解を使う評価のほうが判断ははっきりする。Harness² が狙うのは、READMEの言う「開かれた世界」、つまりハーネスを設計した時点で想定していないタスクが来る場面になる。完成品のハーネスを1つ選んで使いたいなら、Strands harnessとはのような既製の構成のほうが手早い。

論文の報告値と、Harness²を試す前の判断

README の要約によると、論文では3つの業務ベンチマークと4つのモデル・ハーネスの組み合わせで評価した。Harness² の1ステップで、GLM-5 と Gemini 3.5 Flash の成績が元のハーネスより上がったという。

ベンチマーク 論文の報告(最大の改善幅)
WorkBuddy-Bench 11.5 ポイント
JobBench 4.5 ポイント
LAB(部分合格率) 11.8 パーセントポイント

いずれも論文の報告値で、本記事では再現していない。タスク内の再帰の予算を増やすとさらに伸びた、ともREADMEは書く。

この記事の結論

  • ・向いている人:Vertex AI の予算があり、エージェントのハーネス改善を研究として測りたい人。まず harness2-demo で書庫の形を見て、--max-tasks 1 から始める
  • ・待ったほうがよい人:自分の業務タスクにすぐ当てたい人。独自タスクの入口と利用額の上限は Issue で提案されている段階で、タグ付きのリリースもまだ無い

参照ソース

・google-research/harness2(公式リポジトリ) — README・docs/SETUP.md・docs/BENCHMARKS.md・docs/EXPERIMENTS.md・LICENSE(commit 1cfe254、2026-10-18確認)
・Harness²: Recursive Agent Harnessing for an Open World(arXiv:2610.14224) — 論文(数値はREADMEの要約から引用)
・harness2 の Issues — #4(–max-usd の提案)・#5(–bench local の提案)、2026-10-18確認
・harveyai/harvey-labs・Job-Bench/job-bench-eval・Tencent/workbuddy-bench — 各ベンチマークの上流