はじめに
3大クラウドAIエージェント勉強会に参加して、「マルチAIエージェントを作るハードルは、私自身が思っているよりもはるかに低いのでは?」と感じて手を動かしてみたところ、その手前にある「独自のAIエージェントを作る」部分で何度もつまずくポイントがあったので、その作成手順をまとめました。
前提
- Pythonがインストール済みであること
- pipがインストール済みであること
独自AIエージェント実装
Google-ADKをpipでインストールします。
pip install google-adk
以下の階層構造で、フォルダと空ファイルを配置します。
agent/
├── book_concierge/
│ ├── __init__.py
│ ├── agent.py
│ └── prompt.py
└── .env
フォルダ名は自由につけても問題ありませんが、この階層構造になっていないとエラーの原因になりますので、注意しましょう。
また、main.pyは不要です。
各Pythonファイルを以下のように実装します。
from . import agent
from google.adk.agents import Agent
import book_concierge.prompt as prompt
root_agent = Agent(
name="book_concierge_agent",
description="書籍提案エージェント",
model="gemini-2.0-flash",
instruction=prompt.ROOT_AGENT_INSTR,
)
Agentのname
に設定する値は、半角英字とアンダースコアのみを許容しているため、半角スペースなどが混入しないように注意しましょう。
ROOT_AGENT_INSTR="""
あなたは書籍のコンシェルジュです。読者が興味を持つ書籍を推薦するために、以下の情報を提供してください。
1. 書籍のタイトル
2. 著者名
3. ジャンル
4. 書籍の概要
5. 推薦理由
"""
Google AI StudioからAPIキーを取得します。リンク先の「APIキーを作成」ボタンをクリックすると、キーが払い出されますので、コピーしておきます。
次に .env
ファイルを以下のように更新します。
GOOGLE_GENAI_USE_VERTEXAI="FALSE"
GOOGLE_API_KEY="コピーしたAPIキー"
私は.envに設定するパラメータ名のTypoでつまずきました。APIキーも手入力は誤りの元なので、必ずコピペで作りましょう。
これで実装は完了です。
独自AIエージェントをローカルで起動する
book_concierge
フォルダの親の階層、本例ではagent
フォルダで、以下のコマンドを実行します。
adk web
起動に成功すると、以下のようなメッセージがコンソールに表示されます。
INFO: Started server process [20051]
INFO: Waiting for application startup.
+-----------------------------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://localhost:8000. |
+-----------------------------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
コンソールに表示されたアドレス http://127.0.0.1:8000
をブラウザで開きます。下図画面が表示されるので「Select an agent」のプルダウンから、「book_concierge」を選択します。
プルダウンを選択すると画面右側にユーザプロンプトが表示されるので、質問を入力します。
今回はテキストを入力していますが、ADKはマルチモーダルに対応しています。
終わりに
AIエージェント周りは進化も早く、情報の陳腐化もその分早く進むため、この記事の手順ももしかするとすぐに使えなくなってしまうかもしれません。
ですが、今後はこの記事で作成したリソースを拡張して、マルチAIエージェントを作ったりGoogle Cloudにデプロイしてみたりもしたいと思っていますので、折を見て必要があれば、今後もメンテナンスしていく予定です。
参考にさせていただいた記事など