Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門

第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門

下記、勉強会での資料です。
https://youtu.be/BCaj7YlwrLU

Avatar for iret.kumoben

iret.kumoben

July 02, 2025
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 講師自己紹介 DX開発事業部 セクションリーダー 
 2019年入社
 PjM、プリセールス、たまに開発もやるプレイングマネージャー
 
 ・2024 iret テクニカルアンバサダー

    
 ・2024 Google Cloud Partner All-star in Sales 
 ・Google Cloud Partner Top Engineer 2025 Fellow 
 ・2023 - 2024 Japan AWS All Certifications Engineer 
 
 最近ハマってるもの:西山ダディダディ 
 @danishi 西田 駿史 2

  2. お話すること • Agent Development Kit ( ADK )とは? • ADK

    でできること
 • 実践 ADK でエージェントを作って Agent Engine にデプロイする
 • まとめ
 3

  3. ※ただし AI エージェントにこれといった明確な定義は存在せず
 まず AI エージェントとは 
 5
 特定の目的やタスクをまるで人間のように自律的に遂行 する

    AI アプリケーションのこと。
 ユーザーの指示や環境からの情報を受け取り、判断・行動 を行うよう設計される。
 以下の要素で構成される。
 1. 自律性: 人間の介入なしで自分で判断・行動できる
 2. 目標指向: ある目的(例:質問に答える、スケジュールを管理するなど)を達成するように動作
 3. 知覚と応答 : ユーザーからの入力や環境の情報を取得・利用し反応する
 4. 学習と自己改善 : 経験から学んだり、自身の行動を評価する

  4. 群雄割拠の様相を呈する AI エージェント開発 
 • フルスクラッチで作成
 • LangChain などの LLM

    アプリ開発フレームワークを利用する
 • Dify などの SaaS のエージェント構築機能を利用する
 • Amazon Bedrock エージェント、Vertex AI Agents
 • その他 Agent 開発に特化したフレームワーク
 (LangGraph、OpenAI Swarm、CrewAI、Mastra、etc…)
 6
 AI エージェントを開発するための選択肢(他にもあると思います)
  5. • オープンソース : GitHub で公開( Python v1.0.0リリース済み、 Java もでた)
 •

    柔軟なマルチエージェント構成 :複数のエージェントを階層的に組み合わせ連携できる
 • 複数のモデルに対応 : Gemini 以外の他社モデルにも対応
 • デプロイ環境の柔軟性 : Agent Engine ( GA 済)、 Cloud Run 、 GKE 、 Docker などに対応
 • 豊富なツール統合 : Google 検索などの組み込みツールに加え、OpenAPI や MCP も
 • 多様な実行手段 : CLI や Web API 、 SDK 、組み込みの Web UI での実行をサポート
 • 組み込みの評価フレームワーク :ステップバイステップの実行過程を評価できる
 • セッションとメモリ管理 :エージェントの状態管理やメモリ機能で複雑なタスクを遂行
 • アーティファクトによるユーザーデータ管理 :バイナリや大きなデータを扱える
 • コールバック関数 :エージェント、モデル、ツールの呼び出しの前後で関数を実行
 • スターターパック :公式のスキャフォールド(GoogleCloudPlatform/agent-starter-pack)
 Agent Development Kit(AKD)とは? 
 8
 AI エージェント開発に特化した Google 謹製 の OSS SDK が登場!
  6. クイックスタート(Cloud Shellで) 
 10
 https://google.github.io/adk-docs/get-started/quickstart/ 1. $ pip install google-adk

    2. コードを記述(公式を和訳) 3. $ adk web 4. ブラウザ実行環境が立ち上がる
  7. マルチエージェント機能でエージェントにチームを組ませる 
 13
 weather_agent_team = Agent( name="weather_agent", model=MODEL_GEMINI_2_0_FLASH, description="メインのコーディネーターエージェント。天気のリクエストを処理し、あいさつや別れの言葉は専門エージェントに委任する。 ",

    instruction="あなたはチームをまとめるメインの天気エージェントです。主な責任は天気情報を提供することです。 " "「get_weather」ツールは、特定の天気リクエスト(例:「ロンドンの天気」)にのみ使用してください。 " "あなたには専門のサブエージェントがいます: " "1. 'greeting_agent':'Hi' や 'Hello' のような簡単なあいさつを処理します。これらはこのエージェントに委任してください。 " "2. 'farewell_agent':'Bye' や 'See you' のような簡単な別れの言葉を処理します。これらはこのエージェントに委任してください。 " "ユーザーの問い合わせを分析し、それがあいさつなら 'greeting_agent' に、別れの言葉なら 'farewell_agent' に委任してください。 " "天気リクエストであれば、自分自身で 'get_weather' を使って処理してください。 " "その他の内容については、適切に応答するか、対応できないことを伝えてください。 ", tools=[get_weather], # エージェントが使うツール sub_agents=[greeting_agent, farewell_agent] # タスクを委任することができるエージェント候補 )
  8. マルチエージェントのオーケストレーションの種類 
 14
 BaseAgent クラス 継承 継承 継承 LLMベース ワークフローエージェント

    カスタムロジック LLMAgent, Agent LLMをエンジンとし 自然言語の推論、計画 応答生成 処理方法や使用ツールを 動的に決定する 非決定論的 SequentialAgent, ParallelAgent, LoopAgent エージェントのフロー制御自体に LLMを使用せず 事前に定義された決定論的 なパターンで実行制御 ・シーケンシャル:複数エージェントを順次実行 ・パラレル:複数エージェントを並列実行 ・ループ:複数エージェントを繰り返し 3種類のパターンでエージェントにタスクを委任 CustomAgent 独自のロジックで制御 要件に応じ 開発者がカスタマイズ
  9. エージェントの道具となる多様なツールをサポート 
 15
 1. Function Tools:アプリケーションのニーズに合わせてユーザーが作成したツール a. 関数:いわゆる Function Calling

    b. Agent-as-Tools:定義したエージェントを ToolAgent クラスでラップ c. Long Running Function Tools:非同期実行したり、完了までに長い時間がかかるツール 2. Built-in Tools: ADK が提供する、 Google Cloud ネイティブなツール a. Google 検索 b. コード実行 c. Vertex AI Search による RAG 3. Third-Party Tools:LangChain や CrewAI などの外部ライブラリのツールを統合 4. その他:OpenAPI ツール、MCP ツール
  10. セッション・メモリによる状態管理と記憶、アーティファクトによるユーザーデータ管理 
 16
 1. Session:一連の会話スレッド 2. State: セッションに保存された状態管理ストア 3. Memory:複数のセッションにまたがって検索できる情報のストア

    4. Artifacts:特定のセッション、または複数のセッションにまたがり永続的に名前付きでバージョン管 理されたバイナリデータ(ユーザーのアップロードデータやエージェントが生成したファイル)を格納す るための機能、保存場所は Cloud Storage ( GCS ) 実行環境のメモリ空間 GCSなどの外部ストレージ Artifacts ・生成されたレポート /ファイル ・ユーザーのアップロードの処理 ・中間ファイル、キャッシュ ・永続的なユーザーデータ Memory Session Session State
  11. def block_keyword_guardrail ( # コールバック関数 callback_context : CallbackContext , llm_request

    : LlmRequest ) -> Optional [LlmResponse ]: """ 最新のユーザーメッセージに 'BLOCK' が含まれているかを検査します。 含まれていれば、 LLM の呼び出しをブロックし、あらかじめ定義された LlmResponse を返します。 含まれていなければ None を返し、そのまま処理を継続します。 """ agent_name = callback_context.agent_name # モデル呼び出しをフックしているエージェント名を取得 # --- ガードレールロジック --- keyword_to_block = "BLOCK" if keyword_to_block in last_user_message_text.upper (): # 大文字小文字を無視して検査 # オプション:ステートにフラグを立ててブロックイベントを記録 callback_context.state ["guardrail_block_keyword_triggered" ] = True # フローを中断してこのレスポンスを返す return LlmResponse ( content=types.Content ( role= "model", # エージェントからの応答として扱われるよう設定 parts= [types.Part (text=f"リクエストに禁止キーワード '{keyword_to_block }' が含まれているため、処理できませ ん。")], ) # 必要に応じて error_message を設定することも可能 ) else: # キーワードが見つからなかった場合は処理を続行 print(f"--- コールバック : キーワードが見つかりませんでした。 {agent_name } の LLM 呼び出しを許可します。 ---") return None # None を返すと ADK は通常通り LLM にリクエストを送信する コールバックの実装 
 18
 root_agent_model_guardrail = Agent ( # コールバックを呼び出すエージェント name="weather_agent_model_guardrail" , model=root_agent_model , description= "メインエージェント:天気の提供、挨拶と別れの委任、入力キーワー ドのガードレールを含む。 ", instruction= "あなたはメインの天気エージェントです。 'get_weather_stateful' を使って天気を提供してください。単純な挨拶は 'greeting_agent' に、別れの挨拶は 'farewell_agent' に委任してください。天 気、挨拶、別れのリクエストのみを処理してください。 ", tools=[get_weather ], sub_agents= [greeting_agent , farewell_agent ], output_key= "last_weather_report" , before_model_callback=block_keyword_guardrail # <<< ガードレール コールバックを指定 )
  12. 構成図
 20
 Cloud Shell Streamlit で
 デプロイしたエージェントを使う Web アプリを実行
 ADK

    でエージェントを開発、Agent Engineにデプロイ
 Cloud Shell 上で
 立ち上げた Web アプリにアクセス
 ブログ作成エージェント
 Agent Engine Vertex AI 
 ・Gemini
 ・Imagen
 Cloud Storage 
 デプロイパッケージ保存
 ・情報収集サブエージェント 
 ・記事生成サブエージェント 
 ・アイキャッチ生成ツール

  13. • ADKは、AI エージェント開発にフォーカスした Google の謹製の SDK
 Agent Engine と組み合わせて簡単にオリジナルの AI

    エージェントを構築できる
 
 • AI エージェントに注目が集まるなかプラットフォームやフレームワークが続々登場してきている
 (5月に AWS が発表した Strands Agents など)
 
 • 本編では触れていないが、Google はエージェント同士の通信規格である Agent2Agent( A2A ) や組織でエー ジェントを利用するための SaaS 統合プラットフォームである Google Agentspace などのプロダクトも出してきてお り、AI エージェント開発プラットフォームのデファクトを担おうとしている戦略性を感じる
 
 • アイレットは2025 Google Cloud Partner Award of the Year にて
 Artificial Intelligence – Japan を受賞!
 Google Cloud で生成 AI エージェントをやるならぜひアイレットへ! 
 まとめ
 27