1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini Deep Research Agent入門 — 自律型AIリサーチをAPIで実装する

1
Last updated at Posted at 2026-03-04

はじめに

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呼び出しとは異なり、以下の自律ループを実行します。

  1. 計画(Planning): 入力クエリを分析し、調査計画を策定
  2. 検索(Searching): Google検索・URL解析で情報を収集
  3. 読解(Reading): 収集した情報を解析・整理
  4. 推論(Reasoning): 情報間の関係性を分析し、結論を導出
  5. レポート生成: 引用付きの構造化されたレポートを出力

このループは最大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"

statuscompleted になったら、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モデル利用に対応しているため、段階的な導入が可能です。

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?