cagentを使用したAIエージェントとワークフローの構築と配布

投稿日: 9月 18, 2025

cagent は、Docker の新しいオープンソース プロジェクトで、コードを 1 行も書かずに AI エージェントを簡単に構築、実行、共有できます。AI エージェントを作成するときにコードを記述したり、Python のバージョンや依存関係を議論したりする代わりに、エージェントの動作、ツール、ペルソナを 1 つの YAML ファイルで定義できるため、パーソナライズされた AI アシスタントの作成と共有が非常に簡単になります。

Cagent 1

図 1: cagentは、特殊な機能とツール、およびエージェント間の相互作用を使用してAIエージェントを調整する、強力で使いやすくカスタマイズ可能なマルチエージェントランタイムです。

cagentはOCIレジストリを使用して、コミュニティによって作成されたエージェントを共有およびプルできるため、エージェント作成の問題だけでなく、エージェントの配布の問題もエレガントに解決できます。 

cagent が特別な理由を詳しく見て、実際の使用例をいくつか見てみましょう。

cagentとは何ですか?

cagent の核心は、cagent.yaml ファイルで定義された AI エージェントを実行するコマンドライン ユーティリティです。哲学は単純で、 エージェントに何をしてもらいたいかを宣言し、残りは cagent が処理します。 

エージェントの作成におそらく必要な機能がいくつかあります。 

  • 宣言型でシンプル: モデル、命令、エージェントの動作を 1 つの YAML ファイルで定義します。この「単一成果物」アプローチにより、エージェントは移植性が高く、バージョン管理が容易になり、共有も容易になります。
  • 柔軟なモデルのサポート: 特定のプロバイダーに縛られることはありません。Docker Model Runner を使用してリモート モデルやローカル モデルを実行できるため、プライバシー上の理由から理想的です。 
  • 強力なツール統合: cagent には、一般的なタスク (シェル コマンドやファイル システム アクセスなど) 用の組み込みツールが含まれており、MCP 経由で外部ツールをサポートしているため、エージェントは事実上すべての API に接続できます。 
  • マルチエージェントシステム: また、単一のエージェントに限定されません。Cagent を使用すると、各エージェントが独自の専門スキルとツールを持ち、相互にコラボレーションしてタスクを委任できるエージェントのチームを定義できます。 

エージェントの実際の使用例

私は数週間前から cagent を使用してきましたが、この記事では、実際に使用している実用的に役立つエージェントを 2 つ紹介したいと思います。 

GitHubタスクトラッカー

開発者中心の実用的な例から始めましょう。AI を使用して GitHub の問題を追跡することは革新的ではないかもしれませんが、驚くほど便利であり、実際のワークフローで cagent の機能を示しています。 

統合できるタスク追跡ソリューションには事欠きませんが、開発者にとって最も便利なソリューションの 1 つは GitHub です。GitHub のリポジトリとその上の問題を To Do リストとして使用します。最高のUXを持っていますか?実際には問題ではありません。AIを消費して問題を生み出すことになるので、実際の基盤となるUXは無関係です。 

GitHubリポジトリがあります: github.com/shelajev/todo、課題が有効になっている場合、特に課題の作成、課題の一覧表示、課題のクローズができるエージェントが必要です。 

cagent セッションは To-Do エージェントを作成します。プロンプトエンジニアリングは、GitHub Issue ManagerのYAML構成につながります。

図 2

GitHub ベースの To Do リスト エージェントの YAML を次に示します。エージェントの命令は agent new コマンドで生成され、Gemini に手動で短くするように依頼して、生成された命令を改良しました。 


ヤムル

version: "2"

models:
  gpt:
    provider: openai
    model: gpt-5
    max_tokens: 64000

agents:
  root:
    model: gpt
    description: "GitHub Issue Manager - An agent that connects to GitHub to use a repo as a todo-list"
    instruction: |
      You are a to-do list agent, and your purpose is to help users manage their tasks in their "todo" GitHub repository.

      # Primary Responsibilities
      - Connect to the user's "todo" GitHub repository and fetch their to-do items, which are GitHub issues.
      - Identify and present the to-do items for the current day.
      - Provide clear summaries of each to-do item, including its priority and any labels.
      - Help the user organize and prioritize their tasks.
      - Assist with managing to-do items, for example, by adding comments or marking them as complete.

      # Key Behaviors
      - Always start by stating the current date to provide context for the day's tasks.
      - Focus on open to-do items.
      - Use labels such as "urgent," "high priority," etc., to highlight important tasks.
      - Summarize to-do items with their title, number, and any relevant labels.
      - Proactively suggest which tasks to tackle first based on their labels and context.
      - Offer to help with actions like adding notes to or closing tasks.

      # User Interaction Flow
      When the user asks about their to-do list:
      1. List the open items from the "todo" repository.
      2. Highlight any urgent or high-priority tasks.
      3. Offer to provide more details on a specific task or to help manage the list.

    add_date: true
    toolsets:
      - type: mcp
        command: docker
        args: [mcp, gateway, run]
        tools:
          [
            "get_me",
            "add_issue_comment",
            "create_issue",
            "get_issue",
            "list_issues",
            "search_issues",
            "update_issue",
          ]

これは、エージェントのペルソナ、責任、行動を定義し、エージェントが予測可能かつ役立つように動作することを保証する、よく練られたプロンプトの良い例です。最良の部分は、編集と実行が高速で摩擦がなく、YAMLを保存して実行することです。 

cagent run github-todo.yaml 

