Docker Agent(旧cagent)とは — YAMLで作るマルチエージェント入門
2026年10月に話題のDocker Agent(旧cagent)を解説。YAMLでマルチエージェントを組む最短手順、インストール方法、MCP・ローカルモデル連携、OCIレジストリでの共有、Claude CodeやLangGraphとの違い、Hacker Newsでの評価と注意点、よくある質問まで整理。
Docker Agent(旧名 cagent)は、YAMLの設定ファイルでAIエージェントを定義し、ターミナルから実行できる Docker 製のオープンソースツールです。Docker CLIプラグインとして docker agent で動き、複数のエージェントに役割を分けて仕事を委譲する「マルチエージェント構成」を、数十行のYAMLで組めるのが特徴です。ライセンスは Apache-2.0 です。
結論から言うと、「複数のLLMとMCPサーバーを組み合わせた自分専用のエージェントチームを、設定ファイル中心で素早く試したい人向けのランタイム」です。コーディングに特化した製品ではなく、汎用のエージェント実行基盤という位置づけです。2026年10月にHacker Newsで約300ポイントを集めて話題になりましたが、「YAMLが苦手」「ノーコードの訴求には疑問」といった声もあります。この記事では、公式ドキュメントとリポジトリで確認できた範囲で、仕組みと最短の使い方を整理します。
Docker Agentで何ができるか
- マルチエージェント構成: ルートのエージェントが sub_agents に列挙した専門エージェントへ仕事を委譲する
- 複数プロバイダ対応: OpenAI、Anthropic、Gemini、AWS Bedrock、Mistral、xAI、Docker Model Runner(ローカルモデル)など
- MCPサーバー連携: ローカル、リモート、Dockerベースのどれでも接続できる(docker:duckduckgo のようにカタログ参照も可能)
- 組み込みツール: think(思考)、todo(タスク管理)、memory(記憶)、タスク委譲
- RAG: BM25、埋め込み、ハイブリッド検索、リランキングに対応
- OCIレジストリでの共有: エージェント定義をDocker HubなどにpushしてほかのPCでpullできる
- Go SDK: YAMLではなくGoのコードからも利用できる
ちなみに Docker の組み込みAIアシスタント「Gordon」(docker ai)とは別物です。公式ドキュメントでも混同しないよう注記されています。

