1. となりのデータ分析屋さん
  2. 126. 【前編】AIエージェント..
2025-07-24 17:04

126. 【前編】AIエージェントを自分で作るGoogleのADKとは?data science agentを作ってみよう【前編】【Agent Development Kit】

3/28にりょっち筆頭著者で発売する「マーケティングをAIで超効率化!ChatGPT APIビジネス活用入門」はデータサイエンスが気になる人はmust buy!!


りょっちの初単著「⁠⁠⁠やっぱり宇宙はすごい⁠⁠⁠(SB新書)」がおかげさまで発売後即重版!宇宙×データサイエンスについても描いてるから、コワーカー諸君も必ず手に取ってくれたまえ。


番組の感想や、質問はXから「⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠#となりの分析屋⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠」もしくは、以下おたよりフォームからお寄せください!⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://forms.gle/1Qq3cfqYgVXgs5Qr6⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠


=========================

▼Agent Development Kit

https://google.github.io/adk-docs/


=========================

▼書籍の購入はこちらから

⁠超入門 はじめてのAI・データサイエンス(培風館)⁠


=========================

りょっち

X : ⁠@_ryo_astro⁠

Instagram : @ryo_astro


たっちゃん

X:⁠@tatsuki_2022

サマリー

このエピソードでは、Googleのエージェントデベロップメントキット(ADK)を用いてデータサイエンスエージェントを作成する方法が詳しく説明されます。特に、AIエージェントがどのように機能し、ユーザーとの対話を通じて自律的にタスクを処理する様子が紹介されています。また、複数のエージェントがさまざまなタスクを行う構造や、AIモデルであるジェミニの役割についても解説されています。

