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

Gemini Intelligence 入門 ― AppFunctions と Gemini ...

Avatar for takuro abe takuro abe
October 19, 2026

Gemini Intelligence 入門 ― AppFunctions と Gemini Nano

Avatar for takuro abe

takuro abe

October 19, 2026

More Decks by takuro abe

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 takuro abe クラスメソッド株式会社 リテールアプリ共創部 • • • • •

    兵庫県出⾝、現在は東京都在住 Flutter を中⼼にモバイルアプリを開発 FlutterKaigi 2026 運営スタッフ(クラスメソッドも協賛) 直近の案件ではバックエンド‧インフラにも挑戦中 DevelopersIO: abe-tk / X: @abe_tk6 2
  2. このセッションは「ちょっと未来」の話です お話しする機能は、すべて正式リリース前です ※2026 年 10 ⽉ 16 ⽇時点 Gemini Intelligence

    2026 年夏から提供開始 ⼀部の国‧⾔語が対象 ⽇本での提供時期は未発表 AppFunctions Gemini Nano Early Access Program Gemini 連携は限定公開プレビュー ML Kit GenAI API:ベータ (⾳声認識 API のみアルファ) 出典: developer.android.com/ai/intelligence-system、developers.google.com/ml-kit/genai(2026/10 確認) 4
  3. Gemini Intelligence は Android 端末向けの AI 機能群 操作 ⼊⼒ UI

    アプリ操作の⾃動化 Autofill with Google Create My Widget アプリをまたぐ操作を代⾏ フォーム⼊⼒を⾃動で埋める ⾔葉でウィジェットを作る Gemini in Chrome Rambler UI デザインの刷新 調査‧⽐較、auto browse で代⾏ 話し⾔葉を⽂章に整える Material 3 Expressive 出典: Google「A smarter, more proactive Android with Gemini Intelligence」(2026 年 5 ⽉) 6
  4. Gemini がアプリを操作する 1 写真を添えて Gemini に依頼 2 Gemini が Expedia

    アプリを操作 3 進捗は通知で確認できる 4 最後の予約はユーザーが確定 「これに似た 6 ⼈で参加できるツアーを Expedia で探して」 その間ユーザーはチャットを閉じて、ほかのことをしていてよい 通知から「タスクを停⽌」「進捗を表⽰」をいつでも選べる Gemini は予約画⾯まで準備し、確定はユーザーが⾏う デモ GIF: Android Developers Blog「Building for the Intelligence System on Android」(2026/5) より。CC BY 2.5 7
  5. Intelligence System:エージェントがアプリを動かす 4 つの⽅法 対応:不要 Computer Control 画⾯を⾒て操作する 対応:必要 AppFunctions

    アプリの関数を呼ぶ 本セッションで深掘り Remote MCP A2UI バックエンドにつなぐ ⽣成された UI を描画 出典: developer.android.com/ai/intelligence-system、Android Developers Blog(2026/2‧5) 8
  6. AppFunctions とは 頼む相⼿ 操作するための⼝ 操作される側 PC Claude Code MCP Gmail‧GitHub

    など スマホ Gemini AppFunctions アプリ アプリの機能を「関数」として公開し、AI エージェントが呼び出せるようにする仕組み 出典: developer.android.com/ai/appfunctions (2026 年 9 ⽉更新) 10
  7. AppFunctions の仕組み アプリ Android OS エージェント ① 関数と説明(KDoc)を登録する ② 関数の⼀覧と説明を読む

    ③ 依頼に合う関数を選び、OS 経由で呼ぶ ④ 実⾏結果を返す 出典: developer.android.com/ai/appfunctions 11
  8. 公式サンプル:TODO を作成する AppFunction @AppFunctionServiceEntryPoint( serviceName = "TaskAppFunctionService", ...) abstract class

    BaseTaskAppFunctionService : AppFunctionService() { /** * Creates a task based on [createTaskParams]. * * @param createTaskParams The parameter to describe * how to create the task. */ @AppFunction(isDescribedByKDoc = true) suspend fun createTask( createTaskParams: CreateTaskParams, ): Task { if (createTaskParams.title == null && ...) { throw AppFunctionInvalidArgumentException("...") } val id = taskRepository.createTask(...) return taskRepository.getTask(id)?.toTask() ?: throw AppFunctionElementNotFoundException("...") } } @AppFunctionServiceEntryPoint 関数をまとめるサービスの⼊⼝ KDoc AI が読む説明(何をする関数か‧引数) @AppFunction 関数を公開し、KDoc を説明として登録 AppFunction…Exception 失敗の理由をエージェントに伝える 出典: AppFunctions ロジックを実装する(公式サンプルを抜粋‧簡略化) 12
  9. ⼿元の Android で探してみたら… $ adb shell cmd app_function list-app-functions 9

    アプリ 47 関数 すでに端末に⽤意されていた • • • • • • • • • Google Play 開発者サービス 18 設定 13 eSIM 4 Pixel Buds 4 Digital Wellbeing 3 Google アプリ 2 メッセージ 1 権限コントローラ 1 Pixel サポート 1 ※ ただし Gemini から AppFunctions を呼ぶのは限定公開プレビュー。そこで今回は Claude Code を代わりに使って試す Pixel 10 / Android 17 で確認、2026/10 14
  10. 検証:AI エージェントは端末の関数をどう⾒つけて、どう呼ぶのか 構成 Claude Code(Mac) → adb(USB) → Pixel 10

    / Android 17 依頼 「ダークモードをオンにして」 Claude Code が adb shell cmd app_function を実⾏して、端末の関数を直接呼ぶ 問い 1 問い 2 ⾒つける 呼ぶ AI はどうやって関数を⾒つけ、使い⽅を知るのか 呼ぶと、何が起きるのか Pixel 10 / Android 17、adb shell cmd app_function で実⾏、2026/10(公開前の機能のため仕様は変わる前提) 15
  11. 問い 1 ⾒つける:関数名で絞り、項⽬の説明から探す 依頼 「ダークモードをオンにして」 1 関数を探す list-app-functions 2 項⽬を探す

    getDeviceStateMetadata 3 項⽬と引数を決める 他アプリの共通仕様を参照 $ adb shell cmd app_function \ list-app-functions # 出力(抜粋)9 アプリ・47 関数 com.android.settings: getDeviceStateMetadata getDeviceStateItem setDeviceStateItem … ほか 10 個 # 説明・引数の定義:なし $ adb shell cmd app_function \ execute-app-function \ --package com.android.settings \ --function getDeviceStateMetadata \ --parameters '{}' # 291 項目を dark・ダーク・night・ # theme・ui_mode で絞り込み dark_ui_mode api_dark_ui_mode api_night_display … ほか 4 画面(計 7 画面) # 選んだ項目 key: dark_ui_mode/dark_ui_activated possibleValues: BOOL writable: true # 引数の形(Play 開発者サービス・ # Wellbeing の定義から) schema: devicestate.v1 SetDeviceStateItemParams: key(必須), value(必須) → 関数名で設定アプリに絞る → キーワードで 7 画⾯に絞れた → 引数は他アプリの定義で判明 Claude Code が adb shell cmd app_function で実⾏した記録から抜粋‧整形。Pixel 10 / Android 17、2026/10 16
  12. 問い 2 呼ぶ:その場で切り替わった 依頼 「ダークモードをオンにして」 4 今の値を読む 5 getDeviceStateItem 値を変える

    setDeviceStateItem 6 確かめる getDeviceStateItem $ adb shell cmd app_function \ execute-app-function \ --package com.android.settings \ --function getDeviceStateItem \ --parameters '{"getDeviceStateItemParams": {"key":"dark_ui_mode/dark_ui_activated"}}' # 戻り値 jsonValue: "false" $ adb shell cmd app_function \ execute-app-function \ --package com.android.settings \ --function setDeviceStateItem \ --parameters '{"setDeviceStateItemParams": {"key":"dark_ui_mode/dark_ui_activated", "value":"true"}}' # 戻り値 isSuccessful: true currentValue: "true" # ④ と同じコマンドを再実行 $ adb shell cmd app_function \ execute-app-function … \ --function getDeviceStateItem … # 戻り値 jsonValue: "true" → 今はオフ(false) → ダークモードに切り替わった → 値も true に変わっていた Claude Code が adb shell cmd app_function で実⾏した記録から抜粋‧整形。Pixel 10 / Android 17、2026/10 17
  13. わかったこと 特別なことはなく、探す → 決める → 呼ぶ だけだった PC で Claude

    Code に頼むときと同じ流れ(実際そうなんですが‧‧) だから、正しく呼ばれるかは呼ばれる側(アプリ)の設計次第 Claude Code が adb shell cmd app_function で実⾏した記録から抜粋‧整形。Pixel 10 / Android 17、2026/10 18
  14. 開発者として AppFunctions をどう設計するか 観点 考えること ポイント 公開範囲 どの機能を関数として公開するか AI に頼まれそうな操作から選ぶ(例:写真検索)

    説明 AI に関数を正しく選ばせる KDoc に⽤途と引数を書く。ないと AI は推測で補う ことになる 確認 取り消せない操作をどう扱うか 取り消せない操作は、アプリ側で確認を挟む 出典: AppFunctions 概要‧追加ガイド、Android Developers Blog(2026/2)、実機検証(2026/10) 19
  15. Gemini Nano とは:OS が持つ AI で、Gemini Intelligence の前提 Android 端末

    アプリ開発者が作る部分 Google / OS が提供する部分 スマホアプリ Gemini Intelligence (エージェント) AppFunctions @AppFunction で公開した機能 AIがアプリの機能を呼ぶ ML Kit GenAI API を使う機能 対応条件(nano-v3 以上) アプリがAIに推論を依頼 AICore + Gemini Nano(OS のシステムサービス) Gemini Nano:端末の中で動く Google の LLM。モデルの配布‧更新は AICore が管理する 出典: developer.android.com/ai/gemini-nano、android.com/gemini-intelligence(英語版、2026/10 確認) 21
  16. アプリが AI を使う:ML Kit GenAI API で Gemini Nano を呼ぶ

    呼ぶ側 呼ぶための⼝ 呼ばれる側 AI が アプリを使う Gemini AppFunctions アプリ アプリが AI を使う アプリ ML Kit GenAI API Gemini Nano (AICore) 端末の中で動く LLM の Gemini Nano を、アプリから ML Kit GenAI API で呼び出せる API:要約‧校正‧書き換え‧画像説明‧Prompt(Beta)、⾳声認識(Alpha) 制約:対応端末のみ(checkStatus() で確認)∕ フォアグラウンドのみ ∕ ⼊⼒は 4,000 トークン未満 出典: developers.google.com/ml-kit/genai(2026/10 確認) 22
  17. 使い所:⾼頻度で軽い処理を、端末で オンデバイスが向く処理 • • • 実例:⾃然⽂検索をタグに翻訳 オフラインでも動かしたい 機密データを端末の外に出したくない ⾼頻度の軽い処理(⾔い換え‧分類) 「春に着られる安いジャケット」

    Prompt API がタグに⾔い換え ⻑い⼊⼒や複雑な処理は苦⼿。その場合はクラウドに 切り替える(ハイブリッド推論) クラウドで同じ処理をすると 1 万ユーザー × 1 ⽇ 10 回で ⽉約 4 万円 10 万ユーザーなら ⽉約 40 万円 ジャケット, アウター, 春, プチプラ, カジュ アル 既存のタグ検索に OR で渡す 単語⼀致では出なかった商品もヒット Gemini 2.5 Flash-Lite、1 回 ⼊⼒ 500‧出⼒ 100 トークンで試算 モデルには検索させず、⾔い換えだけ任せる 詳しくはブログで: DevelopersIO「Prompt API で⾃然⽂検索をタグに翻訳する」(2026/7) 23
  18. まとめ Gemini Intelligence で、Android は「AI がアプリを操作する」OS になる 開発者が関わる⼊⼝は 2 つ

    AI がアプリを使う AppFunctions で機能を公開し、何をどう呼ばせるかをアプリ側で決める アプリが AI を使う 同じ端末の Gemini Nano を ML Kit GenAI API で呼び、軽い処理を端末内で済ませる 今からできること:⾃分たちのアプリで、AI に任せるとユーザーの⼿間が減る場⾯を探す 25