4 ポイント 投稿者 ragingwind 6 일 전 | まだコメントはありません。 | WhatsAppで共有

GoogleがGemini Deep Research AgentをAPIとして公開しました。Deep Researchとは、ユーザーが投げた質問に対してAIが自ら検索計画を立て、複数のWebページを探索・比較・統合し、出典付きの長文レポートを自動生成する機能です。従来はGoogle AI StudioのWeb UIでしか使えませんでしたが、今回、Interactions APIという新しい非同期方式のインターフェースを通じて、開発者が自分のアプリに直接統合できるようになりました。既存のgenerate_content呼び出しとは異なり、処理はバックグラウンドで数分にわたって実行されるため、リクエスト送信後に定期的に完了可否を確認する(polling)か、ストリーミングで進行状況を受け取る構成になります。

提供モデル

  • deep-research-preview-04-2026 : 速度と効率に重点。クライアントUIへリアルタイムにストリーミングする用途に適しています。
  • deep-research-max-preview-04-2026 : 可能な限りの網羅性を追求。自動化されたコンテキスト収集と統合に強みがあります。

主要機能の要約

  • 協調型プランニング(Collaborative Planning) : すぐにリサーチを実行せず、まずエージェントが計画案を提示します。ユーザーが確認・修正して承認すると、その時点で本格的な実行に入ります。
  • チャートとインフォグラフィックの自動生成 : visualization="auto"オプションを有効にすると、エージェントが自動的にチャートやグラフを作成し、base64エンコード画像として返します。
  • MCPサーバー連携 : Model Context Protocol(外部ツールをLLMに接続するオープン規格)をサポートしており、金融データなど外部サービスのツールをエージェントに接続できます。
  • 拡張ツールセット : Google検索、URLコンテンツ読み取り、コード実行を標準搭載。ファイル検索(アップロード文書対象)とMCPサーバーをオプションで追加できます。
  • マルチモーダル入力 : テキストだけでなく、画像、PDF、音声ファイルもリサーチのコンテキストとして一緒に渡せます。
  • リアルタイムストリーミングと思考要約 : リサーチの進行状況をリアルタイムでストリーミング受信でき、thinking_summaries="auto"を有効にすると、エージェントの中間推論過程も要約形式で確認できます。

主なコード例

もっとも基本的な使い方です。background=Trueで非同期処理を開始し、10秒間隔で完了可否をポーリングします。

import time  
from google import genai  
  
client = genai.Client()  
  
interaction = client.interactions.create(  
    input="Research the history of Google TPUs.",  
    agent="deep-research-preview-04-2026",  
    background=True,  
)  
  
while True:  
    interaction = client.interactions.get(interaction.id)  
    if interaction.status == "completed":  
        print(interaction.outputs[-1].text)  
        break  
    elif interaction.status == "failed":  
        print(f"Research failed: {interaction.error}")  
        break  
    time.sleep(10)  

協調型プランニングの流れです。まずcollaborative_planning=Trueで計画だけを受け取り、フィードバックを与え、最後にFalseへ切り替えることで実際のリサーチが始まります。単に"go ahead"というテキストだけを送り、フラグを切り替えなければレポートは生成されない点に注意が必要です。

# 1段階: 計画をリクエスト  
plan = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input="Research Google TPUs vs competitor hardware.",  
    agent_config={"type": "deep-research", "collaborative_planning": True},  
    background=True,  
)  
while (result := client.interactions.get(id=plan.id)).status != "completed":  
    time.sleep(5)  
print(result.outputs[-1].text)  # 計画案を出力  
  
# 2段階: 計画を修正(previous_interaction_idで会話を継続)  
refined = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input="Add a section comparing power efficiency.",  
    agent_config={"type": "deep-research", "collaborative_planning": True},  
    previous_interaction_id=plan.id,  
    background=True,  
)  
while (result := client.interactions.get(id=refined.id)).status != "completed":  
    time.sleep(5)  
print(result.outputs[-1].text)  # 修正された計画案  
  
# 3段階: 承認後に実行(必ずcollaborative_planning=Falseへ切り替える)  
report = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input="Plan looks good!",  
    agent_config={"type": "deep-research", "collaborative_planning": False},  
    previous_interaction_id=refined.id,  
    background=True,  
)  
while (result := client.interactions.get(id=report.id)).status != "completed":  
    time.sleep(5)  
print(result.outputs[-1].text)  # 最終レポート  

チャート生成とマルチモーダル入力の例です。可視化オプションは有効にしつつ、プロンプト内でどのようなチャートが欲しいのかを具体的に明示すると、より良い結果が得られます。

# チャート付きリサーチ  
interaction = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input="Analyze global semiconductor market trends. Include charts showing market share changes.",  
    agent_config={"type": "deep-research", "visualization": "auto"},  
    background=True,  
)  
  
# PDF論文をコンテキストとして渡すマルチモーダルリサーチ  
interaction = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input=[  
        {"type": "text", "text": "What has been the impact of this research paper?"},  
        {"type": "document", "uri": "https://arxiv.org/pdf/1706.03762", "mime_type": "application/pdf"},  
    ],  
    background=True,  
)  

MCPサーバーを接続して外部の金融データをエージェントに提供する例です。allowed_toolsでエージェントが呼び出せるツールを制限することもできます。

interaction = client.interactions.create(  
    agent="deep-research-preview-04-2026",  
    input="Research how recent geopolitical events influenced USD interest rates",  
    tools=[  
        {  
            "type": "mcp_server",  
            "name": "Finance Data Provider",  
            "url": "https://finance.example.com/mcp",  
            "headers": {"Authorization": "Bearer my-token"},  
        }  
    ],  
    background=True,  
)  

差別化ポイント

  • 単純なRAG(検索拡張生成、外部文書を検索してLLMに渡す手法)や1回限りの質疑応答ではなく、計画・検索・統合という長いスパンのリサーチワークフローを1つのAPIで自動化した点が目を引きます。特に協調型プランニングは、「エージェントが自律的に進めるが、方向性は人が決める」という設計思想をよく示しています。
  • 公開Web検索と非公開文書検索をツール設定だけで組み合わせられるため、企業内資料に基づくリサーチにも活用できる可能性があります。

示唆

  • AIリサーチエージェントがAPIレベルまで降りてきたことで、別個のエージェントフレームワークなしでもアプリケーションに「ディープリサーチ」機能を直接統合できるようになりました。ただし、非同期ポーリング方式のAPI構造は、従来の同期型LLM呼び出しに慣れた開発者に設計パターンの転換を求めるものであり、数分単位の応答遅延をUX上どう扱うかが、実導入時の重要課題になりそうです.

まだコメントはありません。

まだコメントはありません。