Harness Router

Harness Router

Protocol Lattice · コーディング · 生産性向上

Harness Router は、すでに動かしている AI エージェントハーネスの中で次のツールを選ぶ。キャッシュした判断、Jev ルーティング、任意の MCTS を組み合わせ、実行そのものは元のループに残す。

Harness Router の画面プレビュー

Harness Router について

What Is Harness Router

Harness Router は、エージェントのループ内でひとつだけ判断するオープンソースの Python パッケージだ。いま実行すべきツールはどれか。目標、現在の観測、直前のアクション、利用可能なツール一覧を受け取り、ツール名と信頼度、そして判断をプランナーに返すかどうかのフラグを返す。

役割の線引きが肝心だ。ハーネス側は引数の組み立て、権限確認、承認、再試行、実際の呼び出しを受け持つ。Harness Router はそこに一切触れない。ホストが公開しているライフサイクルの継ぎ目、たとえばプロンプトのフックやツール結果のコールバックに座り、次の一手を決める瞬間に助言を渡す。Protocol Lattice が MIT ライセンスで公開しており、現行版は alpha 表記だ。

対象はかなり狭い。ツールのカタログが大きくなるほど、同じ観測に対して複数のツールがもっともらしく見える。名前と信頼度を添えて一本に絞れば、ハーネスは受け入れるか捨てるかを決められる。コードを書いたりテストを走らせたり、完了の定義を決めたりはしない。

導入前にプロジェクト自身のベンチマークを読むべきだ。テストした Codex 連携ではトークン使用量と実行時間が増え、判断の多くはプランナーに戻った。ルーティングは自動的な高速化ではない。開発者自身がそう書いている。

Getting Started

  1. Python 3.11 以降で uv を使って CLI を入れる。uv tool install --force --with 'mcp>=2,<3' 'git+https://github.com/Protocol-Lattice/harness-router.git@main' を実行すれば、har、harness-router、harness-router-mcp が使えるようになる。
  2. ハーネスのプロセスが読む環境に OPENROUTER_API_KEY を設定する。既定モデルは typesafe/jev-1.13 で、キーがない場合はプランナーへのフォールバックが返る。
  3. 使うプロバイダーの hook インストーラーを実行し、省かれた 2 つのアダプターを手でコピーする。Codex と Claude Code は hooks フォルダに pre_decision.py と stop.py を必要とし、インストーラーは設定を書き換える前にバックアップを取る。
  4. 新しいセッションを開く。起動フックがツール一覧を拾い、プロンプトと結果のコールバックが選択を先に計算し、検証フックは保存済みの判断をモデルへ再問い合わせせずに照合する。

AIツール情報

Harness Routerの料金、対応プラットフォーム、性能を簡単に確認できます。

無料プランはい
有料プラン$0 (MIT) plus Jev usage billed through OpenRouter
プラットフォームPython 3.11+ (CLI, MCP server, library); hook adapters for Codex, Claude Code, ohmypi, Antigravity, DeepSeek Harness
開発元Protocol Lattice
カテゴリコーディング · 生産性向上
リリース日Sep 2026
最終更新Sep 2026
サイト訪問数N/A
サイト世界ランキングN/A
API提供状況はい

こんな人におすすめ

このツールが最も力を発揮するユーザー、タスク、シーン。

ユーザー

  • Codex や Claude Code で長い作業を回す開発者。モデルへの要求前に選択を計算するため、エージェントはカタログを読み直さず、名前の決まったツールで一歩を始められる。
  • MCP のツール登録が 20 件を超えたチーム。24 件を上回ると既定設定ではカテゴリを先に選び、その中からツールを選べるため、プロンプトが短く済む。
  • 自前のエージェントループを組む人。Python API、CLI、MCP サーバーが同じ判断経路を使うので、ハーネスに繋ぐ前にルーティングを試せる。

タスク

  • 似た読み取り系ツールのどれかを選ぶ。`read_file`、`search_code`、grep 系がそろって観測に合う場面でも、信頼度付きの一案が返り、モデルに丸投げしない。
  • テスト失敗のあと立て直す。結果コールバックが失敗を新しい観測に変え、次の判断に反映する。
  • ルーティングと素のプランナーを比べる。同じタスクをフックありとなしで走らせ、トークン、ツール呼び出し、通過率を並べる。

シーン

  • 同じ状態が繰り返すデバッグ作業。フックのキャッシュは目標、観測、直前のアクション、カタログをキーにするため、変化のない状態では直前の判断を再利用できる。
  • ツール一覧が増え続けるプロジェクト。カテゴリ優先のルーティングが Jev に渡す前に候補を絞る。既定値はまさにこの場面向けに調整されている。
  • AI ツールルーティングの初回検証。まず MCP サーバーか CLI の単発呼び出しで試し、数字を見てから実際のプロジェクトにフックを入れる。

