Google ADK エージェント例集

AI/ML

概要

Google ADK Agents は、Google の Agent Development Kit (ADK) と Gemini モデル(gemini-2.5-flash)を用いた小規模なサンプル集です。basic_agent は単一ツール(現在時刻取得のスタブ)を持つシンプルなエージェントを示し、multi_tool_agent は天気ツールと時刻ツールを組み合わせたマルチツール構成を示します。multi_tool_agent ではニューヨークのデモデータを用意し、時刻関連は実際のタイムゾーンデータを利用する実装になっているため、ツール設計やツール間のやり取り、ADK の基本フローを学ぶのに適しています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 3
  • ファイル数: 3
  • メインの言語: Python

主な特徴

  • Google ADK と Gemini(gemini-2.5-flash)を使った学習向けサンプル。
  • 単一ツール(basic_agent)とマルチツール(multi_tool_agent)の比較が可能。
  • マルチツール例は天気データ(デモ)と実タイムゾーンの時刻取得を組み合わせ。
  • コードが小規模で理解・拡張しやすい構成。

技術的なポイント

このリポジトリは「エージェント + ツール」アーキテクチャの入門的サンプルとして整理されています。基本的な技術的着眼点は以下の通りです。

  • ADK を介したエージェント設計: 各サンプルは ADK のパターンに沿って agent.py 等にエージェント本体とツール呼び出しのラッパーを置く構成で、ADK のワークフロー(プロンプト生成 → モデル呼び出し → ツール実行 → 応答合成)を追いやすくしています。これにより、実運用で必要となるツールの分離や責務設計が学べます。

  • ツール分割とインターフェース設計: basic_agent は単一ツールで処理の切り出しイメージを示し、multi_tool_agent は天気(デモデータ)と時刻(実タイムゾーン)という異なる性質のツールを並列に持つことで、ツール選択/ルーティングの実装やツールのテストデータ設計の考え方を示しています。ツールは外部 API を叩く代わりにスタブやデモデータで表現されており、安全に動作確認ができます。

  • モデル選定と用途: README では Gemini の “gemini-2.5-flash” を想定しており、会話的応答やツール呼び出し指示の生成に適したモデル選定がされていることがわかります。実際の運用ではモデルの制約(コスト、レイテンシ、動作特性)に応じたプロンプト調整や出力検証が必要です。

  • 時刻・タイムゾーン処理: multi_tool_agent の時刻ツールは「実タイムゾーンデータ」を利用すると明示されており、タイムゾーン変換や夏時間対応など実務的に厄介な部分を扱うことを想定しています。実装では標準ライブラリや tz データの利用、入力の正規化や境界ケース(UTCオフセット、夏時間切替日)の検証が重要になります。

  • 拡張性と安全性: サンプルは小規模であるため、外部 API キー管理やエラーハンドリング、ロギング、リトライ設計、入力検証といった実運用で必要な要素は追加の課題として残っています。学習用途ではここを拡張することが実装演習になります。

これらのポイントにより、本リポジトリはADKベースのエージェント設計、ツール化の基本、実世界の時刻処理までの導入を短時間で体験できる教材的価値があります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • basic_agent: dir
  • multi_tool_agent: dir

まとめ

ADK と Gemini を使った入門向けエージェント例で、学習や拡張の良い出発点です(約50字)。

リポジトリ情報:

READMEの抜粋:

Google ADK Agents

Small examples built with the Google Agent Development Kit (ADK) and Gemini (gemini-2.5-flash).

Layout

DirectoryDescription
basic_agent/Single-tool agent with a stub get_current_time function.
multi_tool_agent/Weather and time tools (demo data for New York; time uses real timezone data).

Each agent folder contains __init__.py and agent.py with a `roo…