エージェントが途中で止まる、同じミスを繰り返す主因は、モデル不足よりハーネスの欠落です。ハーネスは、モデル以外のループ、ツール、検証、権限です。同じ重みでも、LangChain 公式 は Terminal Bench 2.0 を 52.8% から 66.5%(+13.7ポイント)まで動かしたと報告しています。自然言語のルールだけでは、確率的に破られます。

📑目次
  1. ハーネスはモデル以外の実行基盤である
  2. プロンプトとコンテキストの次に足す層
  3. GuidesとSensorsで失敗を仕組みに変える
  4. 同じモデルでもハーネスでスコアが動く
  5. テクノロジー現場で最初に足す制御を決めるチェックリスト
  6. よくある質問
  7. まとめ

テクノロジーの現場では、プロンプトを追加する前に、現在の実行基盤が何を許可し、何を検証しているかを書き出す方が早いでしょう。読後の一手はこれです。

  • 直近の失敗を1件選ぶ
  • Guide(作業前のルール)か Sensor(作業後の機械的チェック)のどちら不足かを判定する
  • 1つ足す

指示とガードと検証の分け方は、エージェントLoopを安全に回すハーネス設計 と同じ層です。


ハーネスはモデル以外の実行基盤である

エージェントはモデル単体ではありません。モデルは推論を供給し、実リポジトリで仕事を終わらせるのは周辺ソフトウェアです。Agentic Dev は、ハーネスを次の要素と定義します。

  • ループ
  • ツール
  • コンテキスト
  • メモリ
  • 回復
  • ガードレール

信頼性の尺度とは、監督なしで正しい仕事を終えられるかどうかです。Claude CodeやCodex CLIは、そのハーネスの具体例です。

Copilot Studioのハーネスが決めること

Microsoft Learn の Copilot Studio では、ハーネスはビルダーが設計したエージェントとモデルの間のランタイムです。次を決めます。

  • モデルをいつ呼ぶか
  • どのコンポーネントを送るか
  • 戻りをどう解釈するか
  • どのツールを呼ぶか

GitHub Copilot、標準機能、Copilotチャットでは、スキル、メモリ、ファイル対応、回復、請求がそれぞれ異なります。チャットハーネスの公開先は内部チームです。同じ「エージェント」という言葉でも、許可範囲は製品ごとに大きく違います。

モデルを差し替える前に、今使っている実行基盤が何を許可し、何を検証しているかを書き出してください。書き出せない場合は、失敗の原因をモデルに帰さない方が安全です。選定会議でモデル名だけが議題になるなら、ハーネスの列が空だと言えます。


プロンプトとコンテキストの次に足す層

プロンプトは1ターンの指示、コンテキストは見える情報です。どちらもハーネスの内側にあります。劇場で言えば台詞と舞台装置であり、建物と防災設備がハーネスです。指示を磨いても、危険コマンドの遮断やテストの差し戻しがなければ、同じ失敗が繰り返されます。

入れ子の3層と常時ロード規約

HP Japan は、プロンプト、コンテキスト、ハーネスを対立ではなく入れ子として整理します。AGENTS.md や CLAUDE.md は常時ロードのプロジェクト規約です。

OpenAI は、次の運用を書いています。

  • AGENTS.md を約100行の目次にする
  • 本体知識は versioned な docs/ に置く
  • 巨大マニュアルはすぐ腐る前提で短く保つ

Garry TanのCLAUDE.mdが約20,000行から約200行のポインタへ削られた例も、同じ方向性を示しています。

自然言語ルールは確率的に破られます。lint、テスト、rm -rfDROP TABLE の遮断は、ハーネス層の機械的制御です。プロンプト追加より、常時ロードの短いポインタと機械的停止を先に足してください。


GuidesとSensorsで失敗を仕組みに変える

