広告枠を募集中 ご相談ください

Dockerを使用したAgentGPTのセルフホストとローカル・プライベートLLMエンドポイントの接続手順

365Finds Editorial
Wiki 記事 11,430 本収録

あなたの AI で 365 Wiki を使う

下のプロンプトをコピーして、普段使っている AI に貼り付け、そのまま質問してください。

完全版 Skill をダウンロード

まずはプロンプトでお試しください。よく使う場合は完全版 365Wiki Skill をインストールすると、毎回貼り付ける必要がありません。普段使う AI がなければ、Gemini や Microsoft Copilot のウェブ版でも使えます。

企業内インフラやローカルマシン上でAgentGPTをセルフホスト(自己ホスト)することにより、開発チームやセキュリティ担当者は、社外秘プロンプトや事業目標、機密データをパブリッククラウドのAPIに送ることなく自律型AIエージェント(Autonomous Agents)を実行できます。自律型エージェントはタスクの分解、実行結果の評価、追加タスクの生成を再帰的に繰り返すため、ローカルまたはプライベートな推論エンドポイントを活用することで、クラウドAPIの従量課金やレート制限の課題も抜本的に解決できます。

Reworkdがオープンソースとして公開したAgentGPTは、Next.jsフロントエンド、FastAPIプラットフォームバックエンド、およびMySQLデータベースで構成されるWebベースの自律型エージェント実行環境です。標準ではOpenAIのクラウドサービスに接続しますが、Dockerコンテナネットワーク、環境変数、そしてOpenAI互換のローカル推論エンジン(Ollama、LocalAI、vLLMなど)を適切に構成することで、完全なオフライン・プライベート環境を構築可能です。


システム構成とコンテナネットワークの落とし穴

Docker Composeを用いたAgentGPTのセルフホスト構成は、以下の3つの主要サービスで成り立っています。

  1. フロントエンド (next): ポート 3000 で稼働。エージェントの作成、目標設定、実行プロセスのリアルタイム可視化を提供。
  2. バックエンド (platform): ポート 8000 で稼働。FastAPIベースで動作し、エージェントの実行ループ、タスク計画、LLMとのAPI通信を統括。
  3. データベース (db): ポート 3306 で稼働。MySQLを用いてエージェントの実行履歴やタスク状態を永続化。
+-------------------------------------------------------------------------+
| Docker 内部ネットワーク (agentgpt-network)                              |
|                                                                         |
|  [ フロントエンド: Next.js ] <---> [ バックエンド: FastAPI ] <---> [ DB ] |
|            (:3000)                        (:8000)                (:3306)|
+----------------------------------------------|--------------------------+
                                               | (REWORKD_PLATFORM_OPENAI_API_BASE)
                                               v
                     +--------------------------------------------+
                     | ホストOS / プライベート推論クラスタ        |
                     | host.docker.internal:11434/v1              |
                     | [ Ollama / vLLM / LocalAI 互換エンドポイント]
                     +--------------------------------------------+

コンテナからホストOSへの通信境界

ローカル推論モデルを接続する際、最も頻発するトラブルがAPIの接続先を http://localhost:11434 や http://127.0.0.1:11434 と指定してしまう設定ミスです。Dockerコンテナ内部における localhost はコンテナ自体のネットワーク名前空間を指すため、ホストOS上で動作している推論サーバーには到達できません。

適切な接続方法は以下の通りです。


ステップ1:ローカル/プライベートLLMエンドポイントの準備

使用する推論エンジンは、OpenAI互換のHTTP RESTエンドポイント(特に /v1/chat/completions および /v1/models)を提供している必要があります。

選択肢A:Ollamaを使用する場合(ローカル開発・ワークステーション向け)

Ollamaを全ネットワークインターフェースにバインドして起動し、Dockerコンテナからの着信を許可します。

# Linuxでの起動例(環境変数を指定して起動)
OLLAMA_HOST=0.0.0.0:11434 ollama serve

論理的推論力とJSON構造の出力精度に優れたモデルを取得します。

ollama pull qwen2.5:14b
# または
ollama pull llama3.1:8b

ターミナルからエンドポイントの応答を確認します。

curl http://localhost:11434/v1/models

選択肢B:vLLMを使用する場合(高並列・GPUサーバー環境向け)

GPUを搭載したプライベートサーバーでvLLMのOpenAI互換サーバーを起動します。

python3 -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-8B-Instruct \
  --host 0.0.0.0 \
  --port 8000

ステップ2:AgentGPTリポジトリの取得と環境変数設定

公式リポジトリをクローンします。

git clone https://github.com/reworkd/AgentGPT.git
cd AgentGPT

環境変数テンプレートをコピーします。

cp .env.example .env

.env の主要設定項目

