Gemini Provider Tools

参照元: LiveKit Agents Documentation ロードマップ: 学習ロードマップ

対象ページ: https://docs.livekit.io/agents/models/llm/gemini/#provider-tools

What(何についてか)

Google GeminiをLiveKit Agentsで利用する際のProvider toolsを整理する。対象となるツールは GoogleSearchGoogleMapsURLContextFileSearchToolCodeExecution の5種類である。これらはモデルサーバ側で実行されるビルトイン機能であり、エージェントコード内のFunction toolsとは実行責務が異なる。

Why(なぜ必要か)

Gemini連携ではツールの種類だけでなく、APIモードごとの制約を理解しないと設計が破綻する。特に重要なのは、Provider toolsとFunction toolsの同時利用可否がモード依存である点である。Realtime要件、開発速度、制御性のバランスを判断するために、この制約を先に把握する必要がある。

How(どう動くか)

GeminiのProvider toolsは google.LLM(...)tools=[...] の組み合わせで有効化する。旧 _gemini_tools パラメータは廃止され、Provider tools方式へ統一されている。FileSearchfile_search_store_names が必須であり、他ツールは用途に応じてオプションを指定する。

また、利用モードに応じた制約がある。

graph TD
    A[Gemini integration] --> B[Gemini Live API]
    A --> C[Gemini text models]
    B --> D[Provider tools + Function tools 併用可]
    C --> E[どちらか片方のみ]

この制約により、実装時は「機能要件」より先に「推論モード」を決める必要がある。

Key Concepts

用語説明
Provider toolsモデル提供側サーバで実行される組み込みツール。Geminiでは5種を提供。
Function toolsエージェントコード側で定義する関数ツール。ロジック制御に向く。
Gemini Live APIProvider toolsとFunction toolsの併用が可能なモード。
Gemini text modelsProvider toolsまたはFunction toolsのどちらか片方のみ利用可能。
FileSearchファイルストア検索ツール。file_search_store_names が必須。

実装メモ

最小構成例(Python):

from livekit.plugins import google
 
agent = MyAgent(
    llm=google.LLM(model="gemini-2.5-flash"),
    tools=[google.tools.GoogleSearch()],
)

制約吸収の設計方針として、上位では「必要能力」を宣言し、下位でProvider tools/Function toolsへの振り分けを行うアダプタ層を設けると、APIモード差分を局所化できる。

一言まとめ

Gemini Provider toolsは強力だが、Live APIとtext modelで併用条件が異なるため、ツール選定より先に推論モードを決める設計が必要である。