主な機能

信頼度付きの次のツール決定

呼び出しごとにツール名、カテゴリ、信頼度、フォールバックのフラグが返る。ホストはこの値と 2 つのしきい値を比べる。0.85 以上ならそのまま採用、0.60 を下回ればプランナーに戻す。ルーターを信じる場面と無視する場面が、はっきり分かれる仕組みだ。

信頼の度合いに応じた 3 モード

hybrid は確度の高い選択を採用し、不確実なときや処理済みのプロバイダーエラーではプランナーに戻す。jev_only はフォールバックしきい値を超えた選択をすべて受け入れ、エラーは表に出す。planner_only はモデル呼び出し自体を飛ばす。ハーネスのコードを触らず、要求ごとに切り替えられる。

モデルを呼ぶ前に効く判断キャッシュ

フックの橋渡し層は、目標、観測、直前のアクション、圧縮したツール一覧から状態キーを作る。同じ状態なら保存済みの選択を再利用し、既定のキャッシュはセッションごとに 512 件を 300 秒保持する。ライブラリ側には、目標とツール群が変わらないときの高信頼選択だけを扱う小さなキャッシュもあり、obvious_cache_size=0 で切れる。

OpenRouter 経由の Jev ルーティング

Jev は会話モデルではなく判断モデルだ。状態と閉じた選択肢を受け取り、文章ではなく確率を返す。ツール選びのような分類作業に向いている。既定モデルは typesafe/jev-1.13 で、自分のキーを使って OpenRouter から呼ぶ。ツールが 24 件を超えると、カテゴリを先に決めてから中のツールを選べる。

任意の MCTS ツール探索

最初の一手が後続の結果で変わる場合、モンテカルロ木探索が効く。予測した状態と遷移のグラフを渡し、シミュレーション回数を 1 から 4,096、深さを最大 8 に設定する。探索はシミュレーション上だけで動き、実ツールには触れない。返るのは最初のアクションと主要変化の系列だ。シミュレーターがなければ、選択はプランナーに戻る。

5 つのハーネス向けアダプター

Codex、Claude Code、ohmypi、Antigravity、DeepSeek Harness には、それぞれのホストが公開するコールバックに合わせたアダプターがある。Codex と Claude Code はセッション開始、プロンプト、ツール結果、実行前検証のフックを使う。ohmypi は稼働中の登録を読み、有効なツール群を差し替える。Antigravity は呼び出しと結果のコールバックを使う。共有の Stop フックは、新しく確度の高い判断が残っていればもう一歩を要求できる。

メリットとデメリット

メリット

  • MIT ライセンスで、アカウントもサブスクもループ内のホストサービスもない。ソース全体を監査し、書き換えられる。
  • フォールバックが既定の結末になる。信頼度不足、キー欠落、プロバイダーエラーはプランナーに制御を返す。間違ったツール呼び出しを押し通さない。
  • 判断層ひとつで 5 つのハーネスに加え、Python API、CLI、MCP サーバーをまかなえる。ホストごとに選択ロジックを書き直さずに済む。
  • 公開ベンチマークが一部の連携について否定的な結果を載せている。珍しい姿勢であり、残りの文書の信頼度を上げる。
  • キャッシュとカテゴリ優先ルーティングは、ルーターが価値を出す 2 つの場面に狙いを絞っている。状態の反復と、大きすぎるツール一覧だ。

デメリット

  • テストされた Codex 構成では、ルーティングによってメインモデルのトークンが 105.9% 増え、平均時間は 115.8 秒から 228.9 秒に伸びた。58 件の判断のうち 54 件はプランナーに戻っている。稼働中の案件で有効にする前に計測が要る。
  • ルーティングのたびに目標、観測、ツール説明が OpenRouter へ送られ、セッションファイルにもその文章が `.harness-router/` 配下に残る。資格情報や秘密情報を入力に含めるべきではない。
  • プロジェクトは alpha で、タグ付きリリースはまだない。Codex と Claude Code のアダプターはインストーラー後も手作業のコピーが必要だ。
  • MCTS は副作用のないシミュレーターを用意できて初めて成立する。多くのチームはキャッシュと Jev の経路だけを使い、探索の層までは踏み込まない。

よくある質問

エージェントのループで次のツールを選ぶ。目標、現在の観測、利用可能なツールを渡すと、ツール名と信頼度、またはプランナーへのフォールバックが返る。引数の組み立てと実行はハーネス側の仕事のままだ。