【GoogleNextTokyoはAgent一色】まずは触ろう!ADK!(Agent Development Kit)

はじめに

はじめまして、こんにちはー。
逆張り側転ネキことエニシアスDXソリューション部の石田と申します。

私達エニシアスは東京・大阪・そして札幌に拠点を構えるシステム開発会社です。
私はその中でも札幌の部署に所属しており、チームでは普段Google Cloudを使用したアプリケーション開発やシステム導入を行っております。

たまたま出張の機会があり、東京ビッグサイトで行われた「Google Cloud Next Tokyo 25」に情報収集へ行ってきましたので簡単なレポートと流行りのAgent開発に触れてみたのでその内容をご紹介したいと思います!


こういう方に読んでいただくことを想定しています

  • 自分のエージェントを作ってみたい!第一歩の情報収集がしたい!

Google Cloud Next Tokyo 25に行ってみた


ということでGoogle Cloud Next Tokyoの一言感想です。
半端なエンジニアは要らなくなる将来がすぐそこに近づいてきていることを実感し緊張感と不安感を強く感じました…!(ネガティブ!)

どんな内容だったかと言うと、企業さんの展示スペースもブレイクアウトセッションも、生成AIから一歩進んだ生成AIを活用した+αのサービス提供だったり開発ノウハウの紹介、そしてAI Agentの紹介もとても多かったです。
Nextに参加するまでAgentのデモなどの挙動を見たことがなかった私は恥ずかしながら参戦前は自分の言葉でAgentが何かという説明はできませんでした。

Agentのデモを複数見てみて、実にAgentが何者なのかというイメージできたのと企業さんの活用の模索内容を知れたのは大きな収穫でした。

AI Agentってなんだろう?


Googleさんが出されていたデモが非常にわかりやすかったのでご紹介します。

1. ユーザーはAgentに対して「10歳の息子に誕生日プレゼントとして喜ばれるものを買ってあげたい」と伝える
2. UIエージェントはユーザーの意向を理解して検索エージェントに対して適切なプロンプトを発行。「やっほー!今流行りのサイエンス系のおもちゃをインターネット上から検索するように20クエリ実行して」
3. 検索エージェントはUIエージェントの意向を理解して「OK!20クエリを並列で実行・・・”10歳 男の子 実験キット”,”小学生 サイエンスキット”,”男の子 人気 実験 おもちゃ”・・・」
4. セマンティック検索を行いよりマッチ度の高い商品を検索
5. デモで見れたのは4までなのでここからは想像です。恐らくこのあとはユーザーにヒットしたプレゼント候補を提示し、ユーザーに選択させたら購入可能なECサイトの商品のページリンクを提示し購入手続きまでをアシスタント!

…ここまできたらもう完全に「プレゼント購入代行エージェント」ですよね!!


そしてこのようなAI Agentを開発するための開発キットがADK(Agent Development Kit)というわけです。


ADK触ってみた

ということで、Agentがなんなのかということをほんのり知ったレベルの私ですがADKを触ってみようと思いました。

生成AIの発展、Agentの普及できっと従来のエンジニアのお仕事は減ってしまうんじゃないかと不安な気持ちになった反面、「お客様の業務を理解しお客様が求めていることを提供できるエンジニア」の価値は上がると感じたからです。

まずこういうときは公式のチュートリアル!
以下のAgent Development Kit Quickstartに沿って進めていきます。
https://google.github.io/adk-docs/get-started/quickstart/#set-up-environment-install-adk
※ソースコードは公式に載っているものをそのまま使用するので自分で設定する箇所以外の記載は省略します

1.Set up Environment & Install ADK
 まずはPythonの仮想環境を準備し、google-adkをインストール

2. Create Agent Project
 書かれている通りのディレクトリ構成・ソースコードファイルを準備

3. Set up the model
 GoogleCloudプロジェクトを使用しない場合はAI StudioからAPI KEYを取得し環境変数にセット
 今回はVertexAI APIを使用するので環境変数に以下を設定

4. Run Your Agent
 プロジェクトのルートフォルダーで起動コマンドを打つ

するとwebブラウザlocalhost:8080にアクセスするとADKが立ち上がっている…!
そしてチャットUIで簡単にエージェンとと会話ができます。えーーこんな簡単でいいの!?

ただし、デフォルトではニューヨークの天気とニューヨークの時刻についてしか教えてくれません。私の住まいの札幌の天気には興味がないようです(※固定文字列を返すようなサンプルコードのため)

自然言語の解析はroot_agentのmodelに指定したGeminiが使用され、質問内容からどのツールが適切化を判断して回答をくれているらしいです。

さすがにニューヨークの天気とニューヨークの時刻にそこまで興味を持てないので、Geminiへのプロンプトを指定したツールも作成してみます。

vertexaiのモジュールをインポート

Vertex AIを初期化しモデル作成


お肉料理をオススメしてくれる関数を作成

Gemiin宛にプロンプトをリクエストしレスポンスを返す関数を作り、その関数をtoolsに含めるだけ

新しいツールを追加したエージェントにお肉料理のおすすめを尋ねてみると…

get_meat_recommendationが選択され、プロンプトに沿った形でオススメ料理を提示してくれます!
ここまでだとこれまでの生成AIと変わらないですが、これらを組み合わせたりデータソースを独自のものに変更することで私ならではのオリジナルAgentが作れそうです!

さいごに


ここまでで、まずはローカル環境でADKの第一歩を踏み出すことができました!
今回の記事はADKのまだまだ第一歩ですが、これから更にアイディアAgentを作成しデプロイするようにしたいと思います。

それでは、ここまでお読みいただいありがとうございました。

また会う日まで!