コンテンツにスキップ

cagent - YAMLでつくるAIエージェント

Author: Kazukichi
  • Docker社が開発しているAIエージェント開発のフレームワーク
  • YAMLを使用し、AIエージェントの振る舞いや役割等を宣言的に記述できる
  • 2025年の春頃に開発が開始した模様
  • cagent = Container Agentなのかは不明
  • GitHubリポジトリ: https://github.com/docker/cagent
  • Docker Desktopの4.49.0以降が必要
    • Homebrew等から独立して cagent をインストールすることも可能
  • cagent コマンドのパスを通す
Terminal window
# cagentがインストールされていることを確認
$ /Applications/Docker.app/Contents/Resources/bin/cagent version
cagent version v1.19.0
Commit: 7005dc1a5ab968929440d4098a716897d8003eba
# パスを通す
$ echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"' >> ~/.zshrc
# .zshrcの設定を再読み込みして反映
$ source ~/.zshrc
# 想定したパスを参照していることを確認
$ which cagent
/Applications/Docker.app/Contents/Resources/bin/cagent
# パスを明示しなくても使えるようになった
$ cagent version
cagent version v1.19.0
Commit: 7005dc1a5ab968929440d4098a716897d8003eba
  • APIキーの設定
    • 今回はClaudeを使用するが、OpenAI等の他のプロバイダも選択可能
Terminal window
$ export ANTHROPIC_API_KEY=<your-anthropic-api-key>
  • agent.yaml
    • MCPサーバのDuckDuckGoで検索
    • 検索内容を要約し、組み込みツールの filesystem でファイルの書き込み
    • を行うシンプルなAIエージェントを動かしてみる
agents:
root:
model: anthropic/claude-sonnet-4-5
description: "search and write agent"
instruction: |
あなたは調査と作業を行うAIエージェントです。
手順:
1) 必要に応じて検索ツールで調べる
2) 得た情報を整理する
3) filesystem を使って結果をファイルに保存する
toolsets:
- type: filesystem
- type: mcp
ref: docker:duckduckgo
  • 「Browse MCP servers」を押下
  • 今回は「DuckDuckGo」を追加
Terminal window
$ cagent run agent.yaml
  • TUIが立ち上がる
  • ツールを使用するときはモーダルが出る
  • カレントディレクトリにマークダウンファイルが生成された
  • サブエージェントを複数生成し、1つのエージェントチームとして扱う機能
  • Dockerイメージとして固めてDocker Hubに公開・共有できる機能
  • プログラマブルで高度なAIエージェントを作るためのものではない
  • 設定ファイルで宣言的に定義できるというの点が面白い
  • Docker DesktopからMCPサーバをインストールできたり、Dockerイメージとして共有できる機能はDocker社ならではの機能、といった感じで面白い
  • 一方、単純なロジックであればプログラムをAIに組んでもらったり、既存のAIエージェントで実現可能なため、cagentをどのように活用できるか、という点で疑問が残る