作業前のGuides(feedforward)と作業後のSensors(feedback)は、両方とも必要です。

  • Guides だけだと結果を確認できません
  • Sensors だけだと同じ間違いを繰り返します

computationalとinferentialを分ける

Birgitta Böckeler(Martin Fowler、2026年4月2日) は、制御を次の2種に分けます。

  • computational: lint、型、テスト。ミリ秒〜秒、決定的
  • inferential: LLMレビュー。高コスト、非決定的

誤診断、過剰実装、指示の取り違えは、センサーでは確実に捕まりません。仕様が無い正しさは人間確認です。

GIGAZINE(2026年8月28日) は、同じミスをその場のチャット修正で終わらせず、ハーネス自体を改善すると整理します。Addy Osmani / O’Reilly(2026年5月15日) は、実失敗だけを次へ落とすラチェットを推奨します。

  • AGENTS.md の行
  • precommit フック

推測ルールは足しません。良い AGENTS.md の各行は、特定の失敗に辿れる必要があります。


セッションをまたぐ長時間タスク

長時間タスクでは、セッションをまたぐ仕組みが要ります。Anthropic は、次の手順を置きます。

  1. initializer が feature_list.json(passes:false)と init.sh / claude-progress.txt を置く
  2. 後続セッションは1機能ずつ進める
  3. 開始時にブラウザ E2E を走らせる

制約もあります。Puppeteer MCPはブラウザネイティブのalertを見られないため、その系統の失敗は残りやすいです。センサーが完了を証明できない領域は、完了扱いにしないでください。

テストをエージェント自身が書く場合、センサーが握り潰されるリスクは別問題です。実装と検証の分離は、AIコーディングエージェントのテスト改ざんを防ぐ記事 と重なります。繰り返した失敗を1件選び、Guide 不足か Sensor 不足かを判定して、1つだけ足してください。


同じモデルでもハーネスでスコアが動く

重みを変えずにハーネスだけを変えて順位が動いたという報告もあります。モデル待ちを第一手としない、という読みです。数字は条件付きです。自リポジトリの失敗ログに置き換えて読んでください。

公開数字は条件付きで読む

報告 固定したもの 変えたもの 数値 読み方の注意
LangChain deepagents-cli gpt-5.2-codex プロンプト・ツール・middleware Terminal Bench 2.0 52.8%→66.5%(+13.7pt)。Top30圏外→Top5 公式。89タスク。xhigh のみは 53.9%(タイムアウト)。Claude では同じ改善ループを回していない
HumanLayer / Osmani 引用 Claude Opus 4.6 ハーネス Claude Code 約33位 → 別ハーネスで5位 二次引用。順位はリーダーボード時点に依存
BSWEN(HP経由) 同一モデル重み scaffold SWE-Bench Pro 38%→60%(22pt) 公式論文ではなくブログ整理

出典(2026年9月時点):


LangChain公式が書いた手順

LangChain公式が書いた手順は簡潔です。

  1. トレースから失敗を集計する
  2. 完了前に検証を差し込む(PreCompletionChecklistMiddleware)
  3. 起動時に環境マップを注入する(LocalContextMiddleware)
  4. 同一ファイルへの編集回数で方針見直しを促す(LoopDetectionMiddleware)

よくある失敗は、解を書いたあと自分のコードを読み直し、テストなしで止まることです。直し方は次の通りです。

  1. 計画する
  2. テスト付きで作る
  3. タスク仕様と照合する
  4. 直す

xhigh だけを回すと 53.9% まで落ち、タイムアウトが理由です。high では 63.6% です。推論強度はハーネス変数です。


OpenAI社内実験は参考スケール

OpenAI の社内実験 は参考スケールです。手書き0行、約100万行、約1,500 PR、当初3名で 3.5 PR/人/日。金曜の20%をスロップ掃除に使っていた時期もあります。一般化は限定です。同じ投資なしに、同じ数字は出ません。


テクノロジー現場で最初に足す制御を決めるチェックリスト

