ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #37 - Container Use / Dagger」という勉強会を開催しました。
generative-agents.connpass.com
アーカイブ動画はこちらです。
Container Use / Dagger
今回は、コーディングエージェントにコンテナ環境を与える「Container Use」と、AIエージェントやCI/CDに活用可能なワークフローランタイム「Dagger」について触ってみました。
Container UseのGitHubリポジトリはこちらです。
DaggerのGitHubリポジトリはこちらです。
今回のポイント
Container Useとは
Container Useは、コーディングエージェントにコンテナ化された環境を提供するツールです。
各種コーディングエージェントから、MCPサーバーとして使用可能になっています。
Container Useを使用すると、新しいGitブランチが作成され、コンテナが起動し、その環境にファイルを追加したりするという流れになります。
Container Useの基本的な使い方
Container Useをインストールしたら、以下のコマンドでClaude CodeにMCPサーバーとして設定できます。
claude mcp add container-use -- "$(which cu)" stdio
インストール後、CLAUDE.mdにContainer Useを使って実装する旨を記述してClaude Codeを起動します。
「シンプルなFlaskアプリを作成してください」のように指示をすると、Container Useの環境が起動して、その環境で実装が進みます。
実装が完了すると、git checkoutで実装を進めたブランチをcheckoutするよう言われます。
このように、Container Useは、コーディングエージェントにブランチを作成して隔離環境で作業させるツールとなっています。
Container Useで並列で開発させる例
Container Useの面白い点、複数の環境(コンテナ)で並列開発ができることです。
例えば、「FlaskとFastAPIの2つのHello Worldアプリを作成してください」という指示を出すと、Container Useは2つの独立した環境を作成し、それぞれでアプリケーションを開発します。
各環境は独立したGitブランチとコンテナを持つため、お互いに干渉することなく開発が進められます。 開発が完了したら、それぞれのブランチをマージすることで、両方の実装を取り込むことができます。
ただし、現時点では1つのエージェントが複数の環境で開発する動作が基本となっているようです。 そのため、環境ごとに独立したエージェントに開発させる(たとえばClaude Codeを複数立ち上げて開発させる)には、そのような指示を丁寧にする必要がありそうでした。
Daggerとは
今回はContainer Useに加えて、Container Useと同じ開発元が公開している「Dagger」も扱いました。
Daggerは、コンテナベースのワークフローランタイムで、CI/CDパイプラインをコードで記述できるツールです。
Daggerでは、以下のようにパイプライン形式でワークフローを記述できます。
container | from alpine | with-exec uname | stdout
最近では、このワークフロー機能にLLMの連携機能が追加されています。
DaggerのワークフローでのLLMの呼び出し
DaggerのLLM連携機能の1つとして、ワークフロー内でLLMを呼び出すことができます。
例えば、以下のコマンドでLLMを使用できます。
llm | with-prompt "こんにちは"
DaggerではSDKでワークフローを記述することもできます。 ドキュメントでは、GitHubのIssueに対して自動的にプルリクエストを作成するエージェントの実装例が紹介されています。
また、LLMにDaggerをツールとして与える仕組みもあるようでした。
次回のご案内
以上、今回は「Container Use」と「Dagger」をキャッチアップしました。
次回は「AIエージェントキャッチアップ #38 - Agentic Radar」ということで、Agentic Workflowのセキュリティスキャナー「Agentic Radar」がテーマです!
https://generative-agents.connpass.com/event/359865/generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!