VPSでClaudeのAIエージェントを構築する方法
Claudeを推論の中核、VPSを実行環境として使う方法を解説します。Messages API、tool use、MCPの役割と、自分で管理するエージェントループの設計が分かります。
Claude でエージェントを構築するとは
Claude でエージェントを構築するとは、Claude を推論の中核として使い、ループ、ツール、データを自分のサーバー上で管理することです。Claude が実行内容を決定し、VPS がそれを実行します。タスクと現在の状態を Claude に送信すると、Claude は回答またはツール使用の要求を返します。コードでツールを実行し、その結果を Claude に返すと、ジョブが完了するまでループが続きます。インターネット経由で呼び出すサービスが推論を担います。それ以外のすべては自分で管理します。
この分離が利点です。モデルを運用せずに最先端レベルの推論を利用でき、ツールは自分が所有するハードウェア上で実行されるため、エージェントがアクセスできる対象を完全に制御できます。すでに最初の Claude プログラムを構築している場合は、VPS 上で最初の Claude アプリを構築するガイドで、このチュートリアルの基礎となる手順を確認できます。
Claude が中核を担う: Messages API
Claude へのすべての呼び出しは、1 つのエンドポイントである Messages API を経由します。これまでの会話と、エージェントが使用できるツールの一覧を送信すると、Claude は次のメッセージを返します。そのメッセージは、最終回答か、ツール呼び出しの要求のいずれかです。自分で構築する方法では、独立した「agent API」はありません。ツールの使用はこの単一エンドポイントの機能であり、その周囲のループは自分で実行します。
Claude は呼び出し間で状態を保持しません。つまり、Claude 自身は何も記憶しません。各リクエストには会話全体を含めます。コードで履歴を保持し、各ターンで送信するため、長いセッションでは各ターンのコストが前のターンより多くのトークンになります。これは単純な制限というより、設計上の選択です。状態が自分のサーバーに保存されるため、Claude に見せる内容を正確に決められます。また、タスクに関する情報が、自分で管理できない場所に保存されることもありません。ただし、プロンプトは増え続けます。Claude のコンテキストウィンドウでは問題なく処理できますが、同じループ内のローカルモデルでは処理できません。そのため、長いプロンプトの切り詰めを止めるには Ollama の num_ctx を増やす必要があります。
Tool use はエージェントループです
Claude を使うエージェントループは、簡単に説明できます。使用するツールを含むリクエストを送信すると、Claude はタスクを読み取り、処理が必要な場合は、ツール名と入力値を指定したツール使用リクエストを返します。コードでそのツールを実行し、次のリクエストで結果を Claude に返します。Claude は結果を読み取り、別のツールを要求するか、最終回答を作成します。ツールの要求を停止した時点で、タスクは完了です。
このループは数行のコードで手作業により記述できます。実際、多くの人がこの方法を使います。処理の流れを把握しやすく、制御もしやすいためです。公式 SDK には、ループを代わりに実行する tool runner も用意されています。ツール関数を渡すと、SDK が Claude の呼び出し、ツールの実行、結果の返却を、Claude が処理を完了するまで繰り返します。どちらの方法でも、基本的な構造は同じです。runner は、ループを自分で記述する手間を省くだけです。ループがまだ抽象的に感じられる場合は、runner を使う前に最小限のループを記述してください。これは、AI エージェントをゼロから学ぶための段階的な学習パスで、他のすべての基礎となる手順です。
エージェントの構築方法と VPS への適合性
Claude エージェントを構築する方法は3つあります。実行する仕組みの範囲がそれぞれ異なります。
1つ目は、独自のツールを使うコードから Claude API を呼び出す方法です。ループを自分で実装するか、SDK の tool runner を使用し、全体を VPS でホストします。ツール、データ、セキュリティを完全に制御でき、サーバー上の通常のプログラムとして実行できるため、一般的な選択肢です。このガイドの大部分は、この方法を前提としています。
2つ目は Claude Agent SDK です。これはコーディングエージェントである Claude Code を、基盤として利用できるライブラリにしたものです。ファイルの読み書き、shell コマンドの実行、検索に対応する完全なエージェントループと組み込みツールが含まれているため、これらを最初から組み立てる必要がありません。独自のサーバーでも実行できるため、ハーネスを自分で構築せずに、ファイルと shell を扱える高機能なエージェントを使いたい場合に VPS とよく適合します。ファイルを読み取り、shell コマンドを実行するエージェントを無人で動かすには、実行前に封じ込めが必要です。サーバー上で Claude Code を安全に実行する方法では、権限システム、サンドボックス、分離オプションを説明します。
3つ目は Managed Agents です。ループを Anthropic が実行します。デフォルトでは、エージェントのツールは Anthropic がホストするサンドボックス内で実行されるため、エージェントのワークスペースは VPS ではなく Anthropic のインフラ上に置かれます。2026年10月11日時点では、まだベータ版ですが、セルフホスト型のサンドボックスオプションを使用できます。これにより、ループは Anthropic 側に置いたまま、独自サーバー上の worker process でツール呼び出しを実行できます。運用作業を最小限に抑えたい場合や、ループ自体を自分のマシンで実行する必要がない場合は、Managed Agents を選択してください。残り2つの方法では、エージェント全体がサーバー上で動作します。このガイドの以降の内容は、その構成を扱います。
MCP でツールを接続する
どの方法を選んでも、エージェントを実際のシステムに接続する必要があります。そのための整理された方法が Model Context Protocol です。MCP は、ツールとデータをエージェントに公開するためのオープン標準です。サービスごとに連携処理を手作業で実装するのではなく、必要な機能をすでにツールとして提供している MCP server を Claude に指定します。MCP server は、同じ VPS 上で小規模なサービスとして実行できます。各 server には必要なアクセス権だけを与えます。詳しくは VPS 上で MCP server を実行する で説明します。
モデルの選択
Claude には複数のモデルがあり、選択では性能、速度、コストのバランスを取る必要があります。2026年10月11日時点のラインアップは、Claude Opus 5.5 (claude-opus-5-5)、Claude Sonnet 5.5 (claude-sonnet-5-5)、Claude Haiku 5.5 (claude-haiku-5-5) です。Anthropic は、ほとんどのワークロードの出発点として Claude Opus 5.5 を推奨しており、長時間実行するエージェント型のコーディングやナレッジワーク向けに設計しています。Claude Sonnet 5.5 は、より安価で高速なバランス型の選択肢です。Claude Haiku 5.5 は最も高速かつ安価で、単純な処理を大量に実行する場合に適しています。これらより上位には Claude Fable 5.1 (claude-fable-5-1) があります。これはすべての顧客が利用できる中で最も高性能なモデルで、難しい推論や長期的なエージェント処理に適しています。Claude Opus 4.8 や Claude Fable 5 などの旧モデルも引き続き利用できますが、現在は legacy として掲載されています。コードでは正確なモデル識別子を使用し、日付は追加しないでください。
実用的には、これらを組み合わせて使います。定型的なツール呼び出しは安価なモデルに任せ、難しい判断は高性能なモデルに任せます。リクエスト内でモデルは単なる文字列として指定されるため、切り替えは1行の変更で済みます。まず高性能なモデルをデフォルトにし、速度やコストを品質のわずかな差より重視する処理では、より低コストのモデルに調整してください。
VPS で強化されたサービスとして実行する
エージェントは実行され続けて初めて役に立ち、隔離されて初めて安全になります。VPS では、端末で手動起動したプログラムではなく、強化された systemd サービスとしてエージェントを実行することで、この両方を実現できます。サービスとして実行すると、ブート時に起動し、クラッシュ時に再起動し、journal にログを記録します。強化された構成では、必要なアクセス権だけを持つ非特権ユーザーとして実行するため、バグや不適切な指示による影響範囲を制限できます。サービス unit では、プロセスがアクセスできる対象、使用できるメモリ、CPU、タスク数を制限できます。ただし、エージェントがそのアクセス権をどのように使うかまでは判断できません。そのため、残りの制御はエージェントの harness 自体に組み込む必要があります。別の stack でこれを担うのが、インストールする価値のある DeepSeek Harness プラグインです。支出上限、ツールごとの権限ルール、prompt injection のスキャンなどを提供します。
最も重要なルールは、Claude API key をサーバー側に置くことです。この key はすべての call の料金支払いと認証に使われるため、エージェントのユーザーだけが読み取れるファイルに保存し、環境変数としてサービスに読み込ませます。コード、repository、ブラウザーからアクセスできる場所には決して置かないでください。ここでエージェント用の完全な強化済み service unit を生成します。
次に、サーバー自体を保護します。VPS の SSH hardening と同じように、SSH は key 認証だけにし、管理に使うアカウントへのアクセスを制限します。構築中に interactive session からエージェントを操作したい場合は、tmux で VPS 上の Claude Code を実行する方法も役立ちます。同じサーバーで 2 つ目の session を開けば、2 つのエージェント間で作業を受け渡すことができます。これにより、各 pane の間で指示を毎回手動で移す必要がなくなります。これらの概念を特定の model に依存しない形で理解したい場合は、姉妹ガイドの VPS 上で独自の AI agent を構築する方法で基礎を確認できます。
terminal coding assistant を使いたい場合は、VPS 上で coding AI agent を実行する方法で Aider と Goose を説明しています。
FAQ
エージェントの構築には、どの Claude モデルを使うべきですか?
Claude Opus 5.5 (claude-opus-5-5) から始めてください。Anthropic は、ほとんどのワークロードにこのモデルを推奨しています。必要に応じて調整します。Claude Sonnet 5.5 (claude-sonnet-5-5) は、ほとんどの処理でより安価かつ高速です。Claude Haiku 5.5 (claude-haiku-5-5) は、単純な処理を大量に実行する場合に適しています。Claude Fable 5.1 (claude-fable-5-1) は、最も難しいタスクに対して最も高い能力を発揮します。一般的には、定型処理に安価なモデルを使い、難しい判断には高性能なモデルを使います。モデルの切り替えは 1 行の変更で済むためです。
エージェント全体を自分の VPS で実行しますか。それとも Anthropic が実行しますか?
方式によって異なります。Claude API に対して独自のループを記述する場合、または Claude Agent SDK を使用する場合、エージェントはすべて VPS 上で実行され、Anthropic に送信されるのはモデル呼び出しだけです。Managed Agents を使用する場合、ループは Anthropic が実行します。デフォルトでは、ツールを実行する sandbox も Anthropic がホストするため、サーバー上で実行する部分は少なくなります。2026 年 10 月 11 日時点で beta の self-hosted sandbox オプションを使うと、ループは Anthropic 側に残したまま、ツールの実行を自分のマシンへ移せます。エージェントを完全に自分のマシン上で実行する場合は、最初の 2 つの方式のいずれかを使用してください。
Claude API と Claude Agent SDK の違いは何ですか?
Claude API は、基盤となる Messages endpoint です。会話とツールを送信し、その周囲にエージェントループを自分で記述するか、SDK の tool runner を使って実行します。Claude Agent SDK は、構築用にパッケージ化された Claude Code であり、より高水準のライブラリです。完全なループと、組み込みのファイル、shell、search ツールを提供します。すべてを自分で定義したい場合は API を使用してください。実行基盤を自分で組み立てずに高機能なエージェントを使いたい場合は Agent SDK を使用してください。
サーバー上で Claude API key を安全に管理するにはどうすればよいですか?
サーバー側で管理し、コードから分離してください。エージェントの実行アカウントだけが読み取れるファイルに保存し、環境変数として service に読み込ませます。repository に commit したり、browser に公開したりしないでください。Claude へのすべてのリクエストはサーバーから送信されるため、key をユーザーのデバイスへ渡す必要はありません。そのため、server-run agent は client app に組み込んだエージェントより安全に保護できます。
Claude でエージェントを構築するには、モデルを self-host する必要がありますか?
いいえ。Claude では、API 経由で呼び出す hosted service としてモデルが提供されるため、GPU 上で実行するものはありません。VPS で実行するのはエージェントループ、ツール、データです。推論は Anthropic 側で実行されます。そのため、比較的小規模なサーバーでも高機能なエージェントを実行できます。完全にローカルなモデルを使いたい場合は、関連ガイドの「独自の AI エージェントの構築」で説明している self-hosted の方式を使用してください。