この開発ループは、IDE をセットアップしなくても機能します。私はVimでいくつかの反復を行いましたが、すべてエージェントを実行していたのと同じターミナルウィンドウから行いました。 

このエージェントは、合理化されたツール構成も使用します。多くの例は、次のようにDocker MCPツールキットからMCPサーバーを追加することを示しています。 

  toolsets:
      - type: mcp
        ref: docker:github-official

これにより、MCPカタログからGitHub MCPサーバーが実行されますが、Docker DesktopのMCPツールキットセットアップとは別の「ツールキット」として実行されます。

手動コマンドを使用してMCPツールキットに接続すると、Docker DesktopでOAuthログインサポートを簡単に使用できます。 

Docker Desktop MCP Toolkit — OAuthが選択され、認証が有効になっているGitHub公式サーバー構成。

図 3

また、公式のGitHub MCPサーバーは非常に冗長です。強力ですが冗長です。したがって、問題関連のエージェントの場合、エージェントに公開されるツールのリストを制限することは非常に理にかなっています。 

 tools:
          [
            "get_me",
            "add_issue_comment",
            "create_issue",
            "get_issue",
            "list_issues",
            "search_issues",
            "update_issue",
          ]

私が実行して作成したそのリスト: 

docker mcp tools list | grep "issue"

そして、それを配列としてフォーマットするように AI に依頼します。 

この todo-agent は Docker Hub で利用できるため、エージェントのプルコマンドは簡単です。 

cagent run docker.io/olegselajev241/github-todo:latest

最初にMCPツールキットでGitHub MCPサーバーを有効にし、リポジトリが存在することを確認してください。

アドボキューキャプテンズエージェント

Dockerでは、 Advocu を使用して、コンテンツを作成し、カンファレンスで講演し、コミュニティと関わるアンバサダーであるDockerキャプテンを追跡しています。Advocu を使用して、Docker のテクノロジーに関するブログ投稿、ビデオ、カンファレンス トークなど、情報の詳細と貢献を追跡します。

Advocu を手動で検索するのは時間がかかります。長い間、私は「AI アシスタントを構築できたらどうなるだろうか」と考えていました。 

私の最初の試みは、Advocuインスタンス用のカスタムMCPサーバーを構築することでした https://github.com/shelajev/mcp-advocu

これは主に「バイブコーディング」されていますが、一言で言えば、

docker run -i -rm -e ADVOCU_CLIENT_SECRET=your-secret-here olegselajev241/mcp-advocu:stdio

は、Docker Captainに関する情報を公開するツールを使用してMCPサーバーを実行し、MCPクライアントが送信されたアクティビティを検索できるようにします。 

国ごとに Docker Captains をクエリする cagent の Advocu エージェント。ターミナルに表示されるツール呼び出し確認ダイアログ。

図 4

ただし、実際のエージェント、特にそれを実行するために必要な構成を共有するのは少しぎこちませんでした。 

cagentは、これをはるかにきちんとした方法で解決してくれました。Advocuエージェントの完全なcagent.yamlは次のとおりです。

ヤムル

#!/usr/bin/env cagent run
version: "2"

agents:
  root:
    model: anthropic/claude-sonnet-4-0
    description: Agent to help with finding information on Docker Captains and their recent contributions to Docker
    toolsets:
      - type: mcp
        command: docker
        args:
          - run
          - -i
          - --rm
          - --env-file
          - ./.env
          - olegselajev241/mcp-advocu:stdio
    instruction: You have access to Advocu - a platform where Docker Captains log their contributions. You can use tools to query and process that information about captains themselves, and their activities like articles, videos, and conference sessions. You help the user to find relevant information and to connect to the captains by topic expertise, countries, and so on. And to have a hand on the pulse of their contributions, so you can summarize them or answer questions about activities and their content

このファイルを使用すると、キャプテンの情報を照会し、その貢献を要約し、トピックごとに専門家を見つけることができる強力でパーソナライズされたアシスタントが手に入ります。これは、cagent が特定の内部ワークフローをどのように自動化できるかを示す完璧な例です。

ユーザーは .env を作成するだけです。ファイルに適切なシークレットを含ませます。技術があまりないチームメンバーでも、シェルのワンライナーを与えて、すぐにセットアップすることができます。 

これで、Dockerの全員が、プログラムを実行している人にpingを送ったり(こんにちは、Eva!)、巨大なスプレッドシートを掘り下げたりすることなく、Dockerキャプテンについて質問できるようになりました。 

最近の MCP アクティビティとセンチメントを要約した cagent ターミナル出力 — レポート スタイルの結果の例。

図 5

また、セットアップがさらに簡素化される今後の cagent 1Password の統合にも興奮しています。  

全体として、エージェントは実際には次の組み合わせにすぎません。

  • システムプロンプト
  • モデルとの統合 (理想的には、仕事を成し遂げる最も効率的なモデル)
  • そして、MCPを介した適切なツール

cagentを使用すると、クリーンなDockerネイティブの方法で3つすべてを非常に簡単に管理できます。 

今日から始めましょう!

cagent を使用すると、正確なニーズに合わせた独自の AI アシスタントを構築できます。

これは、複雑さにとらわれずに AI の力を活用したい開発者向けに設計されたツールです。

cagent GitHubリポジトリにアクセスして、今すぐ始めることができます。最新リリースをダウンロードして、最初のエージェントの構築を数分で開始できます。 

リポジトリに星を付けて試してみて、どんな素晴らしいエージェントを構築したかをお知らせください。

投稿カテゴリ

関連記事