Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
Search
Kazuki Hara
November 27, 2025
Programming
0
400
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
Kazuki Hara
November 27, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
AI & Enginnering
codelynx
0
120
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
620
CSC307 Lecture 05
javiergs
PRO
0
500
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
690
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Python’s True Superpower
hynek
0
110
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Navigating Team Friction
lara
192
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Odyssey Design
rkendrick25
PRO
1
500
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Design in an AI World
tapps
0
150
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Transcript
Google ADKを活用した AI Agent開発と運用知見 2025/11/19 「CA.ai#3 〜事例から学ぶ実践 AIエージェント開発〜」 株式会社サイバーエージェント MIU
AI戦略本部 原 和希
1.導入の背景 2.Google ADKとは? 3.品質向上テクニック 4.UI/UX 5.Observability 6.Deployment 7.おわりに
原 和希 株式会社サイバーエージェント / MIU AI戦略本部 AIエンジニア • Google Developer
Experts (Google Cloud: AI) • CyberAgent Developer Experts (Google Cloud/ ML) • X: @harappa80
AI Agentを開発している方 ✋
ADKを使って開発している方 ✋
今日話すこと /話さないこと 【今日話すこと 】 • ADKでできることの紹介 • 自社での開発を通して得られた知見 【今日は話さないこと 】
• 作成しているAI Agentの具体的な仕様
今日のゴール 【ADKにまだ詳しくない方】 • ADKがAgent Frameworkの 候補の1つになる • Agent開発のTipsを知り、活かせる 【既にADKを使っている方】 •
ADKをより使いこなす • 情報共有・議論をしましょう! (懇親会でぜひ🍻)
導入の背景
開発しているアプリケーション とあるメディアサイトの記事校正支援用 AI Agent 📝 • 業務効率化が目的 • 社内用のWebアプリケーションとして提供
開発過程 n8nで開発をはじめた ◦ ローコードで早く開発・展開することが狙い ◦ Agent機能もあり、ツールも多く、初期段階はスムーズに進んだ
開発過程 ワークフローが肥大化 • 管理コストの増大、属人化が加速 • メモリー不足が発生 柔軟性が乏しい • 結局コードノードにPythonコードを書いていた ◦
使用できるPythonライブラリに制限
開発過程 n8nからADKへと移行( LangGraphも候補) ◦ Coding Agentの成長と普及もあり、エンジニアなら コードを書いた方が早く・高品質 ◦ ツール連携を活用しつつ、自由度高く開発ができる
ローコードツール or Agent Framework ローコードツール • 簡易的なAI機能の開発 • 素早く作れて便利 •
非エンジニアにも👍 Agent Framework • 中-高程度の規模/ サービスイン • Coding Agentを使って時短 • エンジニア向け
Google ADKとは?
ADKとは? - https://github.com/google/adk-python - https://github.com/google/adk-java - https://github.com/google/adk-go - https://github.com/google/adk-js •
Agent Development Kit • AIエージェント開発のフレームワーク • Googleが開発主導しているOSS • 2025年4月に公開 • Python, Java, Go, TypeScript版がある ◦ Pythonが一番開発・利用が盛ん
ADKを採用した理由 •使い慣れたGoogle Cloudとの連携 •Google Workspaceとの連携 •複数プロバイダーのモデルを利用できる •利用可能なToolが豊富
基本的なAgent定義方法 ※ gemini-3-pro-previewも既に使えます!
ADK Web 開発用のWebUI イベントやトレース、Stateの確認・ 評価などが可能 •adk web コマンドで起動 •ノーコードでのAgent構築にも対応 ◦
Visual Agent Builder
None
Agent Type Agent Typeのコンポーネントが大きく3種類 • LLM Agent • Workflow Agent
◦ Sequential ◦ Parallel ◦ Loop • Custom Agent これらを組み合わせて Agentシステムを構築
任意のLLMを使用可能 https://www.litellm.ai/ • モデルのロックインは避けたい ◦ LLMの性能向上は日進月歩 • LiteLLMにより、 Google以外のベンダー /
独自モデル を利用可能 ※ Geminiとの相性が一番よい (Google検索, Context Cashなど)
豊富なツールを利用可能 • ADK組み込みのツール • LangChain, CrewAI のツール • MCP https://google.github.io/adk-docs/tools/
品質向上テクニック
専門家チームをつくる設計思想
1つのLlmAgentに全てを任せると … • Tool選択の難易度が上昇 : ◦ 多数のツールを持つと、どれをいつ使うかの判断が困難 • Contextの肥大化: ◦
コンテキストを圧迫し、コスト増加と精度低下を招く • 品質改善・デバッグが困難 : ◦ 役割・依存関係が曖昧になる 例: 「旅行プラン作成もレビューも予約も全部やるLlmAgent」
マルチエージェントにする 役割ごとに SubAgentに分割し、専門タスクに集中させる • 役割: ◦ ”同じ情報・目的” を共有する単位 ◦ 業務効率化の場合、
1業務として切り出せるか • SubAgentをLlmAgentやWorkflow Agentなどでオーケストレーション 例: 「プラン作成Agent」「レビューAgent」「予約実行Agent」
マルチエージェントのメリット • 品質改善 ◦ SubAgentごとにプロンプトやロジックの改善が可能 • デバッグが容易に ◦ バグ発生時にどのAgentが原因かを特定しやすい •
再利用性の向上 ◦ 共通処理は他のAgentシステムでも使える
レビュープロセスを組み込む 一定の基準に達するまで「生成 →レビュー→再生成」を繰り返す • Reflectionパターン • 一度の生成で高品質を実現するのは困難 なため • LoopAgentで実装可能
Loop Agent LlmAgent 【校正内容生成】 LlmAgent 【レビュー】
チェックリストを作成 レールを敷いて、タスクの抜け漏れ・無駄な作業を省く • 実行タスクのチェックリストを作成 (例: Claude Code) • Plannerには強力な推論モデルをアサイン ◦
BuildinPlanner(Gemini), PlanReActPlanner(その他) • 指示が曖昧: フォローアップ or 指示拡張するLlmAgentを前段に配置 Sequential Agent LlmAgent(Planner使用) 【チェックリスト生成】 LlmAgent(Tool利用) 【タスク実行】
モデルを適材適所で使い分ける 生成品質・コスト・レイテンシの観点で決定 • 最先端モデル(Gemini-2.5-Proなど): ◦ 実行計画を立てる時 ◦ 最終的な出力を生成する時 • 軽量モデル
(Gemini-2.5-Flashなど): ◦ Web検索など、ツールの実行タスク
複数のモデルで並列生成 並列で生成を行い、結果を統合する • 同様のタスクでもLLMによって出力傾向が異なる • Parallel Agentで実装可能 LLM Agent (結果を統合)
Sequential Agent 参考: https://google.github.io/adk-docs/agents/workflow-agents/parallel-agents/
動的/固定ルーティングの使い分け 何でもかんでも LLMにルーティングをさせない • 現状はAgenticな動的ルーティングは完璧ではない • ハイブリッドに採用 ◦ 決定論的なタスク: Sequential
Agent ◦ 柔軟性が必要なタスク: LlmAgent 業務プロセスを分解、性質を見極めて決定することが重要
CustomAgentの活用 https://google.github.io/adk-docs/agents/custom-agents/
CustomAgentの活用 任意のロジックを組み込みたいケース • LLM介さないロジック ◦ 例: Webから記事を取得, 外部APIを使用 • LLMAgentのツール実行でも関数を呼べるが、注意が必要
◦ ツールを“必ず実行してくれる”とは限らない
CustomAgent + Sequential Agent 「毎回実行したい」「決定論的に流したい」場合の解決策 • LlmAgentによるミスを低減 • 確実に処理を実行できるフローを構築できる Sequential
Agent CustomAgent 【Web記事取得】 CustomAgent 【マークダウン変換】 LlmAgent 【記事要約】
CustomAgentの実装方法 • BaseAgentを継承してクラスを作成 • 実行ロジックを非同期メソッド内(_run_async_impl)に実装 • セッション状態(ctx.session.state)を使用して、データ受け渡し
None
output_schemaで出力形式を固定 フローの安定性・アプリケーション側での取扱いが向上 • 出力をJSON形式に固定 (内部で専用ツールを呼び出して固定) • PydanticのBaseModelで定義 • 後続のAgentが生成物を参照しやすく
リトライの実装 レートリミットやリソース不足でのエラーを低減 • LlmAgentにリトライを設定しておく ◦ Geminiではretry_options ◦ LiteLlmではretry_policy 参考:Gen AI
SDK & ADK で実装する 429 エラーのリトライ&フォールバック戦略
Contextを上手く管理しよう Contextに何が挿入されるのかを丁寧に設計・把握 不必要なものを与えない • トークン数が増加すると... ◦ Contextから情報を正確に参照するのが困難に ◦ レスポンスが悪化 ◦
コストも増加 Context Rot: How Increasing Input Tokens Impacts LLM Performance
Context管理のテクニック • LlmAgentのinclude_context ◦ 会話履歴を参照するか決める • Context Compression ◦ 会話履歴を要約
• Session State ◦ 必要なStateのみをプロンプトに含める • BuiltInPlanner ◦ ThinkingConfigのinclude_thoughtsを設定
UI/UX
どのような UIで提供するか 文章校正アプリケーションでは、 • フォーム形式の UI ◦ 柔軟な応答を必要としない機能なため • ユーザー応答は逐次、選択形式(ボタン/
チェックボックス )で取得
「AI Agent = チャットアプリ」ではない 目的に合わせた UIで実装することが重要 チャット形式 : 想定する入力の柔軟性・機能のカバー範囲が広いケース
AI Agentの処理プロセスを見える化 • AI Agentはどうしてもレイテンシが高くなる • ユーザーの待ち時間に安心感を与える 【導入例】 • 実行しているSubAgentやToolの情報を表示
• タスク全体の何%が完了しているか → ADKのEventを取得して、フロントエンドで表示 (参考: https://google.github.io/adk-docs/events/ )
Human-in-the-Loopを組み込む 100%意図している出力を得ることは困難 → 人間を介入させることで、品質を担保する • 生成物の確認やステップ実行に人間が介入する ◦ 入力・編集、承認など • 承認/否認:
require_confirmation • JSON形式の応答: tool_confirmation (参考: https://google.github.io/adk-docs/tools-custom/confirmation/ )
Human-in-the-Loopを組み込む 記事の校正アプリケーションでは、 反映する校正内容をユーザーが選択・編集可能にしている
Observability
Langfuseの活用 • ADK Webと併用して、開発時のデバッグに活用 ◦ レイテンシ・エラーの特定 • OpenTelemetry互換のサービスに対応 ◦ (一覧)
• GoogleADKInstrumentorを使用して OpenTelemetryスパンを送信 https://langfuse.com/integrations/frameworks/google-adk
Deployment
デプロイ VertexAI Agent Engine/ CloudRun/ GKE と相性がよい • adk deploy
cloud_run/ agent_engineコマンド 文章校正アプリケーションでは、 CloudRunにデプロイ • 社内アプリケーションであり、小規模利用 • Agent Engine固有の機能を利用しなかった (検討中)
デプロイ VertexAI Agent Engine: • Session Service(永続性)/Memory Bank(長期記憶)/Code Execution(コード 実行)など、固有の機能を利用したい
• Gemini EnterpriseからのAgent使用を検討している GKE: • 大規模なサービスでAgentを提供する • Open Modelを同クラスタにデプロイ
おわりに
とはいえ、継続的に使われる AI Agentを作るのは大変 😿。
最近思っていること • AI Agent開発の領域 (特にAgentic AI)はまだ発展途上 ◦ 我々も手探りで進めている状態 • スポット導入ではなく、根付かせるまでが重要
◦ Agent導入が目的にならないように、業務改善を主眼に ◦ 業務を丁寧に分解・言語化していく • Agentロジックに加えて、 UI/UXを合わせた体験設計も重要 • 品質担保のためには、出力評価も重要
一旦、なんでも好きな Frameworkを触ってみる • AI Agentに必要な機能や、出来る・出来ないことがわかる • ADKは頻繁に新機能がリリースされて楽しい!
まずはQuickstartからぜひ https://google.github.io/adk-docs/get-started/python/
ご清聴ありがとうございました 🙏