ルートディレクトリの .env(手動ビルド時は platform/.env も含む)を開き、以下のように設定します。

# ----------------------------------------
# LLMエンドポイント設定
# ----------------------------------------
# host.docker.internal 経由でホストOS上の推論サーバーを指定
# 重要:末尾にスラッシュを付けないでください(/v1 と指定し、/v1/ とはしない)
REWORKD_PLATFORM_OPENAI_API_BASE=http://host.docker.internal:11434/v1

# OpenAI SDKの仕様上、キーに空文字は許可されません
# ローカル推論エンジン側では検証されないため、ダミー文字列を入力します
OPENAI_API_KEY=local-secret-key

# ----------------------------------------
# データベース設定
# ----------------------------------------
DATABASE_URL=mysql://root:password@db:3306/agentgpt
MYSQL_ROOT_PASSWORD=password
MYSQL_DATABASE=agentgpt

# ----------------------------------------
# 認証・セキュリティ設定
# ----------------------------------------
NEXTAUTH_SECRET=generate-a-secure-random-32-byte-hex-key
NEXTAUTH_URL=http://localhost:3000

注意点: REWORKD_PLATFORM_OPENAI_API_BASE の末尾に /chat/completions や余分なスラッシュ / を含めないでください。AgentGPTのバックエンドコードがパスを自動補完するため、スラッシュが重複すると //chat/completions となり、HTTP 404エラーの原因となります。


ステップ3:Linux環境向け docker-compose.yml の修正

Linuxホスト上で稼働させる場合、docker-compose.yml の platform サービス定義にホスト解決用の設定を追加します。

services:
  platform:
    build:
      context: ./platform
      dockerfile: Dockerfile
    environment:
      - REWORKD_PLATFORM_OPENAI_API_BASE=http://host.docker.internal:11434/v1
      - OPENAI_API_KEY=local-secret-key
      - DATABASE_URL=mysql://root:password@db:3306/agentgpt
    ports:
      - "8000:8000"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    depends_on:
      - db

  frontend:
    build:
      context: ./next
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      - NEXTAUTH_URL=http://localhost:3000
      - NEXTAUTH_SECRET=generate-a-secure-random-32-byte-hex-key
    depends_on:
      - platform

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: agentgpt
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

ステップ4:コンテナのビルドと起動

Docker Composeを実行して各サービスを立ち上げます。

docker compose up -d --build

ログを確認し、バックエンドがMySQLと正常に接続されたことを確かめます。

docker compose logs -f platform

起動が完了したら、ブラウザから http://localhost:3000 にアクセスします。


ステップ5:UI設定とエージェントワークフローの実行

  1. 設定画面の表示: AgentGPTの左下サイドバーにある歯車アイコン(Settings)をクリックします。
  2. モデル名の指定: ローカル推論サーバーで実行中のモデル名(例: qwen2.5:14b または llama3.1:8b)を入力します。
  3. パラメータの調整:
    • Temperature: 0.2 〜 0.4 に設定します。自律型エージェントは厳密なタスク分解とJSONパースを要求するため、温度を高く設定しすぎるとフォーマット崩れや無限ループの原因となります。
    • Loop Cap(最大実行ループ数): ローカル推論の負荷を考慮し、初回は5〜10ループ程度に制限しておくことを推奨します。
  4. エージェントの作成:
    • Agent Name: Local-System-Analyst
    • Goal: オンプレミス環境におけるAIエージェント運用のネットワークボトルネックを分析し、優先度の高い対策を3つ提示せよ。
    • Deploy Agent をクリックします。
  5. 実行プロセスの確認: 目標が複数のサブタスクに分解され、ローカルLLMへの問い合わせを通じてタスクが順次実行・評価され、最終結果が生成される流れを確認します。

実運用の留意点とモデル選定指針

1. 自律型エージェントに求められるモデル性能

自律型エージェントの実行ループは、一般的なチャットボットよりもはるかに高度なモデル能力を必要とします。

パラメータ数が7B未満の小型モデルやインストラクション調整が不十分なモデルでは、構文エラーや判断不能によるループ停止が頻発します。以下のモデル構成を推奨します。

2. コンテキスト長(Context Window)の確保

複数ステップにわたるタスク実行では、エージェントの対話履歴が急激に増大します。

3. リポジトリのステータスに関する留意事項

GitHubの reworkd/AgentGPT リポジトリは2026年1月にアーカイブ(読み取り専用化)されています。既存のコードベースは自律型エージェントのアーキテクチャとして完成度が高く、社内検証やセルフホスト環境の構築に有用ですが、継続的な本番運用を行う場合は、内部でDockerイメージを固定し、依存ライブラリのバージョン管理を独自に実施することを推奨します。

参考資料