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

Dockerを使用してAgentGPTをセルフホストしプライベートな自律型エージェントを実行する方法

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

あなたの AI で 365 Wiki を使う

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

完全版 Skill をダウンロード

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

システム管理者やエンジニアは、DockerおよびDocker Composeを活用することで、プライベートなインフラ環境に数分でAgentGPTをセルフホストできます。オンプレミスサーバーやプライベートクラウド(VPC)内に直接デプロイすることにより、エージェントの目的設定、推論プロセスの履歴、プロンプト、実行ログ、データベースを社内ネットワーク内に完全に保持し、マルチテナントのパブリックSaaSへ機密情報が流出するリスクを遮断できます。

本記事では、AgentGPTのアーキテクチャ構成、前提条件、自動スクリプトおよび手動Docker Composeによる構築手順、本番運用向けのセキュリティ強化策、そして長期的な保守におけるトレードオフを解説します。


システムアーキテクチャと動作原理

AgentGPTは、コンテナ化されたマルチティア構造によって自律型再帰エージェントのワークフローを実行します。

  1. フロントエンド(frontend): Next.js 13、TypeScript、Tailwind CSS、HeadlessUIで構築されたWebインターフェース。ポート 3000 で稼働し、ブラウザ上でエージェントの命名、ゴール設定、サブタスク生成プロセスのリアルタイム監視、実行結果の書き出しが可能です。
  2. バックエンドエンジン(platform): ポート 8000 で動作するPython FastAPIサービス。LangChainを基盤として、目標の分解、タスク優先度キューの管理、実行、反思ループ、外部ツール連携を担います。
  3. データ永続化レイヤー: フロントエンドのPrisma ORMおよびバックエンドのSQLModelを通じてMySQLデータベースと接続し、エージェント設定や実行履歴を安全に永続化します。
  4. 外部モデルおよびツール連携: コントロールプレーンやセッションログは社内Dockerホスト上に保持されますが、LLMによる推論処理はOpenAI APIへのアウトバウンドHTTPS通信で行われます(必要に応じてSerper検索APIやReplicate画像生成APIも利用可能)。

前提条件

デプロイを開始する前に、ホスト環境で以下の要件が満たされていることを確認してください。


方法1: 自動セットアップスクリプトによるクイック起動

AgentGPTリポジトリには、環境変数設定とDockerコンテナ構築を対話形式で自動化するスクリプトが用意されています。

1. リポジトリのクローン

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

2. セットアップスクリプトの実行

OSに応じて以下のコマンドを実行します。

3. 対話プロンプトの入力

スクリプトの指示に従い、以下を入力します。

コンテナのビルドと起動が完了したら、ブラウザで http://localhost:3000 にアクセスして動作を確認します。


方法2: Docker Composeによる手動デプロイと運用

CI/CD環境や対話型シェルが利用できないサーバーでは、Docker Composeを直接用いた宣言的デプロイが推奨されます。

1. プロジェクトの取得と構成確認

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

リポジトリルートの docker-compose.yml には、frontend(./next/Dockerfile)と platform(./platform の prod ターゲット)の各サービスが定義されています。

2. 環境変数の設定

環境変数のテンプレートをNext.jsの稼働ディレクトリへコピーします。

cp .env.example ./next/.env

./next/.env を任意のエディタで編集し、必要なパラメータを設定します。

# トークン暴走を防ぐための最大ループ回数制限
NEXT_PUBLIC_MAX_LOOPS="50"
REWORKD_PLATFORM_MAX_LOOPS="50"

# ネットワーク接続エンドポイント
NODE_ENV="production"
NEXT_PUBLIC_BACKEND_URL="http://localhost:8000"

# セッションおよび認証の秘密鍵
NEXTAUTH_SECRET="ランダムに生成した32バイト以上の安全な文字列"
NEXTAUTH_URL="http://localhost:3000"

# 外部LLMおよび連携APIキー
OPENAI_API_KEY="sk-your-openai-api-key"
SERPER_API_KEY="your-optional-serper-api-key"

3. コンテナのビルドとバックグラウンド起動

イメージのビルドを実行し、デタッチモードでコンテナ群を起動します。

docker compose up --build -d

4. サービス状態とログの確認

コンテナが正常に起動しているか確認します。

docker compose ps

起動ログを確認する場合は以下を実行します。

docker compose logs -f

ブラウザから http://localhost:3000 を開くことで、セルフホストされた自律型エージェントのダッシュボードが利用可能になります。


本番社内ネットワーク運用時のセキュリティ強化策

デフォルト設定は開発環境を前提として設計されているため、社内本番環境で運用する場合は以下の対策を実施してください。

1. ホストポートの公開範囲制限

デフォルトではポート 3000 および 8000 がすべてのネットワークインターフェース(0.0.0.0)にバインドされます。これにより、意図せず同一ネットワーク内の第三者から直接アクセスされる危険があります。docker-compose.yml を編集し、ローカルループバック(127.0.0.1)に限定してください。

services:
  frontend:
    ports:
      - "127.0.0.1:3000:3000"
  platform:
    ports:
      - "127.0.0.1:8000:8000"

2. リバースプロキシとTLSの導入

Nginx、Traefik、Caddyなどのリバースプロキシをフロントに配置し、HTTPS暗号化や社内認証(SSO/LDAP)を適用します。Nginxの設定例は以下のとおりです。

server {
    listen 443 ssl http2;
    server_name agent.internal.example.com;

    ssl_certificate /etc/ssl/certs/internal.crt;
    ssl_certificate_key /etc/ssl/private/internal.key;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

3. 最大実行ループ回数の厳格な制限

エージェントは抽象的なゴールを与えられると、無限にサブタスクを再生成し続けるリスクがあります。NEXT_PUBLIC_MAX_LOOPS および REWORKD_PLATFORM_MAX_LOOPS を20〜50程度に設定し、API利用コストの過剰消費を未然に防止してください。

4. データプライバシー境界の把握

AgentGPTをセルフホストすることで、システム構成、タスク履歴、ローカルログ、データベースは社内インフラにとどまります。ただし、エージェントが実行するプロンプトの内容そのものは外部のOpenAI APIエンドポイントへ送信されます。極めて機密性の高い業務に利用する場合は、社内プロキシを通したデータ損失防止(DLP)対策や、プライベート接続されたAzure OpenAI Serviceとの連携を検討してください。


プロジェクトのライフサイクルと長期保守における留意点

長期的な業務基盤としてAgentGPTを採用する際は、以下の背景を理解しておく必要があります。


参考資料