インストール
Docker Desktop 4.63以降では最初から同梱されており、そのまま docker agent が使えます(4.49〜4.62では cagent という名称)。Docker Engineだけの環境などでは、次のいずれかで入れます。
# Homebrew
brew install docker-agent
# Windows(winget)
winget install Docker.Agent
# バイナリを使う場合: GitHub Releasesから取得し、CLIプラグインとして配置
ln -s /path/to/docker-agent ~/.docker/cli-plugins/docker-agentプラグインとして置かず、docker-agent という単体バイナリとして直接実行することも可能です。LLMを使うには、いずれかのAPIキーを環境変数に設定します(Docker Model Runnerのローカルモデルだけなら不要です)。
export OPENAI_API_KEY=<your_key> # OpenAIモデル
export ANTHROPIC_API_KEY=<your_key> # Claudeモデル
export GOOGLE_API_KEY=<your_key> # Geminiモデル最短の使い方(YAML1枚で動かす)
まず1体のエージェントを定義します。以下は公式READMEにあるサンプルで、DuckDuckGo検索のMCPサーバーを持つ汎用アシスタントです。agent.yaml として保存してください。
agents:
root:
model: openai/gpt-5-mini
description: A helpful AI assistant
instruction: |
You are a knowledgeable assistant that helps users with various tasks.
toolsets:
- type: mcp
ref: docker:duckduckgo実行は次のとおりです。YAMLを書かずに対話形式で雛形を作る docker agent new や、引数なしの docker agent run(デフォルトエージェント)も用意されています。
docker agent run agent.yaml
# 対話形式で新しいエージェントを生成
docker agent new各エージェントの必須項目は model、description、instruction の3つで、toolsets、sub_agents、fallback、max_iterations などは任意です。model は プロバイダ/モデル名 の形式で指定します。
マルチエージェントの例(sub_agentsで委譲)
公式ドキュメントにある「バグ調査チーム」の例です。ルートの調査役が原因を分析し、修正の実装は fixer に委譲します。エージェントごとに別のモデルを割り当てられるため、調査は安価なモデル、実装は別社のモデル、といった使い分けができます。
agents:
root:
model: openai/gpt-5-mini
description: Bug investigator
instruction: |
Analyze error messages, stack traces, and code to find bug root causes.
Explain what's wrong and why it's happening.
Delegate fix implementation to the fixer agent.
sub_agents: [fixer]
toolsets:
- type: filesystem
- type: mcp
ref: docker:duckduckgo
fixer:
model: anthropic/claude-sonnet-4-5
description: Fix implementer
instruction: |
Write fixes for bugs diagnosed by the investigator.
Make minimal, targeted changes and add tests to prevent regression.
toolsets:
- type: filesystem
- type: shell- ルートエージェントはユーザーとの窓口で、最初に定義したエージェント(または root という名前)がデフォルトになる
- 別のエージェントから始めたい場合は docker agent run config.yaml -a agent_name
- サブエージェントがさらにサブエージェントを持つ階層構成も可能
- 各エージェントは独自のモデルとコンテキストを持ち、知識は共有されない
- 委譲先の選択には各エージェントの description が使われるため、役割が伝わる書き方が重要
リポジトリの examples/ には dev-team.yaml(プロダクトマネージャー・デザイナー・エンジニア)、blog.yaml(調査・執筆・レビュー)、coder.yaml(計画・実装・調査)など、マルチエージェントの実例が多数あります。自作する前にここから探すのが近道です。
MCPサーバーとローカルモデル(Docker Model Runner)
MCPは toolsets に type: mcp を追加して接続します。Dockerのカタログにあるサーバーは ref: docker:名前 で参照でき、独自のローカル/リモートサーバーも指定できます。MCP自体の考え方は Claude CodeのMCP連携ガイド で詳しく解説しています。また、既存のCLIツールをエージェントから扱いやすくする発想については CLI-Anything の記事も参考になります。
APIキーを使わずローカルで動かしたい場合は、Docker Model Runner(DMR)をモデルのプロバイダに指定します。models セクションで provider: dmr を定義し、エージェントの model からその名前を参照します。次はリポジトリの examples/dmr.yaml をもとにした最小構成です(DMRの既定エンドポイントは http://localhost:12434/engines/llama.cpp/v1)。
agents:
root:
model: qwen
description: Local assistant
instruction: You are a helpful assistant.
models:
qwen:
provider: dmr
model: ai/qwen3なお、DMRでホストしたモデルはマルチモーダルが自動検出されないため、画像入力などは設定で明示する必要があるとサンプルのコメントに書かれています。
OCIレジストリでエージェントを共有する
作ったエージェントはコンテナイメージのようにレジストリで配布できます。Docker Hubや、OCI互換のレジストリが使えます。pushすると、リポジトリが無ければ自動で作成されます。
# pushして共有
docker agent share push ./debugger.yaml myusername/debugger
# 別のマシンでpull
docker agent share pull myusername/debugger
# レジストリ上のエージェントを直接実行
docker agent run myusername/debugger:latestチームで同じエージェント定義を使い回したい場面で便利です。ただし、配布物にはプロンプトやツール設定が含まれるため、公開リポジトリにAPIキーなどの機密を入れないよう注意してください。
既存ツールとの違い
以下はあくまで大まかな位置づけの比較です。各製品は機能追加が早いため、最新の仕様は公式情報で確認してください。
| ツール | 主な形態 | 設定・構築の主軸 | 向いている用途 |
|---|---|---|---|
| Docker Agent | CLIランタイム(Docker CLIプラグイン) | YAML(Go SDKも可) | 汎用のマルチエージェントを設定中心で試す |
| Claude Code | コーディング特化のエージェントCLI | 対話中心。設定・MCP・サブエージェント定義 | 実コードベースの開発作業 |
| OpenAI Agents SDK | ライブラリ(コードで組む) | Pythonなどのコード | 自社アプリにエージェントを組み込む |
| LangGraph | ライブラリ(グラフでワークフロー定義) | Pythonなどのコード | 状態管理を含む複雑なフロー制御 |
| CrewAI | ライブラリ(役割ベースのチーム) | Pythonコード+設定 | 役割分担型のチームを素早く作る |
| Goose | ローカルで動くエージェント | 設定+拡張(MCP) | 手元の作業の自動化 |
ポイントは、Docker Agentが「ライブラリではなく、設定ファイルを読んで動くランタイム」であることです。コードを書かずに構成を試せる一方、複雑な制御ロジックが必要になればGo SDKやほかのフレームワークのほうが向く場面もあります。
Hacker Newsでの評価と注意点
HNのスレッド(約300ポイント、145コメント)では、肯定と批判の両方が出ていました。Docker社員とみられるコメント投稿者は、cagentが「エージェント版のCompose」という発想で生まれたこと、Docker Sandboxesより前から存在することを説明し、Go SDKがYAMLの代替になること、ACP対応を検討していることにも触れています。
- 批判: 説明が曖昧で「ノーコード」の訴求に疑問、YAML設定への好みが分かれる、Dockerブランドの名称が紛らわしい
- 不具合報告: Codexを制御する用途でセッションが不安定との声があり、Docker側は詳細を聞いて改善を検討するとした
- セキュリティ: サンドボックスの仕組みや攻撃経路についての文書が見つけにくいという指摘
- 評価点: Go実装への称賛、開発側がフィードバックに丁寧に応じている点
導入時の注意として、エージェントにシェルやファイルシステムのツールを渡すと、LLMの判断で実際にコマンドが実行されます。本番の環境や機密データのあるディレクトリで試す前に、隔離した環境(VMやコンテナ)で動かすことをおすすめします。また、公式READMEによると匿名の利用データが収集されます(詳細は公式のテレメトリのページを参照してください)。
よくある質問
Docker Agentとcagentは同じものですか?
同じプロジェクトです。cagentが現在の名称 Docker Agent に変わりました。Docker Desktopでは4.49〜4.62がcagent、4.63以降がDocker Agentという名称で同梱されています。
Docker Desktopがなくても使えますか?
使えます。Homebrew、winget、GitHub Releasesのバイナリなどで導入でき、Docker CLIプラグインとしても単体バイナリとしても実行できます。
ローカルモデルだけで動かせますか?
READMEによれば、APIキーの代わりにDocker Model Runnerでローカルモデルを使えます。ただし、モデルの性能やツール呼び出しの精度は、クラウドの大型モデルと異なる点に注意してください。
YAMLを書かずに使えますか?
docker agent new で対話形式に雛形を生成できます。また、Go SDKを使えばYAMLなしでコードから組み込めます。ただしHNでは「ノーコード」という訴求への疑問も出ています。
Claude Codeの代わりになりますか?
用途が異なります。Claude Codeはコーディング特化のエージェントで、Docker Agentは汎用のマルチエージェント実行基盤です。置き換えというより、目的に応じた使い分けになります。
この記事に関連する無料ツール(登録不要・その場で結果)
お気軽にご相談ください
お問い合わせ