SSD Nodes Learn 🎉 VPS $5.50/月〜
ガイド Matt Connor著者 Matt Connor ・更新日 2026-08-21

エージェントハーネスとは?モデルやフレームワークとの違い

エージェントハーネスは、モデルをエージェントとして動かす周辺プログラムです。ループ、ツール、権限、セッション状態を管理し、モデルやフレームワークとの違いを整理します。

エージェントハーネスとは

エージェントハーネスは、language model の周囲で動作し、それをエージェントに変えるプログラムです。モデルを繰り返し呼び出すループ、モデルが呼び出せるツールの定義、呼び出しを実行するかどうかを決める権限ルール、ターン間で保持されるセッション状態、作業を行う作業ディレクトリを管理します。内部のモデルは交換できます。

最後の文が重要です。モデル単体は質問に答えますが、利用者のことは保持しません。ハーネスはモデルに次の処理を尋ね、モデルが要求したコマンドを実行し、結果を返して、再び尋ねます。この繰り返しを、一般に「エージェント」と呼びます。周辺の用語がまだ曖昧な場合は、ツールを選ぶ前にAI エージェント、LLM、アシスタントの違いで用語を整理できます。

ハーネスはモデルではありません

ベンダーが両者を1つのブランド名で提供しているため、混同されます。

dsh と DeepSeek は異なる製品です。13 August 2026 に MIT licence で github.com/deepseek-ai/deepseek-harness から公開された DeepSeek Harness は、マシンにインストールする Node プログラムです。DeepSeek models は、API(application programming interface)の背後で提供される重みです。dsh を別のベンダーのモデルに向けても動作します。ハーネスが必要とするのは、メッセージを受け取り、tool calls を返すものだけだからです。

Claude Code と Claude も同じ関係です。Claude Code はハーネスです。ループ、権限システム、ファイルおよび shell ツールを備えたターミナルプログラムです。Claude は、Claude Code がデフォルトで呼び出すモデルファミリーです。Codex と Gemini CLI も同じように分かれています。

毎回このテストで判別できます。ハーネスをインストールします。モデルを呼び出します。ディスク上にバージョンがあり、ホームディレクトリに設定ファイルがあるものはハーネスです。その設定ファイル内の文字列で、deepseek-chat のようなものがモデルです。

実際のループの動作

ハーネスのループが 1 回進む流れは次のとおりです。ハーネス間のほぼすべての違いは、この 5 つの手順の内部にあります。ゆっくり読んでください。

  1. ハーネスは、ここまでの会話とツール定義の一覧をモデルに送信します。
  2. モデルはテキストを返すか、いずれかのツールを呼び出す要求を返します。
  3. ハーネスは、その要求を権限ルールに照らして確認し、実行するか、停止して確認を求めます。
  4. ハーネスはツールを実行し、出力と終了コードを取得します。出力が非常に長い場合は切り詰めます。
  5. ハーネスはその結果を会話に追加し、手順 1 に戻ります。

日常の使用でハーネスごとの差が最も表れるのは手順 3 です。すべてのコマンドの前に確認を求めるハーネスは安全ですが、操作が煩雑になります。確認を一切求めないハーネスは、いずれモデルが誤認したパスに対して破壊的なコマンドを実行します。現在の本格的なハーネスには、中間的な設定があります。確認なしで実行するコマンドの allowlist と、それ以外の操作を確認するプロンプトです。

残りの差は手順 1 にあります。会話はターンごとに長くなりますが、モデルのコンテキストウィンドウには上限があります。そのためハーネスは、何を削除し、何を要約し、何をファイルに書き出して後で読み戻すかを決める必要があります。同じモデルを操作する 2 つのハーネスが異なる品質の作業結果を出す主な理由は、この判断にあります。

現在の多くのハーネスは、MCP (model context protocol) を介して外部ツールを接続します。これは、MCP に対応する任意のハーネスにツールを公開する標準方式です。そのため、1 つの統合で複数のハーネスから利用できます。VPS 上で MCP サーバーを実行するでは、この側面を扱います。

Agent harness と agent framework

新しい harness が登場するたびに、この疑問が出てきます。しかし、ベンダーごとに見解が異なるため、回答も一致しません。ここでは、実務で通用する整理を示します。

