Pensando

Los modelos de Gemini 2.5 pueden usar un "proceso de pensamiento" interno que mejora significativamente sus capacidades de razonamiento y planificación de varios pasos, lo que los hace muy eficaces para tareas complejas, como la programación, las matemáticas avanzadas y el análisis de datos.

Puedes configurar la cantidad de razonamiento que puede realizar un modelo con un presupuesto de pensamiento. Esta configuración es especialmente importante si reducir la latencia o el costo es una prioridad. Además, revisa la comparación de la dificultad de las tareas para decidir cuánto podría necesitar un modelo su capacidad de pensamiento.

Usa un modelo de pensamiento

Usa un modelo de pensamiento como usarías cualquier otro modelo Gemini (inicializa el proveedor Gemini API que elijas, crea una instancia GenerativeModel, etcétera). Estos modelos se pueden usar para tareas de generación de texto o código, como generar resultados estructurados o analizar entradas multimodales (como imágenes, videos, audio o PDFs). Incluso puedes usar modelos de pensamiento cuando transmites el resultado.

Modelos compatibles

Solo los modelos Gemini 2.5 admiten esta capacidad.

  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite-preview-06-17

Prácticas recomendadas para usar modelos de pensamiento

Te recomendamos que pruebes tu instrucción en Google AI Studio o Vertex AI Studio, donde puedes ver el proceso de pensamiento completo. Puedes identificar las áreas en las que el modelo se haya desviado para que puedas definir mejor tus instrucciones y obtener respuestas más coherentes y precisas.

Comienza con una instrucción general que describa el resultado deseado y observa las ideas iniciales del modelo sobre cómo determina su respuesta. Si la respuesta no es la esperada, ayuda al modelo a generar una mejor respuesta con cualquiera de las siguientes técnicas de instrucción:

  • Proporcionar instrucciones paso a paso
  • Proporciona varios ejemplos de pares de entrada-salida
  • Proporciona orientación sobre cómo se deben redactar y dar formato a las respuestas y los resultados.
  • Proporciona pasos de verificación específicos

Además de las instrucciones, considera usar estas recomendaciones:

  • Establece instrucciones del sistema, que son como un "preámbulo" que agregas antes de que el modelo se exponga a otras instrucciones de la instrucción o del usuario final. Te permiten dirigir el comportamiento del modelo según tus necesidades y casos de uso específicos.

  • Establece un presupuesto de pensamiento para configurar la cantidad de razonamiento que puede realizar el modelo. Si estableces un presupuesto bajo, el modelo no "pensará demasiado" su respuesta. Si estableces un presupuesto alto, el modelo puede pensar más si es necesario. Establecer un presupuesto de pensamiento también reserva una mayor parte del límite total de tokens de salida para la respuesta real.

  • (Si usas Vertex AI Gemini API) Asegúrate de habilitar la supervisión de IA en la consola de Firebase para que puedas supervisar la latencia de las solicitudes que tienen habilitado el pensamiento. Ten en cuenta que los tokens de pensamiento aún no se muestran en los paneles de supervisión.

Controla el presupuesto de pensamiento

Para controlar la cantidad de razonamiento que el modelo puede realizar para generar su respuesta, puedes especificar la cantidad de tokens del presupuesto de pensamiento que se le permite usar.

Puedes establecer manualmente el presupuesto de pensamiento en situaciones en las que necesites más o menos tokens que el presupuesto de pensamiento predeterminado. Más adelante en esta sección, encontrarás una guía más detallada sobre la complejidad de las tareas y los presupuestos sugeridos. A continuación, se incluyen algunas orientaciones generales:

  • Establece un presupuesto de pensamiento bajo si la latencia es importante o para tareas menos complejas.
  • Establece un presupuesto de pensamiento alto para las tareas más complejas

Cómo establecer el presupuesto de pensamiento

Haz clic en tu proveedor de Gemini API para ver el contenido y el código específicos del proveedor en esta página.

Establece el presupuesto de pensamiento en un GenerationConfig como parte de la creación de la instancia de GenerativeModel. La configuración se mantiene durante toda la vida útil de la instancia. Si deseas usar diferentes presupuestos de pensamiento para diferentes solicitudes, crea instancias de GenerativeModel configuradas con cada presupuesto.

Obtén más información sobre los valores de presupuesto de pensamiento admitidos más adelante en esta sección.

Swift

Establece el presupuesto de pensamiento en un GenerationConfig como parte de la creación de una instancia de GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
let generationConfig = GenerationConfig(
  thinkingConfig: ThinkingConfig(thinkingBudget: 1024)
)

// Specify the config as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  generationConfig: generationConfig
)

// ...

Kotlin

Establece los valores de los parámetros en un GenerationConfig como parte de la creación de una instancia de GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
val generationConfig = generationConfig {
  thinkingConfig = thinkingConfig {
      thinkingBudget = 1024
  }
}

// Specify the config as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
  modelName = "GEMINI_MODEL_NAME",
  generationConfig,
)

// ...

Java

Establece los valores de los parámetros en un GenerationConfig como parte de la creación de una instancia de GenerativeModel.


// ...

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
ThinkingConfig thinkingConfig = new ThinkingConfig.Builder()
    .setThinkingBudget(1024)
    .build();

GenerationConfig generationConfig = GenerationConfig.builder()
    .setThinkingConfig(thinkingConfig)
    .build();