全部を一度に作らないでください。観察した失敗に対して、機械的に止められるものから足します。差別化は、成熟ハーネスの上のパターン、スキル、レビュー、ゲート側です。合格基準の置き方は、社内AIエージェントのSkillsとEval設計 と接続します。

  1. 直近1ヶ月の失敗を10件書き出す(指示無視、目的喪失、同一エラー反復、完了嘘、危険コマンド)
  2. 各件を Guide不足 / Sensor不足 / 人間承認不足 に分類する
  3. Sensor 候補: テスト未通過なら完了禁止、lint 失敗でブロック、rm -rfDROP TABLE をハーネス層で拒否する
  4. Guide 候補: AGENTS.md / CLAUDE.md を短いポインタ(目安100〜200行)に削り、詳細は docs/ へ移す
  5. 人間承認: 本番デプロイ、顧客メール、高額決済、共有ファイル削除の前に止める
  6. 長時間タスクなら feature list、progress ファイル、セッション開始時の E2E を足す
  7. 新しい失敗が出たらラチェットで1行追加する。実失敗が無いルールは足さない

Copilot Studioを使う場合の選択も、失敗の種類に合わせて行います。

  • 多段階業務とファイル編集は GitHub Copilot ハーネス
  • FAQ・定型は標準
  • Microsoft 365 Chat 拡張はチャットハーネス

請求と公開範囲が変わります。来週レビューする項目は、「今月追加したSensorが実際に発火したか」です。発火ゼロなら、検知不足を疑ってください。テクノロジー運用の改善幅は、モデル世代ではなく、実際に発火したセンサー件数で測ってください。


よくある質問

Q1. プロンプトを長くすればハーネスは不要ですか?

不要ではありません。自然言語ルールは確率的に破られます。lint とテストが完了ゲートになります。


Q2. AGENTS.md に全部書けばよいですか?

いいえ。OpenAI は約100行の目次を推奨します。約20,000行まで膨らんだ例は、約200行のポインタへ削られました。


Q3. 公式の +13.7ポイントを、自チームの改善幅と思ってよいですか?

いいえ。Terminal Bench 2.0、gpt-5.2-codex、deepagents-cli の条件付きです。自リポジトリでは失敗分類から始めてください。


Q4. ユーザーが欲しい機能かどうかも、センサーで保証できますか?

できません。Böckeler は Behaviour を仕様+テスト+人手確認とし、意図の正しさはセンサー外と述べます。


Q5. 自前ハーネスをゼロから書くべきですか?

多くのチームは成熟ハーネスの採用が先です。Agentic Dev もその立場です。差別化はパターン、スキル、レビュー、ゲート側です。


Q6. Copilot Studio ならどれを選べばよいですか?

長時間の推論とファイル処理は GitHub Copilot、予測可能なルール会話は標準、社内 Microsoft 365 Chat 拡張はチャットです。請求が違います。


関連記事:

まとめ

ハーネスはモデル以外の実行基盤です。プロンプトとコンテキストの次に足す層です。Guides と Sensors を対で置き、実失敗だけをルールとフックに落とします。同じモデルでもベンチが動く公式数字はありますが、条件付きです。自チームは失敗10件の分類から始めてください。

次の一手は、繰り返している失敗1件を選び、Guide か Sensor を1つ追加し、来週そのセンサーが発火したかを見ることです。発火しなければ、ルール文ではなく検知を直してください。

krona23

著者

krona23

IT業界20年以上の実務経験を持ち、日本国内有数のPVを誇る大規模Webサービスで事業部長・CTOを複数社で歴任。Windows/iOS/Android/Webと技術の変遷を経験し、現在はAIネイティブへの変革に注力。DevGENTでは、AIコードエディタ・自動化ツール・LLMの実践的な使い方を日英西3言語で発信中。

DevGENT について →

コメントを残す

Trending

DevGENTをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む