framework は、import して使うライブラリです。ループを自分で記述し、モデルを呼び出すタイミングを決め、ツールの結果も自分で処理します。よく知られた例は LangChain です。構成要素を使い、コードで agent を組み立てます。

harness は、実行して使うプログラムです。ループはすでに実装され、ツールも用意され、権限モデルにもデフォルト設定があります。最初のコマンドで動作する agent を利用でき、その後に設定を調整します。

通常は、インストール後の使い方で判断できます。インストール後にコードを書くなら framework です。インストール後に対話するなら harness です。

この境界については、実際に見解が分かれています。最も明確な根拠は LangChain 自身のドキュメントです。2026 年 8 月時点で、同ドキュメントは Deep Agents を LangGraph 上に構築された「意見の反映された、必要な機能をすべて含む」framework と説明しています。一方、langchain-ai/deepagents リポジトリは自らを「必要な機能をすべて含む agent harness」と呼んでいます。どちらの説明も妥当です。Deep Agents はimportして使う Python SDK(software development kit)なので、インストールテストではライブラリに分類されます。しかし、十分なデフォルト動作が組み込まれているため、harness と同じように使われています。Microsoft は 2026 年 8 月に harness とホスト型 agent を一般提供に移行しました。これは、この語が単なる専門用語ではなく、現在は製品カテゴリになっていることを示しています。

そのため、代わりに作業内容を予測できる質問を考えてください。ループを自分で書くなら、そのループを所有することになります。再試行、コンテキストの削減、権限確認、処理内容の記録を自分で管理します。ループが製品に組み込まれている場合は、それらすべてについて他者が決めた方法を引き継ぎます。そのため導入は大幅に速くなりますが、後から変更するのは難しくなります。

チャットウィンドウとハーネスの違い

チャットウィンドウとハーネスは、どちらもモデルの出力を表示します。違いは、処理を実行するコンピューターがどれかです。チャットウィンドウでは、モデルが実行するコードはベンダーのサンドボックス内で、アップロードしたファイルを対象に実行されます。セッションが終了すると、その内容は消えます。ハーネスは、起動したユーザーとして、起動元のマシン上でツールを実行します。対象は実際のファイルであり、環境には実際の認証情報が存在します。

利点とリスクは、この2文に集約されます。エージェントは、実際に作業を実行できるようになります。同時に、作業結果を削除することもできます。

実際に運用されているハーネス

この一覧の日付を 19 August 2026 としているのは意図的です。この分野は毎週変化しており、まとめ記事はすぐに古くなります。

  • Claude CodeCodex はベンダー提供のハーネスです。ターミナルを中心に構成され、デフォルトでは各ベンダー独自のモデルと連携し、権限処理が最も洗練されています。Claude Code、Cursor、Codex、Copilot の比較で詳しく説明しています。
  • DeepSeek Harness (dsh) は MIT ライセンスで提供され、「すべてがプラグイン」という考え方に基づいて構築されています。そのため、モデル、ツール、セッション、サンドボックス、ユーザーインターフェースをすべて交換可能な構成要素として扱えます。公開から 6 日後の 19 August 2026 時点で、GitHub のスター数は約 166,800 でした。
  • Hermes は Nous Research が提供する、コーディングツールではなく汎用の自律エージェントです。2026 年 2 月に MIT ライセンスでリリースされ、メモリとスキルを自分のマシン上のローカル SQLite データベースに保存します。VPS で Hermes をセルフホストするで手順を説明しています。
  • Omnigent はメタハーネスです。Claude Code や Codex などの他のハーネスを操作し、共有セッション、利用額の上限、オペレーティングシステムレベルのサンドボックスを 1 つの API の背後で提供します。マルチエージェントハーネスとしての Omnigentで、その利点を説明しています。
  • OneCLI はチーム向けのサンドボックス化されたハーネスです。ゲートウェイが外部向けリクエストに実際の認証情報を注入するため、エージェント自身が実際のキーを見ることはなく、プレースホルダーキーだけを扱います。

dsh のクイックスタートは 1 つのコマンドで実行できます。1 回実行するだけで、ハーネスとは何かを最も早く確認できます。マシンに Node.js が必要です。

npx @deepseek-ai/dsh web