エージェントデベロップメントキットの紹介
データアナリストのリョッチです。 データサイエンティストのたっちゃんです。
AIエージェントを作ろう。 わーい。
ということで、Googleが提供している エージェントデベロップメントキット、通称ADK、AKA ADKですね。
はい、ADKね。難しいんだよな。 そう、いやーでもねー
どうなんだろう。これを難しいと捉えるか、 簡単と捉えるか、
まあ、様々です。 もう触ってるってことですか、じゃあ。
そうそうそう、触ってますよ。 なんか
普通に仕事でも使うだろうなーっていうのも思いながら、 いつだっけなぁ、もう
6月、頭ぐらい?半ばぐらいか?に、 なんか、ガーって触ったんだよね。
で、その時になんか、あーっていうのを掴んで、 で、なんか世の中もちょっとエージェントを作るみたいな動きになってるから、
ちょっと一旦、一旦その時に触った内容とかを話していこうかなっていう。
隣のデータ分析屋さん。 この番組は隣の席に知らないことを気軽に聞けるデータ分析屋さんがいたらいいなぁ
データサイエンスエージェントの機能
を叶えるポッドキャストチャンネルです。 なんかね、エージェントを作る
増えたよね、話題として。 話題としては増えたし、いやー結構気になる人多いんじゃないかな。 エージェントを作るって、作り方も様々というか、
何をエージェントと言うかみたいなところからあるじゃないですか。 そうね、割となんかしつこくやってるよね、俺らは。
そうだね。 ワークフローなのかとかっていう話もあるし、
何を持って、どの知能レベルをエージェントと言うのかとかもあるし、 なんか結構人によって定義様々だから、
そう。 エージェントを作るって、何?っていうところから話してもいいかなと思いますけどね。
そうね、どっから話すのがいいのか。 実例から話すのがいいんだと思うんだけど、
Googleが提供しているADKっていうサービスがありますと。 で、そこのエージェントってちょっととっつきずれーよなみたいな話があるから、
Google側もそれを見越して、 テンプレーみたいなのを、
練習問題じゃないけど、用意してくれてるんだよね。 で、その中にデータサイエンスエージェントっていうのがあって、
GitHubで公開されてるんだけど。 で、その、このデータサイエンスエージェントっていうのを、
試しに手元で作ってみたっていう感じ。 何ができるんだ?
まあこれ簡単に言うとなんかね、データサイエンティストっぽい動きが結構自由にできるっていうやつで。
簡単に言うと3つの仕事があって、 1個が、その、まあビッグクエリー、Googleのサービスだからビッグクエリーと接続して何か仕事をするっていう大前提の話の中で、
ビッグクエリーの中のデータを探索してくれるっていうエージェント。 で、そのデータを探索した上でクエリを作って、
SQLのクエリを書いて、それを実行してくれるエージェント。 で、そのデータを使ってマシンラーニングのモデルとかを作っていくっていうのを実行してくれるエージェント。
ていうかまあそういう機能たちが含まれていて、で、なんかこうそいつらを統括するルーティングエージェントと呼ばれるものがさらにその上位概念としているんだよね。
で、俺らユーザーはその上位概念みたいな、そのルーティングエージェントと会話して、例えばこういう分析したいんだけどってそいつに相談すると、
じゃあまずそのデータあるか見てくんねって言って、そのルート、ルーティングエージェントってルートを決めるから、じゃあまずデータ探すの得意な奴に聞いてくるわって言って、
そのエージェントが勝手にどのツールを使うかを選んで見に行ってデータを返してくれるみたいな。
みたいなやって、ああいい感じだねみたいな、じゃあそれでここをこう集計してみたいな言ったら、OKって言ってクエリ作るエージェントに次仕事を投げて、で帰ってきて、
でそしたらクエリが実行できるような形になってるみたいな。で、ああこういうデータあんだーってなって、で、ビーキュー、ビッグクエリって
BQMLっていう機能もあるからマシンラーニングのモデルを作れるんだよね。
で、そしたらじゃあそれで売上げの予測をしたいとか、そういうの話題があったら、そしたらまあそのマシンラーニングのモデルを作るエージェントにタスクを振って、
そいつがまた働くみたいな。みたいなのも、その起点となるAIの、まあ
AIの機能みたいなやつから派生して、あのいろんなツールの選択肢を自律的に選択して、
答えを見つけて返してくれるみたいな。のがこのデータサイエンスエージェント。
マシンラーニングエージェントの活用
なるほどね。いろんなエージェントたちがいるんだ。その、何?ツールの中というか。
あ、そうそうそう。なんかこう、機能に特化したエージェントたちをこう持って、いっぱい作っておくみたいな。
うんうんうん。
で、その最適な道を質問とかチャットの内容に応じて、AIが選んで仕事を振る先を決めて、
で、その振った先のAIがまた動いて、仕事をして返してきたやつを見ることができるみたいな。
なるほどね。 えー、じゃあ人はもう自然言語、もう言葉で
チャットボットみたいなところに、分析の依頼をするだけで、あとはヨシナに
いろんな分析の方法を裏側で動かして、エージェントたちが勝手に動いて、アウトプットが表示されるみたいな。
そういうことが実現できるよってことなんだよね。 そうそうそうそうそう。
うわ、これを欲しいやつ。
ね、じゃあこれちょっとやっぱ細かくちゃんと作ってあって、まずそのね、こいつの武器っていうのはこのマシンラーニングのモデルを作れるっていうところに結構でかい武器があるんだけど、
なんか単純なテンプレートとしてGoogleがサクッと作ってくれたわけじゃなくて、
このADKっていうのを使って、なんかツールを作ってみた、多分これGoogleじゃない人なのかな、みたいな人が
そう、カグルで成果を出すのよ。 30分でカグルの題材とデータを渡して、BQのそのMLを走らせるエージェントに30分で考えさせたモデルで
トップ30に食い込んだみたいな。 そのリポジトリなんだ今、
共有してもらってるやつは。 あ、そうそうそうそう。
こいつはGoogleの人なのかな。そこまで細かく見てなかったんだけど、なんかとりあえずカグルトップ30に
within 30 minutesって言ってたから、30分でいけたんす、みたいな。 っていう風な、まぁなんか実用性というか、実用のこう
耐久性みたいなのがある モデルになってて、で、やっぱそのカグルで成果出したっていうポイントがあるから
マシンラーニングを回すエージェントがより細かく設計されてるっていうのがポイントなのね。
なんかそのマシンラーニングのモデル作るときは、いろんなそのデータ読み込むもそうだけど、なんかその
モデル作るときの設計の思想というか、 っていうのとかも学習させたり、あの
知らせたりしなきゃいけないし、こういうコードでこういうの使ってくれとかっていうのを割とまぁこう 言語でやるにしても指示は結構出さなきゃいけない。
で、能力も割と多岐に渡るから、 えっとこの
マシンラーニングを行うエージェントに関しては、それ自体がツールなんじゃなくて、そいつ自体が
サブエージェントっていう役割を担っていて、
さっき言ってたみたいにルーティングエージェントって呼ばれるものと基本は会話しますと。 で、マシンラーニング系のタスクが渡されたら
俺じゃあそこってあんまわかんないからって言って、まぁ実務に近いよね。 ちょっとマシンラーニング詳しいやつ連れてくるわって言って、
なんか詳しいやつ連れてくるじゃん。みたいな感じで、 えっと
マシンラーニングに特化した別のチャットできるエージェントっていうのがルート先にいるの。 なるほど。
つまり難しいマシンラーニング系のタスクが来たら、あのもう チャットの相手がバトンタッチするのね。そっちのエージェントに。
で、そのエージェントはめっちゃいろんなラグだったりとか、普通にマシンラーニング作る 手段だったりとかいろんな手段を持っていて、そいつと喋ると
エージェントの構造と役割
マシンラーニングに特化した内容をさらに提案してくれるみたいな。 メインエージェントとサブエージェントっていう役割も
別で作られてたりするの。 へー、そうなんだ。
ただ単純にこう、そうルーティングエージェントが3つの選択肢からただ選んでそのAIを使ってとかじゃなくて、
なんか本当に細かい仕事をさせなきゃいけない時は、その細かい仕事にさらに振り分けるための なんか
部長から課長に仕事が渡されるみたいな、そういう流れというか、みたいな感じでより深いところに
構えている別の専門家エージェントみたいな奴らが働いてくれるみたいな感じの構成になっている。
なるほどね。 えー、これさ、そのエージェントが何人もいるよみたいな状態なのは
わかったんだけど、その一つ一つのエージェントの脳みそって 今回だったらジェミニみたいなLLMのモデルなわけじゃない?
あ、そうそうそうそう。 でその
多分基本の脳みそはみんな一緒で各エージェント、それぞれのエージェントがその得意なタスクがあるっていうのは、どうやってその
得意技を各エージェントは持つことができているんですか? それぞれにプロンプトで役割とその背景知識とっていうのを特化した情報を与えておくの。
あ、そういうこと?君はマネージャーだよとか。 あ、そうそうそうそう。
ってなっていって、そいつらをチームみたいな感じで蘇生して作る ような感じ、このデータサイエンスエージェントってやつ。
そのエージェントのその作り方というかが結構なんか元々データサイエンスやってた人
の目線で見ると割と直感的につかみやすいかなっていうのがあって。
なんかあの、まあこれADKのツールとかって例えばこのデータサイエンスエージェントとかもそうなんだけど、パイソンで全部組み立てれるのね。
でこれの組み方で俺めっちゃなんかエモいなぁというか 思い出したのがほらケラスとかでさ
ディープラーニングのモデルとかさ 作る時にさ、シークエンシャルみたいなモデル
というかの引っ張ってきてそこにアドみたいな形でレイヤーをどんどん追加していって ここでコンブ2Dやってみたいな
バックスプーリングしてみたいなやったじゃん。 やりますね、深層学習だから層を何個もこう何層まで深くするかとかを定義するんですよね。
あの感じに近かった。 え、そうな。
なんかその、だからこのエージェントの括りの中に どのエージェントを組みたいかっていうのをまず一個一個その繋がってない個別の
こう 専用エージェントたちを
プロンプトとかでこう作っていって、でそいつになんか変数とかをつけてるやつを 最後なんだっけな
名前忘れちゃったんだけどそいつらを集約する まあなんかリストみたいな感じのところにどんどんどんどん
横並びに入れていくとそいつらがなんかこう 1個束ねられたエージェントとして扱われるみたいな
そういう書き方をすんだよ。だからなんか結構こう 深層学習のレイヤーを積み上げていって
1個のコンポーネントみたいなのにしている感覚にちょっと近かった。 なるほどね、そっかそっか
一つのコンポーネントまとまりにして一つのエージェントとして成り立たせないといけないから、そういう何だろうな
クラスというかインスタンスみたいなのを作ってるんですね、中で。
なるほど っていう感じでね組み上げるのが
このADKの特徴なのか まあADKはとりあえずそうやって
やって、ML 専用エージェント、SQL、Execute専用エージェント、データ探索エージェントみたいな
で、MLの中にさらに細かいツールたちがぶら下がってるみたいな感じで
なんかそのチャットをやり取りするやつを一応エージェントと呼んで、それ以外のやつをツールっていう名前で呼んだりもするらしいんだけど
なんかそういう感じでとにかく一つの塊をいろんなパスをつなぎながら 作り上げていくみたいなのが
エージェントの作り方のざっくりとした流れだった
実践と難しさ
じゃあ実際にどっちはもうこれを動かしてみて、エージェントがこういう仕事してくれるんだなぁとか
こういうコードを書いてるんだなぁっていうのをもう触ってみてるってことなんだ
ああそうそうそうそう
なんか従来のその Pythonの書き方となんか違いというか
なんか特徴というか なんか難しいところもないですか?
ないないない 難しいところはある、そのやっぱ
ほらただでさえプロンプトに依存してちょっとさ 返答とかが変わったりするみたいなさ
不確定性みたいなのがあるのが積み重なっていったりをするから なんかそこの思っている結果をちゃんとこう
制御したものとして出すっていうのは 実務に耐えるものをゼロから作ろうとしたら結構しんどいかなっていう感覚はめっちゃあった
だからなんかちょっとそのセキュリティ云々とか なんかその周りのチェックとかをするほどガッツリちゃんと作ってなかったから
その会社の実データにつなぎ込むとかはやってないんだけど でもね探索方法とかを別に普通に変えれば
ダミーデータとかでは全然できてるから そういうお試しが
だからなんかこれに関しては ある程度その
ジュニアなデータアナリストとかジュニアなデータサイエンティストにお願いするぐらいの感じだったら このテンプレそのまんまで結構いけんじゃないかなっていう感じはちょっとする
隣のデータ分析屋さん 今回も面白いと思ったらフォローやレビューよろしくお願いします
番組の感想や質問はハッシュタグ 隣の分析屋 隣のがひながらで分析屋は漢字でお願いします
また概要欄に貼ってあるお手紙フォームからコメントを寄せてください ではまた
ばいばーい
17:04

コメント

スクロール