[備忘録] A2A SDK Helloworld試してみた


## はじめに

Windows環境でGoogleのAgent-to-Agent (A2A) SDKを使ってHelloWorldする手順を確認しました。その備忘録です。Python 3.13が必要なため、ColabではなくWindows上での実行に切り替えた経験をもとに、AIエージェント開発が始めやすいように備忘録します。

> **注意**: 本記事は2025年5月時点の情報に基づいています。A2A SDKは開発が活発なプロジェクトのため、最新情報は[公式サイト](https://google.github.io/A2A/)で確認することをお勧めします。

https://google.github.io/A2A/

## A2Aとは

公式読んで自分の備忘録を以下にまとめます。

https://google.github.io/A2A/#a2a-and-mcp-complementary-protocols
このリンクのコンセプトの図を確認した。a2aの通信プロトコルの背景、意図を確認。

![a2a-agent-skills-card.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/aafd2bcb-7a21-4182-bd65-fac26b385945.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/491f24c3-ec97-4e5b-9dc5-27631b9c84e6.png)


## 環境構築（Windows）

### リポジトリのクローン

まず、Powershellまたはコマンドプロンプトを開き、A2Aのリポジトリをクローンします：

```
git clone https://github.com/google/a2a-python.git -b main --depth 1
cd a2a-python
```

### Python環境とSDKのインストール

#### Python 3.13の準備

A2A SDKはPython 3.13以降が必要です。Windows用のPython 3.13は[Python公式サイト](https://www.python.org/downloads/)からダウンロードできます。インストール時に「Add Python to PATH」オプションを選択することをお勧めします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/3e62befc-ce74-4672-b75a-74d7124d45b2.png)

#### 1. 仮想環境の作成と有効化（Windows）

```
python -m venv .venv
.venv\Scripts\activate
```

コマンドを実行すると、プロンプトの先頭に `(.venv)` が表示され、仮想環境が有効になったことを確認できます。

#### 2. A2A SDKとその依存関係のインストール

```
pip install -e .[dev]
```

これにより、SDKが編集可能モードでインストールされます。

### インストールの確認

インストールが成功したか確認します：

```
python -c "import a2a; print('A2A SDK imported successfully')"
```

「A2A SDK imported successfully」というメッセージが表示されれば成功です。

## Helloworldサーバーの実行（Windows）

仮想環境が有効になっていることを確認してから、以下のコマンドでHelloworldサーバーを起動します：

```
python examples\helloworld\__main__.py
```

Windows環境では、パスの区切り文字がバックスラッシュ（\）であることに注意してください。

サーバーが正常に起動すると、以下のようなメッセージが表示されます：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/2580a81f-0602-4a54-86d1-2733f9154225.png)

![a2a-server-startup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/dbefab3f-f735-4c19-9331-ba9f031b5a1c.png)


## テストクライアントの実行（Windows）

サーバーを起動したまま、新しいコマンドプロンプトまたはPowershellウィンドウを開きます。

### 仮想環境の有効化（新しいウィンドウで）

```
cd a2a-python
.venv\Scripts\activate
```

### テストクライアントの実行

```
python examples\helloworld\test_client.py
```

正常に実行されると、クライアントがサーバーと通信し、レスポンスが表示されます。典型的な出力は以下のようになります：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/1830f5e8-1617-4fc1-8e4c-04b406eb5cb0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/8665c681-7136-4c22-acf1-e3c0c2a311e4.png)

### Streaming & Multi-Turn Interactions (LangGraph Example)

#### LangGraph例のセットアップ

1. **Gemini APIキーの取得**：
   まだ持っていない場合は、Gemini APIキーを取得します。

2. **環境変数の設定**：　
 　set GOOGLE_API_KEY=YOUR_API_KEY

3. **依存関係のインストール**：
   SDK全体をインストールした際に依存関係も含まれているはずですが、もしインポートエラーが発生した場合は、以下のライブラリが必要です。
   ```
   pip install langchain-google-genai langgraph dotenv
   ```

#### LangGraphサーバーの実行

1. ターミナルで `a2a-python\examples\langgraph\` ディレクトリに移動し、仮想環境が有効になっていることを確認します。

2. サーバーを起動します：
   ```
   # a2a-python\examples\langgraph\ ディレクトリから
   python __main__.py
   ```
   
   これにより、通常 http://localhost:10000 でサーバーが起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/58543d73-c34c-427d-be1a-1853c2b93793.png)


### LangGraphエージェントとの対話

1. 新しいターミナルウィンドウを開き、仮想環境を有効化して、`a2a-python\examples\langgraph\` ディレクトリに移動します。

2. テストクライアントを実行します：
   ```
   # a2a-python\examples\langgraph\ ディレクトリから
   python test_client.py
   ```

接続が成功する以下のようは標準出力が・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/e8206931-35f5-49bc-bdd2-4b0d787b4d3c.png)


テストが完了したら、`__main__.py` を実行しているターミナルウィンドウで Ctrl+C を押してサーバーを停止できます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/91c8ef10-22c8-4123-bcca-f3727d610f9d.png)


## まとめ

Windows環境でA2A SDKのHelloWorldを実行し、AIエージェントの基本を学びました。Python 3.13が必要なため、現時点ではローカル実行を試してみました。A2A SDKのチュートリアルがWindowsで動作することを確認しました。

本記事は2025年5月時点の情報に基づく備忘録です。内容が将来的に陳腐化している可能性がありますので、あらかじめご了承ください。

## おもに参考にした箇所 (2025年5月時点)

https://google.github.io/A2A/tutorials/python/1-introduction/

https://github.com/google/A2A/tree/main/samples