これにより、http://127.0.0.1:3080 で Web UI(ユーザーインターフェース)が起動します。利用を依存する前に README を読んでください。dsh は自らを開発者プレビューと位置付け、互換性を壊す変更が行われると明記しています。VPS で DeepSeek Harness を実行するではサーバーへのインストールを説明し、そのアドレスが 127.0.0.1 で始まる理由ではループバックのデフォルト設定を説明しています。

ルーターはハーネスの上位に位置する

モデルルーターは、ハーネスとプロバイダー API の間に置くローカルプロキシです。代表的な例は Claude Code Router です。デフォルトでは 127.0.0.1:3456 にバインドし、Claude Code が本来ベンダーに送信するリクエストを受け付け、設定したプロバイダーへ転送します。ハーネス側では何も変わっていないように見えます。

モデルを切り替えられるためにルーターが存在するので、これはこの投稿の主張を裏付ける格好の例です。一方で、プロキシはすべてのプロンプトを確認し、すべてのプロバイダーキーを保持するため、リスクも集中します。便利な補助機能ではなく、インフラとして扱ってください。ハーネスが API キーとモデル設定を保持する場所も、1 つ下の層で同じ問題を扱います。

VPS 上でハーネスを実行すると変わること

ハーネスをノート PC から借りたサーバーへ移すと、4 つの点が変わります。

蓋を閉じても実行が続きます。 長時間のタスクは、移動中もバッテリー残量にも左右されません。tmux 内で起動し、セッションから切り離します。

tmux new -s agent
# start the harness, then press Ctrl-b and then d to detach
tmux attach -t agent

再起動後も実行を続ける必要があるものには、ターミナルセッションよりユーザーサービスが適しています。

loginctl enable-linger $USER
systemctl --user status my-agent.service

loginctl enable-linger は見落とされがちな部分です。これがないと、最後の SSH (secure shell) セッションを閉じた時点で systemd がユーザーのサービスを停止します。そのため、ログアウトするとエージェントが終了しますが、エラーは表示されません。systemd で dsh をヘッドレス実行するに unit ファイルがあります。そのサーバー上で 1 つのセッションが動作していれば、2 つ目を追加しても負担は増えません。また、同じサーバー上の 2 つの Claude Code セッションは相互にメッセージを送信できるため、朝に開始したセッションから、手作業で仲介しなくても別のセッションへジョブを渡せます。

鍵を保持します。 プロバイダーの鍵は、そのサーバー上の設定ファイルに保存されます。誰が読み取れるかを確認します。

ls -l ~/.config

ユーザーとして実行されるプロセスは、そのファイルを読み取れます。エージェント自身や、エージェントが実行する任意のプロセスも含まれます。

他のマシンに接続できます。 他のサーバーと同じプライベートネットワーク上にある VPS からは、エージェントがそれらのサーバーへ到達できます。これが VPS を使う目的であり、同時に被害範囲にもなります。

どこからでも接続できます。 ほとんどのハーネスは Web UI を公開し、多くの場合、理由があってループバックにバインドします。設定を確認します。

ss -tlnp | grep 3080

127.0.0.1:3080 は、サーバー自身だけが接続できることを意味します。0.0.0.0:3080 は、アドレスを見つけた誰でも接続できることを意味します。バインドアドレスを変更するのではなく、SSH トンネルを使ってループバック UI に接続します。

ssh -N -L 3080:127.0.0.1:3080 you@your-server

次に、ノート PC のブラウザーで http://127.0.0.1:3080 を開きます。通信は SSH セッション内を通るため、インターネットに新たな接続口が公開されることはありません。

どの性質も、そのままセキュリティ上の根拠になります

攻撃者の視点で、4 つの性質をもう一度読み直してください。

常時稼働するため、モデルがパスを誤認した瞬間を誰も監視していません。鍵を保持するため、読み取り可能な設定ファイルが 1 つあるだけで、プロバイダーのアカウント全体を取得されます。ほかのマシンに接続できるため、プロンプトインジェクション、つまりエージェントが読む Web ページやファイルに埋め込まれた指示によって、データベースホストへの経路が生まれます。どこからでも到達できるため、パスワードなしで 0.0.0.0 に bind した Web UI は、公開インターネット上の shell と同じです。

どの場合も対策は地味で、毎回同じです。自分のアカウントではなく、エージェント専用の権限なしユーザーアカウントを作成します。

sudo adduser --disabled-password --gecos "" agent

