AIエージェントでシステムを構築するとき、昔はコンテキスト!コンテキスト!って言ってたけど、最近はハーネス!ハーネス!って言っている気がする。また数か月後には別の名前になっているかもしれない。まぁコンテキストエンジニアリング にしろ ハーネスエンジニアリング にしろ、AIエージェントを使うときの思考のフレームワークみたいなものなので、言葉遊びの域を出ない気もする。
ハーネスとは、動物を制御したり人を安全に固定するベルトやストラップを指すので1、AIエージェントを制御するとか、そういうニュアンス
コンテキストエンジニアリングについては昔メモしたので、今回はハーネスエンジニアリングのメモ
Agent = Model + Harness
LangChainのブログでは、AIエージェントのモデル以外の全てがハーネス、と言い切っている。
A harness is every piece of code, configuration, and execution logic that isn’t the model itself.
(ハーネスとは、モデル本体以外のすべてのコード、設定、および実行ロジックを指します。)
エージェントに望む動作(修正)を行うための動作を機能セットとして落とし込む、これをハーネス設計としている。この記事を引用する形で、ThoughtworksのBirgitta Böckeler氏はもう少しハーネスエンジニアリングを体系化している。

ブログ記事の図1より: 「ハーネス」という用語は、文脈によって意味が異なる
ハーネスには事前に予測するガイド型(フィードフォワード)と動作後にわかるフィードバック型があり、それらの学習ループを回すことが大事。
OpenAI’s Harness Engineering
本家OpenAIが、コーディングを全てAIエージェントに任せられるようにソフトウェア開発全体を設計し直したエピソードを、ハーネスエンジニアリングとしてまとめている
- コードは全てCodexが記述した。人が書く時間の1/10ほどの時間と推定される
- 人間は、大きな目標をデザインやコードに分解し、エージェントがそれらタスクのブロックを解決する 環境づくり に集中した
- 人間によるQAチェックがボトルネックになってきたため、アプリ起動や監視メトリクスもAIエージェントが参照できるようにし、エージェントを強化した
- 巨大な単一のドキュメントではなく、簡潔な
AGENT.mdと構造化されたdocs/がエージェントに検証させるときのコツ - エージェントのコンテキストの外にある情報は「知らない情報」と同義(例: Slackでの人間の議論など)。全てアーティファクトとしてエージェントがアクセスできるようにし、場合によっては車輪の再発明も行う
- アーキテクチャ制約(例: スキーマ検証、命名規則など)はエージェントにとっては拡張機能の1つ
- 高スループットを活用した開発へと変わる。とにかく修正、待機は悪
- 運用していくとエージェントは既存の設計を再実装しがちなため、定期的にガーベージコレクションするような"黄金律"をリポジトリに入れた
記事中では「ハーネス」という単語は"Evaluation harnesses"でしか使われていないが、「AIエージェントを制御・運用する仕組み(ハーネス)を設計することがソフトウェア開発の本質になった」という意図で、ハーネスエンジニアリング、というタイトルなんだろう、多分。
AutoHarness
チェスなどのゲームの「ルールを遵守する」というハーネスをAIエージェントに記述させる AutoHarness というフレームワークがある。DeepMindの研究で、ICLR2026のRSI Workshopにて採択されている。
行動ポリシーの更新をツリー上で管理し、Thompson samplingで探索し、ルール遵守をコード化する。ルールという前提条件があれば、プランニングを利用してハーネスそのものも生成できる、という一例。
まとめ
- Context Engineering(再掲): AIシステムがタスクを理解し、実行するために使用する情報を、設計・構造化・最適化する手法
- Harness Engineering: AIエージェントが安全・確実にタスクを実行できるように、ツール・制約・検証・フィードバックループを設計・構造化・最適化する手法。
Akshay氏ははっきりと、プロンプト、コンテキスト、ハーネスという3層のエンジニアリング構造があると明記している2。同氏の、各ベンダーのハーネスツールの考え方の違いの表が面白かった。
同氏投稿より、各社ハーネス実装早見表2