// Specify the config as part of creating the `GenerativeModel` instance
GenerativeModelFutures model = GenerativeModelFutures.from(
        FirebaseAI.getInstance(GenerativeBackend.googleAI())
                .generativeModel(
                  /* modelName */ "<var>GEMINI_MODEL_NAME</var>",
                  /* generationConfig */ generationConfig
                );
);

// ...

Web

Establece los valores de los parámetros en un GenerationConfig como parte de la creación de una instancia de GenerativeModel.


// ...

const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Set the thinking configuration
// Use a thinking budget value appropriate for your model (example value shown here)
const generationConfig = {
  thinkingConfig: {
    thinkingBudget: 1024
  }
};

// Specify the config as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, { model: "GEMINI_MODEL_NAME", generationConfig });

// ...

Dart

En la próxima versión de Flutter, se incluirá la compatibilidad para establecer un presupuesto de pensamiento.

Unity

En la próxima versión de Unity, se podrá establecer un presupuesto de pensamiento.

Valores admitidos para el presupuesto de pensamiento

En la siguiente tabla, se enumeran los valores del presupuesto de procesamiento que puedes establecer para cada modelo configurando el thinkingBudget del modelo.

Modelo Valor predeterminado Rango disponible para el presupuesto de pensamiento Valor para
inhabilitar el pensamiento
Valor para
habilitar el pensamiento dinámico
Valor mínimo Valor máximo
Gemini 2.5 Pro 8,192 128 32,768 No se puede desactivar -1
Gemini 2.5 Flash 8,192 1 24,576 0 -1
Gemini 2.5 Flash‑Lite 0
(el pensamiento está inhabilitado de forma predeterminada)
512 24,576 0
(o no configures el presupuesto de pensamiento en absoluto)
-1

Inhabilita el razonamiento

Para algunas tareas más sencillas, no es necesaria la capacidad de pensamiento, y la inferencia tradicional es suficiente. O bien, si reducir la latencia es una prioridad, es posible que no quieras que el modelo tarde más tiempo del necesario en generar una respuesta.

En estas situaciones, puedes inhabilitar (o desactivar) el pensamiento:

  • Gemini 2.5 Pro: El pensamiento no se puede inhabilitar
  • Gemini 2.5 Flash: Establece thinkingBudget en 0 tokens.
  • Gemini 2.5 Flash-Lite: El pensamiento está inhabilitado de forma predeterminada.

Fomentar el pensamiento dinámico

Puedes dejar que el modelo decida cuándo y cuánto pensar (lo que se denomina pensamiento dinámico) configurando thinkingBudget como -1. El modelo puede usar tantos tokens como considere apropiado, hasta el valor máximo de tokens que se indicó anteriormente.

Complejidad de la tarea

  • Tareas fáciles: Se puede desactivar el pensamiento
    Solicitudes sencillas en las que no se requiere un razonamiento complejo, como la recuperación de hechos o la clasificación. Ejemplos:

    • "¿Dónde se fundó DeepMind?"
    • "¿Este correo electrónico solicita una reunión o solo proporciona información?"
  • Tareas medianas: Se necesita el presupuesto predeterminado o un presupuesto adicional para pensar
    Solicitudes comunes que se benefician de un cierto grado de procesamiento paso a paso o de una comprensión más profunda. Ejemplos:

    • "Crea una analogía entre la fotosíntesis y el crecimiento".
    • "Compara y contrasta los automóviles eléctricos y los automóviles híbridos".
  • Tareas difíciles: Es posible que se necesite el máximo presupuesto de pensamiento
    Desafíos verdaderamente complejos, como resolver problemas matemáticos complejos o tareas de programación Estos tipos de tareas requieren que el modelo utilice todas sus capacidades de razonamiento y planificación, lo que a menudo implica muchos pasos internos antes de proporcionar una respuesta. Ejemplos:

    • "Resuelve el problema 1 de AIME 2025: Encuentra la suma de todas las bases enteras b > 9 para las que 17b es un divisor de 97b".
    • "Escribe código de Python para una aplicación web que visualice datos del mercado de valores en tiempo real, incluida la autenticación de usuarios. Hazlo lo más eficiente posible".

Precios y conteo de tokens de pensamiento

Los tokens de pensamiento usan los mismos precios que los tokens de salida de texto.

Puedes obtener la cantidad total de tokens de pensamiento del campo thoughtsTokenCount en el atributo usageMetadata de la respuesta:

Swift

// ...

let response = try await model.generateContent("Why is the sky blue?")

if let usageMetadata = response.usageMetadata {
  print("Thoughts Token Count: \(usageMetadata.thoughtsTokenCount)")
}

Kotlin

// ...

val response = model.generateContent("Why is the sky blue?")

response.usageMetadata?.let { usageMetadata ->
    println("Thoughts Token Count: ${usageMetadata.thoughtsTokenCount}")
}

Java

// ...

ListenableFuture<GenerateContentResponse> response =
    model.generateContent("Why is the sky blue?");

Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String usageMetadata = result.getUsageMetadata();
        if (usageMetadata != null) {
            System.out.println("Thoughts Token Count: " +
                usageMetadata.getThoughtsTokenCount());
        }
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

Web

// ...

const response = await model.generateContent("Why is the sky blue?");

if (response?.usageMetadata?.thoughtsTokenCount != null) {
    console.log(`Thoughts Token Count: ${response.usageMetadata.thoughtsTokenCount}`);
}

Dart

La compatibilidad para contar tokens de pensamiento para Flutter estará disponible en la próxima versión.

Unity

La compatibilidad para contar tokens de pensamiento en Unity estará disponible en la próxima versión.

Obtén más información sobre los tokens en la guía de recuento de tokens.