AI開発の分野は急速に進化しており、Dockerからの 2025 最もエキサイティングな進展の一つがDocker cagentのリリースです。cagentは、宣言的なYAML構成を通じてAIエージェントをオーケストレーションする、Dockerのオープンソースのマルチエージェントランタイムです。Python環境、SDKのバージョン、オーケストレーションロジックを管理する代わりに、開発者は単一の設定ファイルでエージェントの動作を定義し、「cagent run」で実行します。
この記事では、cagentとGitHub Modelsの連携がどのように真のベンダー独立性をもたらすかを探り、複数の専門的なサブエージェントを活用した実世界のポッドキャスト生成エージェントの構築方法を実演し、Docker Hubを通じてAIエージェントのパッケージ化と配布方法をご紹介します。最終的には、ベンダーロックインから抜け出し、ライフサイクル全体を通じて柔軟でコスト効率が高く、本番環境に対応できるAIエージェントシステムを構築する方法を理解するでしょう。
Docker cagentとは何ですか?
cagent は、宣言的なYAML構成を通じてAIエージェントをオーケストレーションする、Dockerのオープンソースのマルチエージェントランタイムです。Python環境、SDKのバージョン、オーケストレーションロジックを管理する代わりに、開発者は単一の設定ファイルでエージェントの動作を定義し、「cagent run」で実行します。
Docker cagentの主な特徴の一部:
- 宣言的YAML構成:モデル設定、明確な指示、ツールアクセス、サブエージェントとの相互作用・調整のための委任ルールを備えた単一ファイルエージェント定義
- マルチプロバイダー対応:OpenAI、Anthropic、Google Gemini、Docker Model Runner(DMR)によるローカル推論。
- MCP統合サポート:外部ツールやサービスの接続にMCP(Stdio、HTTP、SSE)を活用する
- セキュアドレジストリ配布:標準的なコンテナレジストリインフラストラクチャを用いて、Docker Hubを通じてエージェントを安全にパッケージ化・共有します。
- 組み込み推論ツール:「考える」「やること」「記憶」機能で複雑な問題解決のワークフローに対応します。
コアバリューの提案はシンプルです:エージェントが何をすべきかを宣言すれば、cagentが実行を処理します。各エージェントは、孤立したコンテキスト、モデルコンテキストプロトコル(MCP)による専門ツール、そして設定可能なモデルで動作します。エージェントはサブエージェントにタスクを委任し、人間の組織構造を反映した階層的なチームを作成できます。
GitHubモデルとは何ですか?
GitHub Modelsは、AIのアイデアから展開までサポートする開発者向けツール群で、モデルカタログ、プロンプト管理、定量的評価などが含まれます。GitHub ModelsはOpenAI(GPT-4o、GPT-5、o1-preview)、Meta(Llama 3.1、ラマ 3。2):マイクロソフト(Phi3.5)そしてDeepSeekモデルの。GitHub Modelsの利点は、GitHub Personal Access Tokensで一度だけ認証すれば済み、GitHub Modelsがサポートする任意のモデルを即用できることです。
https://github.com/marketplace のGitHubマーケットプレイスでサポートされているすべてのモデルのリストを見ることができます。現在、GitHubはすべての人気モデルをサポートしており、そのリストは増え続けています。最近では、アントロピック・クロードモデルも追加されました。
図 1。1:GitHub Marketplace プラットフォーム上で利用可能なすべてのモデルのリストが表示されます
GitHubは、GitHub ModelsやGitHub Copilotエージェントを含むプラットフォームを設計し、本番レベルのエージェントAIワークフローをサポートし、必要なインフラ、ガバナンス、統合ポイントを提供しています。GitHub Modelsは複数の コンテンツフィルターを使用しています。これらのフィルターはGitHubモデル体験の一部としてオフにすることはできません。Azure AIや有料サービスを通じてモデルを利用する場合は、要件に合ったコンテンツフィルターを設定してください。
GitHub Modelsを使い始めるには、https://docs.github.com/en/github-models/quickstart をご覧ください。詳細なクイックスタートガイドが掲載されています。
GitHub Modelsでのcagentの設定
GitHub Models OpenAI互換APIは、cagentをカスタムOpenAIプロバイダーとして扱い、基準URLと認証を修正することで直接統合を可能にします。
この記事では、Githubモデルを使ってPodCast Generatorエージェントを作成・デプロイし、Docker HubレジストリにデプロイすることでAIエージェントをいかに簡単にデプロイ・共有できるかをお見せします。このURLへ移動して、細かいパーソナルアクセストークンを作成する必要があります: https://github.com/settings/personal-access-tokens/new
図 1。2:GitHubの開発者設定から新しいパーソナルアクセストークン(PAT)を生成すること。
前提 条件
- Docker Desktop 4。MCP Toolkitを有効にした49+
- モデルスコープ付きGitHubパーソナルアクセストークン
- https://github.com/docker/cagent からcagentバイナリをダウンロードリポジトリ。フォルダーの中に
C:\Dockercagent入れてください。.\cagent-exe –help走って、もっと選択肢をご覧ください。
エージェントを定義してください
数ヶ月前にDocker cagentのテスト中に作成したシンプルなポッドキャストジェネレーターエージェントを紹介します。このエージェントの目的は、ブログや記事、YouTube動画を共有することでポッドキャストを生成することです。
以下のPodcastgeneratorのyamlファイルは、GitHub ModelsとMCPツール(DuckDuckGo)を活用した高度なマルチエージェントワークフローを説明しており、外部データアクセスにGitHub ModelsとMCPツール(DuckDuckGo)を活用しています。DuckDuckGo MCPサーバーは、MCPゲートウェイによって管理される孤立したDockerコンテナ上で動作します。docker MCPサーバーおよびMCPゲートウェイについて詳しく知りたい方は、公式製品ドキュメントの https://docs.docker.com/ai/mcp-catalog-and-toolkit/mcp-gateway/ を参照してください。
ルートエージェントは、[研究者"、"スクリプトライター]というsub_agentsを用いて、専門的なエージェントがドメイン固有のタスクを処理する階層構造を作成します。
sunnynagavo55_podcastgenerator.yaml
#!/usr/bin/env cagent run
agents:
root:
description: "Podcast Director - Orchestrates the entire podcast creation workflow and generates text file"
instruction: |
You are the Podcast Director responsible for coordinating the entire podcast creation process.
Your workflow:
1. Analyze input requirements (topic, length, style, target audience)
2. Delegate research to the research agent which can open duck duck go browser for researching
3. Pass the researched information to the scriptwriter for script creation
4. Output is generated as a text file which can be saved to file or printed out
5. Ensure quality control throughout the process
Always maintain a professional, engaging tone and ensure the final podcast meets broadcast standards.
model: github-model
toolsets:
- type: mcp
command: docker
args: ["mcp", "gateway", "run", "--servers=duckduckgo"]
sub_agents: ["researcher", "scriptwriter"]
researcher:
model: github-model
description: "Podcast Researcher - Gathers comprehensive information for podcast content"
instruction: |
You are an expert podcast researcher who gathers comprehensive, accurate, and engaging information.
Your responsibilities:
- Research the given topic thoroughly using web search
- Find current news, trends, and expert opinions
- Gather supporting statistics, quotes, and examples
- Identify interesting angles and story hooks
- Create detailed research briefs with sources
- Fact-check information for accuracy
Always provide well-sourced, current, and engaging research that will make for compelling podcast content.
toolsets:
- type: mcp
command: docker
args: ["mcp", "gateway", "run", "--servers=duckduckgo"]
scriptwriter:
model: github-model
description: "Podcast Scriptwriter - Creates engaging, professional podcast scripts"
instruction: |
You are a professional podcast scriptwriter who creates compelling, conversational content.
Your expertise:
- Transform research into engaging conversational scripts
- Create natural dialogue and smooth transitions
- Add hooks, sound bite moments, and calls-to-action
- Structure content with clear intro, body, and outro
- Include timing cues and production notes
- Adapt tone for target audience and podcast style
- Create multiple format options (interview, solo, panel discussion)
Write scripts that sound natural when spoken and keep listeners engaged throughout.
toolsets:
- type: mcp
command: docker
args: ["mcp", "gateway", "run", "--servers=filesystem"]
models:
github-model:
provider: openai
model: openai/gpt-5
base_url: https://models.github.ai/inference
env:
OPENAI_API_KEY: ${GITHUB_TOKEN}
手記: DuckDuckGo MCPサーバーを使用しているので、必ずこのMCPサーバーをdockerデスクトップのMCPカタログから追加・インストールしてください
ローカルマシン上でエージェントを動かす
GitHubのPATトークンを必ず更新し、以下のコマンドを実行して、cagentバイナリが所在するルートフォルダからエージェントを実行してください。
cagent run ./sunnynagavo55_podcastgenerator.yaml
Dockerイメージとしてエージェントをプッシュする
以下のコマンドを実行して、エージェントをDockerイメージとしてお気に入りのレジストリにプッシュし、チームと共有してください。
cagent push Sunnynagavo55/Podcastgenerator
以下のように、あなたの公開画像はリポジトリ内でご覧いただけます。
万丈!今、cagentを使って初めてAIエージェントを作成し、Docker Hubにデプロイしました。
別のマシンでDockerイメージとしてエージェントを引き出す方法
以下のコマンドを実行して、チームメイトが作成したDockerイメージエージェントを呼び出し、エージェントのyamlファイルを取得して現在のディレクトリに保存します。
cagent pull Sunnynagavo55/Podcastgenerator
あるいは、以下のコマンドを使って画像を引かずに同じエージェントを直接実行することもできます。
cagent run Sunnynagavo55/Podcastgenerator
手記: 上記のPodcastgeneratorのサンプルエージェントは、Docker/cagentのGitHubリポジトリのexampleフォルダに追加されました。ぜひ試してみて、あなたの経験を共有してください。https://github.com/docker/cagent/blob/main/examples/podcastgenerator_githubmodel.yaml
結論
従来のAI開発ワークフローは、特定のプロバイダーに縛られ、別々のAPIキーが必要で、複数の請求アカウントを管理し、ベンダー固有のSDKを操作する必要があります。GitHub Modelsのcagentは、Dockerの宣言的エージェントフレームワークとGitHubの統一モデルマーケットプレイスを組み合わせることで、この状況を根本的に変えています。この統合により、真のベンダー依存性が実現します。単一のGitHubパーソナルアクセストークンでOpenAI、Meta、Microsoft、Anthropic、DeepSeekのモデルにアクセスでき、複数の認証情報や認証スキームを管理する手間をなくします。
AI開発の未来は、ベンダーを選び、そのエコシステムにコミットすることではありません。むしろ、環境の変化や新しいモデルの登場、ビジネス要件の変化に応じて柔軟に対応できるシステムを構築することが重要です。cagentやGitHub Modelsは、今日そのアーキテクチャの自由を可能にしています。
何をためらっているんですか。cagentとGitHub Modelsの力を使って今すぐ構築を始め、あなたのストーリーを私たちと共有してください。
リソース
docker cagentについてもっと知りたい方は、https://docs.docker.com/ai/cagent/ の製品ドキュメントをご覧ください。
cagentの詳細については、 GitHubリポジトリをご覧ください。このリポジトリに星をつけて、あなたの作ったものを教えてください。