はじめに
GoogleのGemini APIに、自律型リサーチエージェント「Deep Research Agent」が追加されました。Interactions API(Beta)を通じて利用でき、複雑な調査タスクを計画・検索・分析・レポート生成まで自動で実行します。
この記事で学べること
- Gemini Deep Research Agentの仕組みと特徴
- Interactions APIのセットアップ方法
- Python / JavaScript / REST APIでの実装方法
- ストリーミング、ファイル検索、フォローアップの活用方法
- 料金体系と制約事項
対象読者
- AIエージェントの実装に関心があるエンジニア
- 調査・分析業務の自動化を検討している開発者
- Gemini APIを活用したアプリケーションを構築したい方
前提環境
- Python 3.10以上(Python SDKを使用する場合)
-
google-genaiパッケージ 1.55.0以上 - Google AI Studio のAPIキー
TL;DR
- Deep Research AgentはGemini 3.1 Proベースの自律型リサーチエージェント
- Interactions API経由でのみ利用可能(
generateContentでは不可) - Web検索・URL解析を自動実行し、引用付きレポートを生成
- 非同期実行(
background=True)が必須。最大60分、通常20分以内で完了 - Python / JavaScript / REST APIの3通りで実装可能
Deep Research Agentとは
Deep Research Agentは、Gemini APIで利用できる特化型エージェントです。通常のLLM呼び出しとは異なり、以下の自律ループを実行します。
- 計画(Planning): 入力クエリを分析し、調査計画を策定
- 検索(Searching): Google検索・URL解析で情報を収集
- 読解(Reading): 収集した情報を解析・整理
- 推論(Reasoning): 情報間の関係性を分析し、結論を導出
- レポート生成: 引用付きの構造化されたレポートを出力
このループは最大60分間継続し、複雑な調査でも自律的に処理を完了します。公式ドキュメントによると、ほとんどのタスクは20分以内に完了します。
主な特徴
| 特徴 | 詳細 |
|---|---|
| ベースモデル | Gemini 3.1 Pro |
| エージェントID | deep-research-pro-preview-12-2025 |
| 最大実行時間 | 60分 |
| 平均実行時間 | 2〜20分 |
| デフォルトツール | Google Search、URL Context |
| マルチモーダル入力 | テキスト、画像、PDF、動画(音声は非対応) |
| 出力形式 | 引用付きMarkdownレポート |
環境セットアップ
APIキーの取得
Google AI Studioにアクセスし、APIキーを発行します。
Python SDKのインストール
pip install -U google-genai
バージョン1.55.0以上が必要です。以下のコマンドでバージョンを確認できます。
pip show google-genai
環境変数の設定
export GEMINI_API_KEY="your-api-key-here"
Python SDKでの実装
基本的なリサーチ実行
最もシンプルな実装例です。リサーチクエリを送信し、完了までポーリングで待機します。
import time
from google import genai
client = genai.Client()
# リサーチの開始(非同期実行が必須)
interaction = client.interactions.create(
input="2026年のAIエージェントフレームワークの主要動向を調査してください",
agent="deep-research-pro-preview-12-2025",
background=True
)
print(f"リサーチ開始: {interaction.id}")
# 完了までポーリング
while True:
status = client.interactions.get(interaction.id)
print(f"ステータス: {status.status}")
if status.status == "completed":
# 最終レポートを取得
report = status.outputs[-1].text
print(report)
break
elif status.status == "failed":
print(f"エラー: {status.error}")
break
time.sleep(10) # 10秒間隔でポーリング
ポイント: background=True は必須パラメータです。Deep Research Agentは長時間実行されるため、同期実行には対応していません。
ストリーミングでリアルタイム進捗を取得
エージェントの思考プロセスをリアルタイムで確認したい場合は、ストリーミングモードを使用します。
from google import genai
client = genai.Client()
stream = client.interactions.create(
input="Kubernetes上でのAIワークロード最適化の最新手法を調査してください",
agent="deep-research-pro-preview-12-2025",
background=True,
stream=True,
agent_config={
"type": "deep-research",
"thinking_summaries": "auto"
}
)
interaction_id = None
last_event_id = None
for chunk in stream:
# インタラクションIDの取得
if chunk.event_type == "interaction.start":
interaction_id = chunk.interaction.id
print(f"インタラクションID: {interaction_id}")
# イベントIDの追跡(再接続用)
if chunk.event_id:
last_event_id = chunk.event_id
# コンテンツの処理
if chunk.event_type == "content.delta":
if chunk.delta.type == "text":
print(chunk.delta.text, end="", flush=True)
elif chunk.delta.type == "thought_summary":
print(f"\n[思考] {chunk.delta.content.text}")
# 完了イベント
if chunk.event_type == "interaction.complete":
print("\n\nリサーチ完了")
thinking_summaries を "auto" に設定すると、エージェントが検索中に何を考えているかの中間サマリーが返されます。デバッグやUX向上に有用です。
ファイル検索との組み合わせ
社内ドキュメントとWeb情報を横断的に調査する場合、File Search機能を利用します。
interaction = client.interactions.create(
input="社内の技術選定基準と最新のWeb情報を比較分析してください",
agent="deep-research-pro-preview-12-2025",
background=True,
tools=[
{
"type": "file_search",
"file_search_store_names": ["fileSearchStores/internal-docs"]
}
]
)
File Search機能は現在Experimental(実験的機能)です。本番環境での利用には注意が必要です。
フォローアップ質問
完了したリサーチに対して追加の質問を行う場合、previous_interaction_id を使用します。これにより、前回のリサーチ結果を文脈として引き継ぎます。
# 初回リサーチのインタラクションIDを指定
followup = client.interactions.create(
input="レポートの第2セクションについて、具体的な実装例を追加で調査してください",
model="gemini-3.1-pro-preview",
previous_interaction_id="完了したインタラクションのID"
)
print(followup.outputs[-1].text)
フォローアップではモデルとして gemini-3.1-pro-preview を直接指定します。Deep Research Agentの再起動は不要で、前回の結果をコンテキストとして即座に回答が得られます。
JavaScript SDKでの実装
Node.js環境での実装例です。@google/genai パッケージ 1.33.0以上が必要です。
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function runResearch(query) {
const interaction = await client.interactions.create({
input: query,
agent: "deep-research-pro-preview-12-2025",
background: true,
});
console.log(`リサーチ開始: ${interaction.id}`);
// ポーリングで完了を待機
while (true) {
const result = await client.interactions.get(interaction.id);
if (result.status === "completed") {
const report = result.outputs[result.outputs.length - 1].text;
console.log(report);
return report;
}
if (result.status === "failed") {
throw new Error(`リサーチ失敗: ${result.error}`);
}
// 10秒待機
await new Promise((resolve) => setTimeout(resolve, 10000));
}
}
runResearch("TypeScript 5.xの型システムの最新機能を調査してください");
REST APIでの実装
SDK非対応の環境では、REST APIを直接呼び出します。
リサーチの開始
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"input": "WebAssemblyの最新仕様と実装状況を調査してください",
"agent": "deep-research-pro-preview-12-2025",
"background": true
}'
レスポンスに含まれる id フィールドがインタラクションIDです。
ステータス確認と結果取得
curl -X GET \
"https://generativelanguage.googleapis.com/v1beta/interactions/{INTERACTION_ID}" \
-H "x-goog-api-key: $GEMINI_API_KEY"
status が completed になったら、outputs 配列の最後の要素からレポートを取得します。
Interactions APIとgenerateContentの違い
Deep Research Agentは Interactions APIでのみ利用可能 です。従来の generateContent とは以下の点で異なります。
| 項目 | generateContent | Interactions API |
|---|---|---|
| 実行モデル | 同期 | 同期 + 非同期(background) |
| 状態管理 | クライアント側で会話履歴を送信 |
previous_interaction_id でサーバー側管理 |
| エージェント対応 | なし | Deep Research Agent等の専用エージェント |
| ツール実行 | 1ターンのFunction Calling | 自律的な多段階ツール実行 |
| 最大実行時間 | リクエストタイムアウトまで | 最大60分 |
| ストリーミング | テキスト生成のストリーム | イベントベース(思考サマリー含む) |
| データ保持 | なし | 有料プラン55日、無料プラン1日 |
Interactions APIは generateContent の上位互換として設計されており、通常のテキスト生成にも利用可能です。
料金と制約
料金の目安
公式ドキュメントによると、Deep Research Agentの料金はGemini 3 Proの標準料金に準じ、入力・出力・中間推論トークンすべてが課金対象です。
| リサーチ規模 | 推定検索回数 | 推定入力トークン | 推定出力トークン | 推定コスト |
|---|---|---|---|---|
| 標準的な調査 | 約80回 | 約250,000 | 約60,000 | $2〜$3 |
| 複雑な調査 | 約160回 | 約900,000 | 約80,000 | $3〜$5 |
上記は公式ドキュメントに基づく推定値です。キャッシュトークンの割引(50〜70%)が適用される場合、実際のコストはさらに低くなります。料金体系はBeta期間中に変更される可能性があります。
制約事項
| 制約 | 詳細 |
|---|---|
| 最大実行時間 | 60分 |
| 音声入力 | 非対応 |
| カスタムFunction Calling | 非対応 |
| MCPサーバー | 非対応 |
| 構造化出力 | 非対応 |
background パラメータ |
True が必須 |
store パラメータ |
background=True 時は True が必要 |
| データ保持期間 | 有料プラン: 55日、無料プラン: 1日 |
| API安定性 | Beta(スキーマ変更の可能性あり) |
実践的なユースケース
1. 技術選定のリサーチ自動化
interaction = client.interactions.create(
input="""以下の技術について比較調査を実施してください:
- 対象: React Server Components vs Astro Islands vs Qwik
- 調査項目: パフォーマンス、DX、エコシステム、採用事例
- 出力形式: 比較表を含むレポート""",
agent="deep-research-pro-preview-12-2025",
background=True
)
2. セキュリティ脆弱性の影響調査
interaction = client.interactions.create(
input="""CVE-2026-XXXXの影響範囲を調査してください:
- 影響を受けるバージョン
- 攻撃ベクトルと深刻度
- 既知の修正パッチとワークアラウンド
- 主要クラウドプロバイダーの対応状況""",
agent="deep-research-pro-preview-12-2025",
background=True
)
3. 競合製品の定期リサーチ
interaction = client.interactions.create(
input="""以下の製品の最新アップデートを調査してください:
- GitHub Copilot
- Cursor
- Claude Code
- Codex CLI
調査期間: 過去1ヶ月、公式ブログ・リリースノートを重点的に確認""",
agent="deep-research-pro-preview-12-2025",
background=True
)
注意点・留意事項
レート制限
Interactions APIにはレート制限が適用されます。無料プランでは1日あたりの実行回数に制限があるため、本番運用では有料プランの利用が推奨されます。具体的な制限値は公式のRate Limitsページを参照してください。
結果の検証
Deep Research Agentはレポートに引用(ソースURL)を含みますが、AI生成コンテンツである以上、重要な意思決定に使用する前に一次ソースでの検証が推奨されます。
BetaAPIの変更リスク
Interactions APIはBeta段階のため、エンドポイントやパラメータが変更される可能性があります。本番環境での利用にはバージョン固定やフォールバック処理の実装を検討してください。
まとめ
- Gemini Deep Research Agentは、複雑な調査タスクを自律的に実行できるAPIサービス
- Interactions APIの
background=Trueで非同期実行し、ポーリングまたはストリーミングで結果を取得 - Python / JavaScript / REST APIの3通りで実装可能
- 料金はGemini 3.1 Proベースのトークン課金。標準的な調査で$2〜$3程度
- Beta段階のため、スキーマ変更リスクへの備えが必要
技術選定、セキュリティ調査、競合分析など、構造化されたリサーチが必要な場面で特に有効です。Interactions APIはDeep Research Agent以外にも通常のGeminiモデル利用に対応しているため、段階的な導入が可能です。