はじめに
以下の記事を書いた時に扱った Googleさん公式の A2Aデモアプリ関連の話です。
●【Agent2Agent】 公式の A2A のデモアプリを試してみる(3つのエージェントを組み合わせる) - Qiita
https://qiita.com/youtoy/items/da42061852bf9ad3b79b
今回の内容
上記のお試しでは、デモアプリの公式情報に書いてあった以下 3つのエージェントの組み合わせを試していて、Python で実装されたものを使っていました。今回は、それ以外のエージェントのサンプルで JavaScript で実装されたものを組み合わせてみます。
※ A2Aクライアントと A2Aサーバーの実装で使われている言語が異なっても、間が A2A を介したやりとりになるので普通に混在させられるはずですが、それを実際に確かめてみました
とりあえず構成に関して、以下の赤枠で囲んだ部分は Python で実装されたもの(過去のお試しで使ったもの)を使い、以下の緑で囲んだ部分は JavaScript で実装されたものを使ってみます。
いったん、上記の緑の枠にあたる部分は、以下 1つだけを使って試してみることにしました。
●A2A/samples/js/src/agents/coder at main · google/A2A
https://github.com/google/A2A/tree/main/samples/js/src/agents/coder
実際に試してみる
ホスト・クライアントの準備
今回の内容を試すのにあたり、Python実装のフロントエンド・ホストなどの部分は、冒頭にも掲載していた以下の記事に書いたやり方で準備しました。
●【Agent2Agent】 公式の A2A のデモアプリを試してみる(3つのエージェントを組み合わせる) - Qiita
https://qiita.com/youtoy/items/da42061852bf9ad3b79b
記事内の以下の部分まで進めれば OK です。
エージェントの準備
エージェントの準備については、以下に記載された手順を用いました。
●A2A/samples/js at main · google/A2A
https://github.com/google/A2A/tree/main/samples/js
エージェントを起動するまで
進めていく手順の最初は、A2A の公式サンプルのルートで、以下のコマンドを実行します。
cd samples/js
npm install
さらに、以下のコマンドで環境変数の設定して(※ Gemini の APIキーを一時的に使えるようにした形)、その後にエージェントを起動します。
export GEMINI_API_KEY=【Gemini の APIキー】
npm run agents:coder
以下のような表示が出れば OK です。
これで、準備が整いました。
フロントエンドからエージェントとやりとりする
あとは、ブラウザで http://0.0.0.0:12000/agents にアクセスし、エージェントとして「 localhost:41241 」を追加します。その手順は、冒頭に掲載していた記事内をご参照ください。
以下hエージェントを追加する時の画面のキャプチャです。
エージェントとのやりとりができる状態になったはずなので、左メニューからチャット用のメニューを選び、そこでエージェントとのやりとりを試します。
エージェントとのやりとり
試しに「何ができる?」という内容と「タスクを依頼する際の依頼のやり方について、具体例をいくつか教えて」という内容を送ってみました。
その結果について、得られた返答は以下のとおりです。
さらに例示された中で、以下を試してみます。
- Coder Agent、1から10までの数字を出力するPythonスクリプトを書いてください。
- Coder Agent、'Dog'という名前のクラスを定義するPythonコードを書いてください。'name'と'breed'の属性を持ち、'bark'という名前のメソッドを持っていて、'Woof!'と出力するようにしてください。
その返答として、以下を得ることができました。
とりあえず、今回試したかった「A2A の Python用・JavaScript用の公式サンプルを混在させて動作させてみる」という内容は、問題なく動作させられました