💡

Google A2Aのデモを動かす

に公開

Google A2A(Agent2Agent) デモを動かす

GoogleからA2Aプロトコルが発表されました。
https://cloud.google.com/blog/ja/products/ai-machine-learning/a2a-a-new-era-of-agent-interoperability
デモがあったので実際に動かしてみました。以下、簡単に手順のメモです。


必要なもの

  • Python
  • uv
  • Gemini APIキー

手順

  1. リポジトリのクローン:

    まず、A2AのリポジトリをGitHubからクローンします。

    git clone https://github.com/google/A2A/
    
  2. ディレクトリの移動:

    クローンしたリポジトリのsamplesディレクトリに移動します。

    cd A2A
    cd samples
    
  3. 仮想環境の作成と有効化:

    uvを使用して仮想環境を作成し、有効化します。

    uv venv
    source .venv/bin/activate
    
  4. Gemini APIキーの設定:

    Gemini APIキーを環境変数に設定します。<your_api_key>の部分を実際のAPIキーに置き換えてください。

    export GOOGLE_API_KEY=<your_api_key>
    
  5. crewaiエージェントの起動:

    python/agents/crewaiディレクトリに移動し、uvでcrewaiエージェントを起動します。ポート10000で実行します。

    cd python/agents/crewai
    uv run . --host 0.0.0.0 --port 10000
    

    この状態で、別のターミナルから以下のコマンドを実行して、エージェントのメタデータを確認できます。

    curl http://0.0.0.0:10000/.well-known/agent.json
    

    正常に動作していれば以下のように出力されるはずです。

    {
        "name": "Image Generator Agent",
        "description": "Generate stunning, high-quality images on demand and leverage powerful editing capabilities to modify, enhance, or completely transform visuals.",
        "url": "http://0.0.0.0:10000/",
        "version": "1.0.0",
        "capabilities": {
            "streaming": false,
            "pushNotifications": false,
            "stateTransitionHistory": false
        },
        "defaultInputModes": [
            "text",
            "text/plain",
            "image/png"
        ],
        "defaultOutputModes": [
            "text",
            "text/plain",
            "image/png"
        ],
        "skills": [
            {
                "id": "image_generator",
                "name": "Image Generator",
                "description": "Generate stunning, high-quality images on demand and leverage powerful editing capabilities to modify, enhance, or completely transform visuals.",
                "tags": [
                    "generate image",
                    "edit image"
                ],
                "examples": [
                    "Generate a photorealistic image of raspberry lemonade"
                ]
            }
        ]
    }
    
  6. 他のエージェントの起動:

    同様の手順で、他のエージェントも異なるポートで起動します。Ctrl+z、bgなどとしてエージェントをバックグラウンドで動かします。

    crewaiディレクトリから一つ上のagentsディレクトリに戻り、google_adklanggraphディレクトリで同様にuv runコマンドを実行します。

    cd ../google_adk
    uv run . --host 0.0.0.0 --port 10001
    

    エージェントが起動したら同様にバックグラウンドで動作させます。

    cd ../langgraph
    uv run . --host 0.0.0.0 --port 10002
    

    注意: ポート番号が重複しないようにしてください。

  7. デモUIの実行:

    demo/uiディレクトリに戻り、main.pyを実行します。

    cd ../../../demo/ui
    uv run main.py
    

これで、ブラウザでhttp://0.0.0.0:12000などにアクセスすると、A2Aのデモが実行されるはずです。

  1. エージェントの追加:

    左メニューから「Agents」を選択。そこでエージェントを追加。ここで入力する「Agent Address」の形式は<IPアドレス>:<ポート>の形式。httpなどは不要。
    正常にエージェントが認識されると次のような画面になります。

  2. Enjoy:

    左メニューで「Home」に戻り、Conversationを追加すると、フロントエンドを介してHost Agentと会話を始めることができます。

Discussion