Gemini の思考

Gemini 2.5 シリーズのモデルは、レスポンス生成時に内部の「思考プロセス」を使用します。このプロセスは、推論能力の向上につながり、複雑なタスクを解決するために複数ステップの計画を使用するのに役立ちます。そのため、これらのモデルは、コーディング、高度な数学、データ分析など、計画や思考が必要なタスクに特に適しています。

このガイドでは、Gemini API を使用して Gemini の思考機能を操作する方法について説明します。

思考モデルを使用する

思考機能を持つモデルは、Google AI Studio と Gemini API で利用できます。2.5 シリーズのモデルは、プロンプトに基づいて思考するタイミングと思考量を自動的に決定できるため、API と AI Studio の両方で思考はデフォルトでオンになっています。ほとんどのユースケースでは、思考をオンのままにしておくと便利です。ただし、思考をオフにするには、thinkingBudget パラメータを 0 に設定します。

基本的なリクエストを送信する

Python

from google import genai

client = genai.Client(api_key="GOOGLE_API_KEY")
prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example."
response = client.models.generate_content(
    model="gemini-2.5-flash-preview-04-17",
    contents=prompt
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const prompt = "Explain the concept of Occam's Razor and provide a simple, everyday example.";

  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-04-17",
    contents: prompt,
  });

  console.log(response.text);
}

main();

Go

// import packages here

func main() {
  ctx := context.Background()
  client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GOOGLE_API_KEY")))
  if err != nil {
    log.Fatal(err)
  }
  defer client.Close()

  model := client.GenerativeModel("gemini-2.5-flash-preview-04-17")
  resp, err := model.GenerateContent(ctx, genai.Text("Explain the concept of Occam's Razor and provide a simple, everyday example."))
  if err != nil {
    log.Fatal(err)
  }
  fmt.Println(resp.Text())
}

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-04-17:generateContent?key=$GOOGLE_API_KEY" \
 -H 'Content-Type: application/json' \
 -X POST \
 -d '{
   "contents": [
     {
       "parts": [
         {
           "text": "Explain the concept of Occam\''s Razor and provide a simple, everyday example."
         }
       ]
     }
   ]
 }'
 ```

思考モデルに予算を設定する

thinkingBudget パラメータは、レスポンスの生成時に使用できる思考トークンの数についてモデルにガイダンスを提供します。トークンの数が多いほど、より複雑なタスクの解決に必要な詳細な思考に関連付けられます。thinkingBudget は 0 ~ 24576 の整数にする必要があります。思考予算を 0 に設定すると、思考が無効になります。

プロンプトによっては、モデルがトークン予算をオーバーフローまたはアンダーフローすることがあります。

Python

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-2.5-flash-preview-04-17",
    contents="Explain the Occam's Razor concept and provide everyday examples of it",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_budget=1024)
    ),
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash-preview-04-17",
    contents: "Explain the Occam's Razor concept and provide everyday examples of it",
    config: {
      thinkingConfig: {
        thinkingBudget: 1024,
      },
    },
  });

  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-04-17:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [
    {
      "parts": [
        {
          "text": "Explain the Occam\''s Razor concept and provide everyday examples of it"
        }
      ]
    }
  ],
  "generationConfig": {
    "thinkingConfig": {
          "thinkingBudget": 1024
    }
  }
}'

思考モデルでツールを使用する

思考モデルの使用を Gemini のツールや機能と組み合わせることで、テキストの生成以外のアクションを実行できます。これにより、外部システムとやり取りしたり、コードを実行したり、リアルタイム情報にアクセスしたりして、結果を推論と最終的なレスポンスに組み込むことができます。

  • 検索ツールを使用すると、モデルは外部検索エンジンにクエリを実行して、最新情報やトレーニング データ以外の情報を検索できます。これは、最近の出来事や非常に具体的なトピックに関する質問に役立ちます。

  • コード実行ツールを使用すると、モデルは Python コードを生成して実行し、計算の実行、データの操作、アルゴリズムで処理するのが最適な問題の解決を行うことができます。モデルはコードの出力を受け取り、レスポンスで使用できます。

  • 構造化出力を使用すると、自動処理に適した構造化出力形式である JSON でレスポンスを返すように Gemini を制限できます。これは、モデルの出力をアプリケーションに統合する場合に特に便利です。

  • 関数呼び出しは、思考モデルを外部ツールや API に接続するため、適切な関数を呼び出すタイミングと提供するパラメータを推論できます。

ベスト プラクティス

このセクションでは、思考モデルを効率的に使用するためのガイダンスを紹介します。いつもどおり、プロンプトのガイダンスとベスト プラクティスに沿って作成することで、最良の結果を得ることができます。

デバッグとステアリング

  • 推論を確認する: 思考モデルから期待どおりの回答が得られない場合、Gemini の推論プロセスを慎重に分析すると役に立ちます。タスクを分解して結論に至った方法を確認して、その情報に基づいて正しい結果に修正できます。

  • 推論にガイダンスを提供する: 特に長い出力を希望する場合は、プロンプトでガイダンスを提供して、モデルが使用する思考量を制限することをおすすめします。これにより、レスポンス用にトークン出力をより多く予約できます。

タスクの複雑さ

  • 簡単なタスク(思考を必要としない): 単純なリクエストでは、単純な事実の取得や分類など、複雑な推論は必要ありません。思考は必要ありません。次に例を示します。
    • 「DeepMind はどこで設立されましたか?」
    • 「このメールは、会議を希望しているのか、単に情報を提供しているのか?」
  • 中程度のタスク(デフォルト/ある程度の思考): 多くの一般的なリクエストでは、ある程度のステップバイステップ処理や深い理解が役立ちます。Gemini は、次のようなタスクで思考機能を柔軟に使用できます。
    • 光合成と成長を類推する。
    • 電気自動車とハイブリッド車を比較対照する。
  • 難しいタスク(最大の思考能力): 非常に複雑な課題の場合、AI は推論と計画の機能をすべて活用する必要があります。多くの場合、回答を出す前に多くの内部ステップを必要とします。次に例を示します。
    • AIME 2025 の問題 1 を解く: 17b が 97b の約数であるすべての整数基数 b > 9 の合計を求めます。
    • ユーザー認証など、リアルタイムの株式市場データを可視化するウェブ アプリケーションの Python コードを記述します。できるだけ効率的にします。

次のステップ