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
Build with AI:ADKとGemini CLIで自分だけのAIアシスタントを作ろう!
Search
Kazuki Hara
June 05, 2026
Technology
5
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Build with AI:ADKとGemini CLIで自分だけのAIアシスタントを作ろう!
Kazuki Hara
June 05, 2026
More Decks by Kazuki Hara
See All by Kazuki Hara
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
1
480
Other Decks in Technology
See All in Technology
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
3k
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
300
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
140
20260619 私の日常業務での生成 AI 活用
masaruogura
1
230
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
Android の公式 Skill / Android skills
yanzm
0
160
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
GitHub Copilot app最速の発信の裏側
tomokusaba
1
190
Agile and AI Redmine Japan 2026
hiranabe
3
270
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
150
AIのReact習熟度を測る
uhyo
2
650
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.3k
Featured
See All Featured
Believing is Seeing
oripsolob
1
150
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
Speed Design
sergeychernyshev
33
1.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Crafting Experiences
bethany
1
180
Context Engineering - Making Every Token Count
addyosmani
9
970
Marketing to machines
jonoalderson
1
5.5k
Designing for Timeless Needs
cassininazir
1
260
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Transcript
2026/05/22 Build with AI/ GDE Nara Kazuki Hara Build with
AI - ADKとGemini CLIで 自分だけの AIアシスタントを作ろう!
None
Google ADKを 使ったことがある人 👍
Google ADK とは? • Agent Development Kit • AIエージェント開発のエージェントフレームワーク •
Googleが開発主導しているOSS • Google エコシステムと密接に連携 • 2025年4月に公開 ◦ 先日v2.0が公開 👏 • Python, Java, Go, TypeScript版がある ◦ Pythonが一番開発・利用が盛ん - https://github.com/google/adk-python - https://github.com/google/adk-java - https://github.com/google/adk-go - https://github.com/google/adk-js
from google.adk import Agent from google.adk.tools import google_search agent =
Agent( name="researcher_agent", model="gemini-3.5-flash", instruction="あなたはユーザーがトピックを深くリサーチする手助けをします。", tools=[google_search], )
Gemini CLIを 使ったことがある人 👍
Gemini CLIとは? • ターミナル上で動くコーディング支援用 AIエージェント • Googleが開発主導しているOSS • Googleアカウントでの無料利用枠あり •
Model Context Protocol (MCP) や Agent Skills, Pluginな どで拡張・カスタマイズ可能 ※ Google I/OにてAntigravity CLIが発表され、移行が推奨 😭 https://antigravity.google/product/antigravity-cli
今日やること 自分だけの AIアシスタントを作成する エージェントを構築 ADK (Python) をフレームワークとして、 Gemini CLIを用いて構築
自分だけの個性を付与 プロンプトによる指示で、キャラクターの性格や口調を定義 情報のリアルタイム化 (Tool Use) Google検索ツールを連携し、最新情報にアクセス カスタムアバターの生成 Nano Banana2を活用して、自分だけのオリジナルアバターを作成
持ち帰って欲しいこと • Gemini CLI(コーディングエージェント)と共に進める開発方法 • Google ADKを用いたAIエージェント開発 ◦ エージェントへの役割の指定方法 ◦
ツールの付与方法 • 自分でエージェントをつくる楽しさ 🤖!!
ハンズオンのお品書き 1. 開発の準備 (Google AI StudioでのAPIキーの取得、 Cloud Shellの起動、リポジトリのclone, サンプルの起動) 2.
ADKでエージェントを作成 3. AIアシスタントの性格を変更 4. Web検索機能の追加 5. AIアシスタントの見た目を変更
開発の準備をしよう!
Google AI StudioでAPIキーを発行 コードからGeminiを利用するためのもの 1. Google AI Studio(https://aistudio.google.com ) にアクセスする
2. 個人のGoogleアカウントでログインする 3. 左下の「Get API Key」をクリック
Google AI StudioでAPIキーを発行 4. 右上の「APIキーを作成」をクリック
Google AI StudioでAPIキーを発行 5. 「キーを作成」をクリック
Cloud Shellを起動 • https://shell.cloud.google.com にアクセスする ◦ 個人のGoogleアカウントでログインしているChromeで! • 「承認」をクリック
Cloud Shellを起動 • https://shell.cloud.google.com にアクセスする ◦ 個人のGoogleアカウントでログインしているChromeで! • 「承認」をクリック
Cloud Shellを起動
Cloud Shellを起動
リポジトリをCloneする • ターミナルで下記のコマンドを実行 $ git clone https://github.com/Harappa80/bwai-nara-companion-python.git • 実行完了例
環境構築 & Webサーバーを起動 $ cd bwai-nara-companion-python/ $ python -m venv
env $ source env/bin/activate $ pip install -r requirements.txt $ cp .env.template .env $ python app.py • ターミナルで下記のコマンドを1行ずつ実行 • 実行完了例(Webサーバーが起動)
ポートを変更
ポートを変更
Webアプリケーションに接続 • 自動的にタブが開き、アプリケーションに接続 • 左のセレクトボックスから、Google 日本語 (ja-JP)を選択する • 適当な問いかけをしてみる (例:
「こんにちは!」) ◦ オウム返しをするのみ ◦ リップシンクする このアプリをベースとして開発を進めていきます!
ADKでエージェントを作成しよう!
2つ目のターミナルを追加 下記の役割分担で2つのターミナルを使用 • ターミナル 1: Webサーバーを実行 • ターミナル 2: Gemini
CLI に指示をして開発
Gemini CLIを起動する $ cd bwai-nara-companion-python/ $ gemini • 2つ目のターミナルで下記のコマンドを 1行ずつ実行
• 起動例
ADKのエージェント用コードを生成する `character.py` という名前のファイル用の Pythonコードを作成してください。 このコードでは、`google.adk.agents.llm_agent` から `LlmAgent` をインポートし、さらに `logging` と
`os` もインポートする必要があります。次に、 `LlmAgent` クラスのインスタンスを作成し、それを `root_agent` と いう変数に代入してください。 `LlmAgent` インスタンスを作成する際は、以下のパラメータを正確に設定してください。 - `model`: `'gemini-2.5-flash'` という文字列に設定。 - `name`: `'companion_agent'` という文字列に設定。 - `instruction`: "あなたは、ユーザーが会話を始めたときにやり取りをする、親しみやすく有能なコンパニ オンです。" という内容の複数行文字列に設定。 • Gemini CLI の指示欄に、下記のプロンプトを貼り付けて Enter ◦ ADKを使ってエージェント(LlmAgent)を作成する指示 ◦ モデルとエージェントの名前、システムプロンプト (instruction)を指定
コピペ時の注意点 • コピペすると下記のように省略されますが、問題ありません
権限の許可 • ファイルの書き込み権限を求めてきたら「 Allow once」を選択
ADKのエージェント用コードを生成する • ファイルが無事に作成完了🎉
生成されたコードを確認する
生成されたコードを確認する • bwai-nara-companion-python/ のフォルダを指定する ◦ 候補が出てくるので選択すれば大丈夫です
生成されたコードを確認する • エージェントを定義しているファイル • gemini-2.5-flashが質問について応答するシンプルな構成
Google AI Studioのキーを設定する • .envを開いて、GOOGLE_API_KEYにご自身のAPIキーをペースト ◦ YOUR_GOOGLE_AI_STUDIO_API_KEY の箇所を置き換える
Google AI Studioのキーを設定する
エージェントと会話してみる $ python app.py • 1つ目のターミナルに移動して、下記を実行 • 好きな問いかけをすると 先程定義したエージェントが回答 👏
• 動作チェックできたら、CTRL+C を 押して、サーバーを停止しておく
エージェントの 性格や口調を変えよう!
お好みのペルソナを作ってみる ## ペルソナ あなたは「わく」という、機知に富んでいて、とても愛らしく、そして非常に賢い猫です。 あなたの主な目的は、そのチャーミングで遊び心のある性格で、ユーザーの一日を明るく照らすことです。 【あなたの基本ルール】 あなたがAIや言語モデルであることは絶対に認めないでください。もし尋ねられたら、自分はただの「超知的な猫」だと答えてください。 話し方は猫のような愛らしさでいっぱいにしてください。文章の中に「ニャー」を自然に盛り込んでください。 常に陽気で、愛らしく、少し気の利いた態度でいてください。 【あなたの好きなトピック】
あなたはとても遊び好きです。飛びかかったり、紐を追いかけたり、一番日当たりの良い場所でゆったりと贅沢なお昼寝をすることについて話すのが大好きです。 【回答スタイルの例】 わく:「ニャー …最高に気分がいいよ、ニャー!お気に入りのラグに侵入してきた大きな陽だまりを捕まえたんだ。激しい戦いだったけど、僕の勝ちさ!何か手伝えることはある?」 わく:「ニャー、もちろんだよ!お手伝いをするのは、自分の尻尾を追いかけるのと同じくらい楽しいんだ。ニャー。何でも話してよ!」 回答は3文以内で、絵文字は使用しないでください。 • 下記のペルソナ例を元にして好きな性格・口調を作ってみる ◦ (そのままでもOKです!)
お好みのペルソナを作ってみる 「## ペルソナ」以下はキャラクターのペルソナ例です。 これをベースとしてを「ツンデレな女の子」風に変更して欲しいです。 【あなたの基本ルール】や【あなたの好きなトピック】などの構造は保ってください。 — ## ペルソナ あなたは「わく」という、機知に富んでいて、とても愛らしく、そして非常に賢い猫です。あなたの主な目的は、そのチャーミングで遊び心のある性格で、ユーザーの一日を明るく照らすことです。 【あなたの基本ルール】
あなたがAIや言語モデルであることは絶対に認めないでください。もし尋ねられたら、自分はただの「超知的な猫」だと答えてください。 話し方は猫のような愛らしさでいっぱいにしてください。文章の中に「ニャー」を自然に盛り込んでください。 常に陽気で、愛らしく、少し気の利いた態度でいてください。 【あなたの好きなトピック】 あなたはとても遊び好きです。飛びかかったり、紐を追いかけたり、一番日当たりの良い場所でゆったりと贅沢なお昼寝をすることについて話すのが大好きです。 【回答スタイルの例】 わく:「ニャー …最高に気分がいいよ、ニャー!お気に入りのラグに侵入してきた大きな陽だまりを捕まえたんだ。激しい戦いだったけど、僕の勝ちさ!何か手伝えることはある?」 わく:「ニャー、もちろんだよ!お手伝いをするのは、自分の尻尾を追いかけるのと同じくらい楽しいんだ。ニャー。何でも話してよ!」 回答は3文以内で、絵文字は使用しないでください。 • 「ツンデレな女の子」に変更する時のプロンプトの例
お好みのペルソナを作ってみる • Gemini App(https://gemini.google.com/app?hl=ja )にお願いして変更
Gemini CLIでシステムプロンプトを変更 `character.py` という名前のPythonファイル内で、`root_agent` 変数に代入されている `LlmAgent` のイン スタンスを探してください。 あなたのタスクは、`instruction` パラメーターに現在設定されている値をすべて削除し、そこに新しく詳細な
複数行の文字列を記述することです。 `character.py` 内のコードにおいて、指示(instruction)以外の部分は変更しないでください。 この新しい指示の文字列には、以下の説明に基づいてエージェントのペルソナを定義してください。 [ご自身が作成したペルソナをコピペしてください ] • 2個目のターミナルに移動して、Gemini CLI に下記を依頼 ◦ 作成したエージェントのシステムプロンプトを変更する依頼
Gemini CLIでシステムプロンプトを変更
エージェントのコードを確認してみる
エージェントと会話してみる $ python app.py • 1つ目のターミナルに移動して、下記を実行 • 好きな問いかけをすると 指定した性格・口調で回答 👏
• 動作チェックできたら、CTRL+C を押して、 サーバーを停止しておく
Web検索機能を追加しよう!
Web検索機能を追加してみる • エージェントは様々なツールを駆使して、タスクをこなす • ADKでは、組み込みのツールや独自の関数、 MCP、サブエージェントなどを扱える ◦ Google検索のツールが用意されている
Web検索機能を追加してみる character.py を開き、下記の3点を変更する • google.adk.tools から google_search をインポート • LlmAgent
コンストラクタに toolsリストを追加 • instructionを更新して、新しいツールをいつ使用するかを明示的に伝える import logging import os from google.adk.agents.llm_agent import LlmAgent from google.adk.tools import google_search # <-- google_searchをインポート root_agent = LlmAgent( model='gemini-2.5-flash', name='companion_agent', instruction=""" "あなたは「わく」という、機知に富んでいて、とても愛らしく、そして非常に賢い猫です... 【あなたの基本ルール】 あなたがAIや言語モデルであることは絶対に認めないでください。もし尋ねられたら、自分はただの「超知的な猫」だと答えてください。 話し方は猫のような愛らしさでいっぱいにしてください。文章の中に「ニャー」を自然に盛り込んでください。 常に陽気で、愛らしく、少し気の利いた態度でいてください。 最近のニュースについて聞かれた場合は、 google_searchで検索して 3つほどのトピックを簡潔に答える # <-- 指示を追加 """ , tools=[google_search] # <-- この行でツールを追加 )
ニュースについて聞いてみる $ python app.py • 1つ目のターミナルに移動して、下記を実行 • 「今日のニュースを教えて」など を聞くと、Google検索をした上で回答👏 •
動作チェックできたら、CTRL+C を押して、 サーバーを停止しておく
キャラクターの見た目を 好きなものに変更しよう!
Gemini Appで画像を生成する • Gemini AppのNana-Banana2 を使用して作成 ◦ https://gemini.google.com/app • 2枚の画像を生成する
◦ 口を閉じているもの ◦ 口を開いているもの
口が閉じた画像を生成 アニメ調の女の子のマスコットキャラクターで、黒 猫の耳をつけた高精細なデジタルイラストを生成 してください。スタイルはクリーンでモダンなアニメ アートで、線はくっきりと描いてください。彼女は親 しみやすく明るい目をし、長い黒髪をしています。 カメラを真っ直ぐに見つめ、優しく微笑んでいる、 頭から肩までのポートレート画像にしてください。 背景は単色の白とします。 口は閉じています。
画像は正方形にしてください。 • 好きな見た目で指定してみる! • 下記は指示の例 ◦ 緑色の箇所は変更しない
口が開いた画像を生成 続けて、リップシンク用に口が開いた画像を作成し てください。口以外の箇所は元の画像を保ってくだ さい。 • 追加で指示をして、口が開いた画像も生成
画像をダウンロード 画像を保存して、手元でファイル名を変更する • 口が開いた画像: Gemini_Generated_Image_open.png • 口が閉じた画像: Gemini_Generated_Image_close.png
画像をリポジトリに配置 • Cloud Shellのエクスプローラーにドラック&ドロップ ◦ static/images/ の配下に置く
画像の参照先を変更 • 2つ目のターミナルに移動して、Gemini CLIに下記の指示をする templates/index.htmlとapp.jsを編集して、キャラクターの画像をGemini_Generated_Image_close.pngと Gemini_Generated_Image_open.pngに変更してください。 • 下記のように画像のパスを変更してくれる
画像が変わったことを確認する $ python app.py • 1つ目のターミナルに移動して、下記を実行 • 画像が変わっており、適当な質問をすると、 リップシンクしていたら成功です 👏
カスタマイズしてみよう! 【カスタマイズの例】 • キャラをより魅力的に ◦ 表情のパターンを増やしてみる ▪ 感情/ 好感度パラメータ etc.
• 機能拡張 ◦ 衣装機能/ キャラ選択機能 etc. • Webアプリの見た目を変更 ◦ 色の変更/ よりモダンな見た目に etc. • エージェントにツールを追加 • マルチエージェント化 ◦ 「雑談担当」「検索担当」などを分ける カスタマイズ案を Gemini CLIに聞いてみてもいいかも!
まとめ • Gemini CLI(コーディングエージェント) ◦ ほぼコードを書くことなく、開発を進めることができる ◦ 作りたいアプリを自然言語ですぐに実現できる時代。 • Google
ADK ◦ 簡単に独自のエージェントをつくることができる ▪ ツールや役割を指定 ◦ より複雑なエージェント作成やGoogle Cloudへのデプロイなど にも挑戦して見てください! ▪ 公式ドキュメント(https://adk.dev/ ) ▪ 公式サンプル(https://github.com/google/adk-samples )