Web UI は loopback のままにし、SSH 経由でアクセスします。ジョブを完了できる範囲で、エージェントに最小限の認証情報だけを与えます。AI エージェントから秘密情報を除外する方法では、この点を適切に扱います。監視しない状態で実行する処理には、慎重に構成したマシンよりも使い捨てのマシンが適しています。使い捨て VM で coding agent を実行する方法VPS 上で Claude Code を安全に実行する方法はいずれも、この方式を採用しています。

エージェントハーネスは必要ですか?

作業が一度に1つの質問へ回答するだけなら、チャットウィンドウで十分です。ハーネスを使っても、監視が必要なループが増えるだけです。実際のファイルを対象に多くの手順を実行するタスクや、ユーザーが眠っている間も継続する必要があるタスクでは、ハーネスの導入効果が出ます。

この分野の多くは、まだ発展途上です。dsh は2026年8月時点で、自身の README に developer preview と記載しています。その他の製品も変化が速いため、今日作成した設定ファイルを来月編集する必要が生じる可能性があります。そのため、構成は小さく再現可能に保ち、変更内容を記録してください。同じ抑制はループ内でも役立ちます。動作する最小限の変更を行うようエージェントを促すスキルを使えば、無人実行の終了後にも差分を実際に読み取れます。まずは1台のサーバーで1つのハーネスを使い、1つのジョブと1つの限定的な鍵だけを与えてください。その最初のジョブが1週間問題なく動作してから、アクセス範囲を広げます。現在実行する価値のあるセルフホストエージェントは、最初の1つを選ぶ際の妥当な候補です。

FAQ

エージェントハーネスとは、簡単に言うと何ですか?

モデルを取り囲むプログラムです。モデルはテキストを生成し、ツールの使用を要求します。ハーネスは、モデルに繰り返し問い合わせるループを実行し、モデルが要求したツールを実行し、許可なしで実行できるツールに関するルールを適用し、ターン間のセッション状態とファイルを保持します。モデルを入れ替えてもハーネスが動作することが、両者が別のものである最も明確な証拠です。

Claude Code はモデルですか、それともハーネスですか?

Claude Code はハーネスです。ループ、権限システム、組み込みのファイル操作およびシェルツールを備えたターミナルプログラムです。Claude は、Claude Code がデフォルトで呼び出すモデルファミリーです。同じ分離は DeepSeek Harness (dsh) にも当てはまります。これはインストールする Node プログラムであり、DeepSeek models は API 経由で提供されます。ハーネスはマシンにインストールします。モデルはネットワーク経由で呼び出します。

エージェントハーネスとエージェントフレームワークの違いは何ですか?

フレームワークは、インポートしてコードから利用するライブラリです。そのため、ループ、リトライ、コンテキスト処理は自分で実装します。ハーネスは実行するプログラムです。そのため、これらはデフォルト設定付きで組み込まれており、自分で実装するのではなく設定します。実際には境界は曖昧です。LangChain's Deep Agents はインポート可能な SDK ですが、2026 年 8 月時点で、そのリポジトリはこれを機能を一通り備えたエージェントハーネスと呼んでいます。自分でループを実装するのかを考えてください。その答えによって、状況に合う用語が決まります。

エージェントハーネスの実行に VPS は必要ですか?

いいえ。このページで挙げるすべてのハーネスはラップトップで実行できます。サーバーを使うと、4 つの点が変わります。蓋を閉じてもエージェントが実行を続けられること、常時稼働するマシンにキーを保持できること、他のサーバーへ接続できること、そしてどのデバイスからでも同じセッションに戻れることです。これらはすべてセキュリティ上の考慮事項でもあります。そのため、エージェント専用のユーザーアカウントを用意し、Web UI は 127.0.0.1 にバインドしたままにしてください。

同じハーネス内で別のモデルを使用できますか?

通常は使用できます。これがハーネスの定義上の特性です。多くのハーネスでは、設定にモデル名と base URL を指定します。そのため、別のプロバイダーを指すように変更するだけで済み、書き直す必要はありません。ハーネスが変更を受け付けない場合は、Claude Code Router のようなローカルルーターをハーネスとプロバイダーの間に配置できます。これは要求を変換し、デフォルトで 127.0.0.1:3456 にバインドします。このプロキシはすべてのプロンプトを参照し、すべてのキーを保持するため、取り扱いには注意してください。