ハーネスエンジニアリングとは?その仕組みを解説
AIハーネスとは何か、そしてハーネスエンジニアリングがAIエージェントにできることをどう形づくるのかを、わかりやすく解説するガイドです。

ハーネスエンジニアリングとは
ハーネスエンジニアリングとは、AIツールのハーネス、つまりAIモデル以外のツールのあらゆる部分を構築する作業のことです。
モデルとはAIシステムのことで、大量のテキストで学習しているため、言語を読み書きできます。AIモデルの例としては、OpenAIのGPT、AnthropicのClaude、GoogleのGeminiなどがあります。
モデルは単体では、テキスト(場合によっては画像や音声)を受け取ってテキストを返すことしかできません。過去の会話を覚えておくことも、最新の情報を調べることも、コードを実行することもできません。そのため、モデルがどの情報を受け取るか、どのアプリを使えるか、何を許可されているか、そしてその作業がどのようにチェックされるかを管理するハーネスが必要になります。
基本的なチャットアシスタントにもハーネスは必要です。モデルは回答するとすぐにそのやり取りを忘れてしまうため、ハーネスが会話の記録を保持します。誰かがパリについて質問し、続けて「その人口は?」と尋ねた場合、ハーネスは両方の質問をまとめてモデルに送ります。だからこそ、モデルは「その」がパリを指すと理解できるのです。
同じモデルで構築された2つのツールの性能が大きく異なる理由の一つが、ハーネスエンジニアリングです。たとえば、ある独立したテストでは、研究者がモデル(GPT5)を同じにしたままハーネスだけを変更したところ、コーディングテストでのモデルのスコアが最大11%変動しました。
AnthropicやOpenAIなどのAIモデル開発企業は、Claude CodeやCodexといった自社のAI製品向けにハーネスを構築しています。また、AI製品を開発する企業は、自社が選んだ基盤モデル向けにハーネスを設計しています。AIツールを使う人々も、ハーネスの一部を形作っています。多くのツールでは、常設の指示を追加したり、アプリを接続したり、ツールが実行に移る前にどのアクションに自分の承認が必要かを選んだりできます。
AIエージェントのためのハーネスエンジニアリング
どのAIツールにもハーネスはありますが、ハーネスエンジニアリングが特に重要になるのは、AIエージェントを扱う場合です。エージェントは、競合他社を調査して結果をスプレッドシートにまとめるといった複数ステップのタスクを自律的に処理し、そのすべてのステップをハーネスが実行します。そのため、昨年の価格を取得してしまうなど、ハーネスがミスをすると、その後のステップにも影響が及びます。
ほとんどのエージェントハーネスは、主に次の6つの要素で構成されています。
1. エージェントループ
エージェントループとは、タスクを1ステップずつ前に進め続ける、ハーネス内のコードです。
AIモデルは、タスクを完了するために必要な次のステップを決め、ツール呼び出しを書きます。ツール呼び出しとは、ウェブ検索などハーネス内のツールを指定し、そのツールに何をさせるかを伝える短いリクエストです。
ハーネスはそのリクエストを検出して検索を実行し、結果をモデルが参照できる情報に追加します。モデルはそれを読み、次に何をするかを決めます。
2. コンテキスト管理
モデルは学習の過程で一般的な知識を身につけますが、その知識は学習が終了した時点で止まっています。企業のファイル、今日のニュース、会話の中で先に話された内容など、目の前のタスクに固有の情報は含まれていません。
こうした情報については、モデルはコンテキストウィンドウに頼ります。コンテキストウィンドウとは、指示、クエリ、それまでの会話、検索結果など、応答のたびにハーネスがモデルに渡すテキストのことです。
ウィンドウに収まるテキストの量には上限があります。さらに、ウィンドウがいっぱいになる前でも、モデルは長い入力の途中に埋もれた情報を見落とすことがあります。
そこでハーネスがコンテキスト管理を担い、各ステップに必要な情報だけを選びます。たとえば、競合5社の価格を比較するタスクであれば、ハーネスはウェブサイト全体ではなく各社の料金ページだけを含めるかもしれません。長いタスクでは、ハーネスがそれまでのステップの詳細な記録を短い要約に置き換えることもできます。これにより、モデルはその履歴でウィンドウを埋めることなく、自分が何をしたかを把握し続けられます。
3. ツール
ツールとは、モデルが求めるアクションを実行するコードです。各ツールは、ウェブ検索、ウェブページを開いて読む、コードの実行、ファイルの編集など、1種類のアクションを担当します。モデルがツール呼び出しを書くと、ハーネスはそれを適切なツールに渡し、結果を返します。
多くのハーネスにはコネクタも含まれています。コネクタは、ユーザーが許可したアクセス権を使って、メール、カレンダー、共有ドライブなどの特定のアプリにエージェントをつなぐツールです。たとえばカレンダーのコネクタがあれば、エージェントは会議の時間を提案する前に相手の空き状況を確認できます。
4. メモリ
メモリとは、あるセッションから次のセッションへと引き継がれる保存済みの情報です。ハーネスはセッション中に、ユーザーの好みやプロジェクトの進捗状況などの短いメモを保存します。次のセッションの開始時に、ハーネスはそれらのメモをコンテキストウィンドウに追加するため、モデルは新しいクエリを読む前にメモを読むことになります。たとえば、エージェントが週次レポートを最初からやり直すのではなく、前回の続きから再開できるのはこの仕組みのおかげです。
5. 権限
権限とは、エージェントが何にアクセスでき、何を実行できるかに関するルールです。アクセスルールは、エージェントが開けるファイル、アプリ、ウェブサイトを定めます。承認ルールは、メッセージの送信や購入など、どのアクションが人の承認を待つ必要があるかを定めます。
こうしたルールの一部は、エージェントを開発する企業がハーネスのコードで設定します。そのうえで、組織の管理者が独自のルールを追加でき、個々のユーザーはどのアカウントを接続するかといったことを選べます。
6. 検証
検証とは、エージェントの作業が人の手に渡る前にチェックするコードです。検証では2種類のチェックを使います。
- 固定ルール:毎回同じように合否が決まる具体的なテストです。たとえば、レポート内のすべての数値が、エージェントが実際に読んだドキュメントに記載されていることを確認します。
- 別のAIモデルによるレビュー:作業内容を読んで評価します。重要なポイントが抜けている要約など、ルール化しにくい問題を見つけられます。
すべてを検出できる単一のチェックはないため、ハーネスでは通常、両方を組み合わせます。チェックで問題が見つかると、ハーネスは問題の説明をモデルのコンテキストウィンドウに追加し、タスクをエージェントループに戻します。モデルは問題を修正して再試行するため、多くのミスはユーザーが結果を目にする前に修正されます。
ハーネスエンジニアリングの例
クライアントとの打ち合わせの準備
タスク:アカウントマネージャーがエージェントに、明日のクライアントとの打ち合わせに向けて、未解決の課題と議題案をまとめたブリーフィング資料の作成を依頼します。
ハーネスの役割:
- エージェントはメールのコネクタを通じて、マネージャーの受信トレイからそのクライアントとのメッセージを検索します。
- 権限により、メールの閲覧はできますが、送信はできません。
- コンテキスト管理により、受信トレイ全体ではなく、そのクライアントとの直近3か月分のメッセージだけがモデルに渡されます。
- エージェントループが検索と読み取りを数回繰り返し、モデルは見つけた内容を未解決の課題ごとに整理します。
- 続いて検証により、ブリーフィング資料内のすべての課題が実際のメールにひも付いていることを確認します。
想定される結果:マネージャーは、すべてのポイントについて元のメールをたどれる1ページのブリーフィング資料を受け取ります。
月次売上レポートの更新
タスク:オペレーション責任者がエージェントに、月次売上レポートを今月の数値で更新するよう依頼します。
ハーネスの役割:
- メモリが先月のセッションのメモを読み込みます。そこには、レポートの形式や、数値を千単位で四捨五入してほしいという責任者の要望が含まれています。
- ファイルツールが、チームの共有ドライブにある売上スプレッドシートを開きます。
- 権限により、エージェントはレポートの下書きを編集できますが、元のスプレッドシートは編集できません。そのため、元の数値が誤って変更されることはありません。
- 検証により、レポートの合計値がスプレッドシートと一致しているかを確認します。
想定される結果:ユーザーが改めて説明しなくても、先月と同じ形式でレポートが届きます。
共有受信トレイの仕分け
タスク:サポートチームがエージェントに、午前中に届いた問い合わせをトピック別に仕分け、よくある問い合わせへの返信の下書きを作成するよう依頼します。
ハーネスの役割:
- エージェントループが、受信トレイのメッセージを1件ずつ処理していきます。
- メッセージごとにモデルがトピックのラベルを選び、ハーネスがメールのコネクタを通じてそのラベルを適用します。
- タスクの開始時に、ハーネスはチームが承認した返信テンプレートをガイドとしてコンテキストウィンドウに追加します。これにより、モデルは各下書きをテンプレートに基づいて作成します。
- 承認ルールにより、チームの誰かが確認して送信するまで、すべての返信は下書きのまま保留されます。
想定される結果:チームは、問い合わせが仕分けされ、返信がレビュー待ちになった状態で1日を始められます。
ウェブサイトのバグ修正
タスク:開発者がコーディングエージェントに、チェックアウトボタンが動作しなくなるバグの修正を依頼します。
ハーネスの役割:
- エージェントはサンドボックス内で作業します。サンドボックスとはコードの隔離されたコピーで、そこでの変更が公開中のウェブサイトに影響することはありません。
- コードツールにより、モデルはファイルを読み取り、編集できます。
- 変更のたびに、検証によってプロジェクトの自動テストが実行されます。
- テストで失敗があれば、その結果は新しい情報としてモデルに戻されます。
想定される結果:エージェントはテストに合格するまで修正の調整を続けます。その後、開発者が変更を確認してから本番環境に反映します。
ハーネスエンジニアリング、プロンプトエンジニアリング、コンテキストエンジニアリングの違い
プロンプトエンジニアリングは、1つのクエリを作成し、最適化する作業です。コンテキストエンジニアリングは、モデルが参照するすべての情報を管理する作業です。ハーネスエンジニアリングは、モデルが動作するシステム全体を設計し、改善するプロセスです。
用語 | 主な担い手 | 競合調査タスクでの例 |
プロンプトエンジニアリング | クエリを書くすべての人 | 「競合他社ごとに1行、料金プランごとに1列」と依頼する |
コンテキストエンジニアリング | ハーネスを構築する人、およびファイルやテンプレートを添付するユーザー | 各競合他社の料金ページと、チームのスプレッドシートテンプレートをモデルに渡す |
ハーネスエンジニアリング | AI製品を開発する企業、および設定や好みを選択し、情報をアップロードするチームやユーザー | エージェントが使えるツール、承認が必要なアクション、作業のチェック方法を決める |
ユーザーがAIハーネスに影響を与える方法
エージェントハーネスの大部分はエージェントを開発する企業が提供しますが、多くのAI製品では、カスタム指示、接続されたアプリ、承認などの設定を通じて、ユーザーがその一部を調整できます。
ユーザーは次の4つの方法でエージェントハーネスを形作り、エージェントの結果を改善できます。
1. 常設の指示
常設の指示とは、ユーザーが一度書いておくメモで、ハーネスがあらゆるタスクの開始時にコンテキストウィンドウに追加できるようにするものです。自分が誰で何をしているのか、どのような文章を好むのか、クライアントの月次レポートのような定期的な仕事のルールなど、本来ならクエリのたびに繰り返すことになる内容は、設定しておく価値があります。
多くのAI製品では、常設の指示を2つのレベルで設定できます。アカウント全体の指示は、表記の好みなど、すべての作業に当てはまる内容に適しています。プロジェクトの指示は、特定のクライアントやワークフローに適しており、ある案件向けのガイダンスが別の案件に持ち込まれることはありません。
常設の指示はチャットアシスタントでもエージェントでも同じように機能しますが、エージェントのほうがより強く依存しています。チャットでは、回答のたびにAIを修正できます。エージェントは、誰かが作業内容を確認するまでに多くのステップを進めることがあるため、事前に与えた指示は、途中でエージェントを方向づける数少ない手段の一つです。
効果的な常設の指示の書き方
- 「私はソフトウェア企業のマーケティングマネージャーです。わかりやすい英語で書き、要約は200語以内にし、米国式のスペルを使ってください」のような短い指示から始めましょう。
- AIがミスをしたら、指示を追加しましょう。チームが正確な数値を必要としているのにAIが数値を丸め続ける場合は、その旨を1行追加します。
- 指示は具体的にしましょう。「正確であること」よりも「数値は丸めず、正確な値を示すこと」のほうが効果的です。
- 1行ごとにコンテキストウィンドウの容量を使うため、リストは短く保ち、役に立たなくなった行は削除しましょう。
2. 接続されたアプリ
接続されたアプリは、メール、カレンダー、共有ドライブなど、ユーザーがすでに使っているツールとAI製品をつなぎます。アプリを接続すると、AIはチャットに貼り付けられた内容だけでなく、ユーザー自身の情報を使って作業できるようになります。
メールのスレッドから会議のブリーフィング資料を作成したり、共有ドライブ上のドキュメントを要約したりするなど、タスクがそれらのアプリ内の情報に依存する場合は、接続を設定しておく価値があります。
アプリを安全に接続する方法
- 接続を1つ追加するごとにエラーが起こる可能性も増えるため、タスクに必要なアプリだけを接続しましょう。
- 読み取り専用のアクセスが用意されている場合は、それを選びましょう。たとえば、会議のブリーフィング資料を準備するエージェントに必要なのはメールの閲覧であり、送信ではありません。
- 製品が対応している場合は、プロジェクトごとに接続を設定しましょう。たとえばPerplexityでは、各プロジェクトで使用するコネクタを選択できます。
- 使わなくなったアプリは忘れずに接続を解除しましょう。
3. 承認設定
承認設定では、AIが実行に移る前に、どのアクションが人の承認を待つ必要があるかを決めます。承認の一部は製品に組み込まれており、製品によっては、ほかにどのアクションに承認が必要かをユーザーが選べるものもあります。
承認ルールの設定方法
- メッセージの送信、購入、ファイルの削除など、取り消しができない操作には承認を必須にしましょう。
- 承認が必要な項目は最小限に絞りましょう。エージェントが小さなステップのたびに承認を求めると、ユーザーは内容をよく読まずに承認するようになってしまいます。
4. 基準とチェック
ほとんどのAI製品には、あらかじめいくつかの基準が組み込まれています。たとえばPerplexityは回答に引用元を添えるため、それぞれの主張を検証できます。ユーザーが設定する基準は、チームが好むレポート形式など、製品が単独では知り得ない情報を補うものです。
AIの作業に基準を設定する方法
- 定型的な作業にはテンプレートを用意し、AIが埋めるべき決まった構成を与えましょう。
- チームが高く評価した過去の成果物の例を共有し、AIがそのトーンや詳しさに合わせられるようにしましょう。
- すべての数値の横に出典リンクを付けるよう指示しましょう。
- 初期の結果は入念に確認し、繰り返し見つかる不足点は新たな常設の指示として追加しましょう。
Perplexityのエージェントハーネスへのアプローチ
Perplexity Computerはモデルに依存しないハーネス上で動作し、20以上の高度なモデルを1つのシステムに統合しています。各タスクをサブタスクに分割してサブエージェント(それぞれが1つの部分を担当する個別のエージェント)に割り当て、各作業をそれに適したモデルに振り分けます。
指示、ファイル、コネクタの設定方法については、Perplexityプロジェクトのガイドをご覧ください。
よくある質問
ハーネスエンジニアとは?
ハーネスエンジニアは、AIモデルが確実に作業をこなせるようにするシステムを設計・保守する人です。具体的には、エージェントが使う新しいツールを追加したり、エージェントが同じミスを繰り返す原因を突き止めたり、タスクを完了する前に実行するチェックを厳しくしたりします。標準的な職種名ではありませんが、今後変わる可能性もあります。この仕事は通常、AI企業やエージェントを開発するチームのソフトウェアエンジニアが担っています。なお製造業では、同じ名称が、自動車や機械の内部にある束ねられたケーブル、つまりワイヤーハーネスを設計する人を指します。
エージェントハーネスとは?
エージェントハーネスとは通常、AIエージェントのうちモデル自体を除くすべてを指します。これには、エージェントループを実行し、コンテキストを管理し、ツール呼び出しを実行し、メモリを保存し、権限を適用し、エージェントの作業結果が人に届く前にチェックするコードが含まれます。
すべてのAIツールにハーネスはあるのですか?
はい。基本的なチャットアシスタントでさえ、会話の流れを把握するためにハーネスに依存しています。モデルは以前のメッセージを単独では記憶できないためです。
開発者は、API(あるプログラムが別のプログラムにリクエストを送信できるようにする接続)を通じて、自分のソフトウェアからリクエストを送ることでモデルを利用することもできます。その場合は、開発者自身のコードがハーネスの役割を果たします。
モデルが進化すれば、ハーネスは不要になりますか?
より優れたモデルでは段階的な指示があまり必要なくなるかもしれないため、現在ハーネスが担っている役割の一部は縮小する可能性があります。しかし、モデル単体ではテキストをテキストに変換することしかできません。インターネットに接続することも、他のアプリにアクセスすることもできません。ファイルへのアクセス、操作の実行、承認ルールの適用はすべてモデルを取り巻くソフトウェアで行われるため、モデルがどれほど高性能になっても、こうした役割はハーネスに残り続けるでしょう。