El pensamiento extendido proporciona a Claude capacidades de razonamiento mejoradas para tareas complejas, mientras proporciona varios niveles de transparencia en su proceso de pensamiento paso a paso antes de entregar su respuesta final.
El pensamiento extendido es compatible con los siguientes modelos:
claude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-3-7-sonnet-20250219) (obsoleto)claude-haiku-4-5-20251001)claude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514El comportamiento de la API difiere entre los modelos Claude Sonnet 3.7 y Claude 4, pero las formas de la API siguen siendo exactamente iguales.
Para obtener más información, consulte Diferencias en el pensamiento entre versiones de modelos.
Cuando el pensamiento extendido está activado, Claude crea bloques de contenido thinking donde genera su razonamiento interno. Claude incorpora información de este razonamiento antes de elaborar una respuesta final.
La respuesta de la API incluirá bloques de contenido thinking, seguidos de bloques de contenido text.
Aquí hay un ejemplo del formato de respuesta predeterminado:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Para obtener más información sobre el formato de respuesta del pensamiento extendido, consulte la Referencia de la API de Mensajes.
Aquí hay un ejemplo de uso del pensamiento extendido en la API de Mensajes:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-sonnet-4-5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
}
]
}'Para activar el pensamiento extendido, agregue un objeto thinking, con el parámetro type establecido en enabled y budget_tokens en un presupuesto de tokens especificado para el pensamiento extendido.
El parámetro budget_tokens determina el número máximo de tokens que Claude puede usar para su proceso de razonamiento interno. En los modelos Claude 4, este límite se aplica a los tokens de pensamiento completo, y no a la salida resumida. Los presupuestos más grandes pueden mejorar la calidad de la respuesta al permitir un análisis más exhaustivo para problemas complejos, aunque Claude puede no usar todo el presupuesto asignado, especialmente en rangos superiores a 32k.
budget_tokens debe establecerse en un valor menor que max_tokens. Sin embargo, cuando se usa pensamiento intercalado con herramientas, puede exceder este límite ya que el límite de tokens se convierte en su ventana de contexto completa (200k tokens).
Con el pensamiento extendido habilitado, la API de Mensajes para los modelos Claude 4 devuelve un resumen del proceso de pensamiento completo de Claude. El pensamiento resumido proporciona los beneficios de inteligencia completa del pensamiento extendido, mientras previene el mal uso.
Aquí hay algunas consideraciones importantes para el pensamiento resumido:
Claude Sonnet 3.7 continúa devolviendo la salida de pensamiento completo.
En casos raros donde necesita acceso a la salida de pensamiento completo para modelos Claude 4, póngase en contacto con nuestro equipo de ventas.
Puede transmitir respuestas de pensamiento extendido usando eventos enviados por servidor (SSE).
Cuando el streaming está habilitado para el pensamiento extendido, recibe contenido de pensamiento a través de eventos thinking_delta.
Para obtener más documentación sobre streaming a través de la API de Mensajes, consulte Streaming de Mensajes.
Aquí se explica cómo manejar el streaming con pensamiento:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-sonnet-4-5",
"max_tokens": 16000,
"stream": true,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "What is 27 * 453?"
}
]
}'Ejemplo de salida de streaming:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
// Additional thinking deltas...
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
event: content_block_stop
data: {"type": "content_block_stop", "index": 0}
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}}
// Additional text deltas...
event: content_block_stop
data: {"type": "content_block_stop", "index": 1}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
event: message_stop
data: {"type": "message_stop"}Cuando se usa streaming con pensamiento habilitado, puede notar que el texto a veces llega en fragmentos más grandes alternando con entrega token por token. Este es el comportamiento esperado, especialmente para contenido de pensamiento.
El sistema de streaming necesita procesar contenido en lotes para un rendimiento óptimo, lo que puede resultar en este patrón de entrega "fragmentada", con posibles retrasos entre eventos de streaming. Estamos trabajando continuamente para mejorar esta experiencia, con futuras actualizaciones enfocadas en hacer que el contenido de pensamiento se transmita más suavemente.
El pensamiento extendido se puede usar junto con uso de herramientas, permitiendo a Claude razonar a través de la selección de herramientas y el procesamiento de resultados.
Cuando se usa pensamiento extendido con uso de herramientas, tenga en cuenta las siguientes limitaciones:
Limitación de elección de herramienta: El uso de herramientas con pensamiento solo admite tool_choice: {"type": "auto"} (el predeterminado) o tool_choice: {"type": "none"}. Usar tool_choice: {"type": "any"} o tool_choice: {"type": "tool", "name": "..."} resultará en un error porque estas opciones fuerzan el uso de herramientas, que es incompatible con el pensamiento extendido.
Preservación de bloques de pensamiento: Durante el uso de herramientas, debe pasar bloques thinking de vuelta a la API para el último mensaje del asistente. Incluya el bloque completo sin modificar de vuelta a la API para mantener la continuidad del razonamiento.
No puede alternar el pensamiento en medio de un turno del asistente, incluido durante bucles de uso de herramientas. El turno completo del asistente debe operar en un único modo de pensamiento:
Desde la perspectiva del modelo, los bucles de uso de herramientas son parte del turno del asistente. Un turno del asistente no se completa hasta que Claude termina su respuesta completa, que puede incluir múltiples llamadas de herramientas y resultados.
Por ejemplo, esta secuencia es toda parte de un único turno del asistente:
User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]Aunque hay múltiples mensajes de API, el bucle de uso de herramientas es conceptualmente parte de una respuesta continua del asistente.
Puede encontrar este error:
Expected `thinking` or `redacted_thinking`, but found `tool_use`.
When `thinking` is enabled, a final `assistant` message must start
with a thinking block (preceding the lastmost set of `tool_use` and
`tool_result` blocks).Esto típicamente ocurre cuando:
✗ Inválido: Alternancia de pensamiento inmediatamente después del uso de herramientas
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
// Cannot enable thinking here - still in the same assistant turn✓ Válido: Completar el turno del asistente primero
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?" (thinking disabled)
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)Mejor práctica: Planifique su estrategia de pensamiento al inicio de cada turno en lugar de intentar alternar a mitad de turno.
La alternancia de modos de pensamiento también invalida el almacenamiento en caché de prompts para el historial de mensajes. Para obtener más detalles, consulte la sección Pensamiento extendido con almacenamiento en caché de prompts.
Durante el uso de herramientas, debe pasar bloques thinking de vuelta a la API, y debe incluir el bloque completo sin modificar de vuelta a la API. Esto es crítico para mantener el flujo de razonamiento del modelo e integridad de la conversación.
Aunque puede omitir bloques thinking de turnos anteriores del assistant, sugerimos siempre pasar de vuelta todos los bloques de pensamiento a la API para cualquier conversación de múltiples turnos. La API:
Cuando alterna modos de pensamiento durante una conversación, recuerde que el turno completo del asistente (incluidos bucles de uso de herramientas) debe operar en un único modo de pensamiento. Para obtener más detalles, consulte Alternancia de modos de pensamiento en conversaciones.
Cuando Claude invoca herramientas, está pausando su construcción de una respuesta para esperar información externa. Cuando se devuelven resultados de herramientas, Claude continuará construyendo esa respuesta existente. Esto requiere preservar bloques de pensamiento durante el uso de herramientas, por un par de razones:
Continuidad del razonamiento: Los bloques de pensamiento capturan el razonamiento paso a paso de Claude que condujo a solicitudes de herramientas. Cuando publica resultados de herramientas, incluir el pensamiento original asegura que Claude pueda continuar su razonamiento desde donde se quedó.
Mantenimiento del contexto: Aunque los resultados de herramientas aparecen como mensajes de usuario en la estructura de la API, son parte de un flujo de razonamiento continuo. Preservar bloques de pensamiento mantiene este flujo conceptual a través de múltiples llamadas de API. Para obtener más información sobre la gestión del contexto, consulte nuestra guía sobre ventanas de contexto.
Importante: Cuando proporciona bloques thinking, la secuencia completa de bloques thinking consecutivos debe coincidir con las salidas generadas por el modelo durante la solicitud original; no puede reorganizar o modificar la secuencia de estos bloques.
El pensamiento extendido con uso de herramientas en modelos Claude 4 admite pensamiento intercalado, que permite a Claude pensar entre llamadas de herramientas y hacer un razonamiento más sofisticado después de recibir resultados de herramientas.
Con pensamiento intercalado, Claude puede:
Para habilitar el pensamiento intercalado, agregue el encabezado beta interleaved-thinking-2025-05-14 a su solicitud de API.
Aquí hay algunas consideraciones importantes para el pensamiento intercalado:
budget_tokens puede exceder el parámetro max_tokens, ya que representa el presupuesto total en todos los bloques de pensamiento dentro de un turno del asistente.interleaved-thinking-2025-05-14.interleaved-thinking-2025-05-14 en solicitudes a cualquier modelo, sin efecto.interleaved-thinking-2025-05-14 a cualquier modelo que no sea Claude Opus 4.5, Claude Opus 4.1, Opus 4 u Sonnet 4, su solicitud fallará.El almacenamiento en caché de indicaciones con pensamiento tiene varias consideraciones importantes:
Las tareas de pensamiento extendido a menudo tardan más de 5 minutos en completarse. Considere usar la duración de caché de 1 hora para mantener aciertos de caché en sesiones de pensamiento más largas y flujos de trabajo de múltiples pasos.
Eliminación del contexto del bloque de pensamiento
Patrones de invalidación de caché
Aunque los bloques de pensamiento se eliminan para el almacenamiento en caché y los cálculos de contexto, deben preservarse al continuar conversaciones con uso de herramientas, especialmente con pensamiento intercalado.
Cuando se usa pensamiento extendido con uso de herramientas, los bloques de pensamiento exhiben un comportamiento de almacenamiento en caché específico que afecta el conteo de tokens:
Cómo funciona:
Flujo de ejemplo detallado:
Solicitud 1:
Usuario: "¿Cuál es el clima en París?"Respuesta 1:
[thinking_block_1] + [tool_use block 1]Solicitud 2:
Usuario: ["¿Cuál es el clima en París?"],
Asistente: [thinking_block_1] + [tool_use block 1],
Usuario: [tool_result_1, cache=True]Respuesta 2:
[thinking_block_2] + [text block 2]La solicitud 2 escribe un caché del contenido de la solicitud (no de la respuesta). El caché incluye el mensaje de usuario original, el primer bloque de pensamiento, el bloque de uso de herramientas y el resultado de la herramienta.
Solicitud 3:
Usuario: ["¿Cuál es el clima en París?"],
Asistente: [thinking_block_1] + [tool_use block 1],
Usuario: [tool_result_1, cache=True],
Asistente: [thinking_block_2] + [text block 2],
Usuario: [Respuesta de texto, cache=True]Para Claude Opus 4.5 y posteriores, todos los bloques de pensamiento anteriores se mantienen de forma predeterminada. Para modelos más antiguos, porque se incluyó un bloque de usuario sin resultado de herramienta, todos los bloques de pensamiento anteriores se ignoran. Esta solicitud se procesará igual que:
Usuario: ["¿Cuál es el clima en París?"],
Asistente: [tool_use block 1],
Usuario: [tool_result_1, cache=True],
Asistente: [text block 2],
Usuario: [Respuesta de texto, cache=True]Puntos clave:
cache_control explícitosEn modelos Claude más antiguos (anteriores a Claude Sonnet 3.7), si la suma de tokens de indicación y max_tokens excedía la ventana de contexto del modelo, el sistema ajustaría automáticamente max_tokens para caber dentro del límite de contexto. Esto significaba que podía establecer un valor grande de max_tokens y el sistema lo reduciría silenciosamente según sea necesario.
Con modelos Claude 3.7 y 4, max_tokens (que incluye su presupuesto de pensamiento cuando el pensamiento está habilitado) se aplica como un límite estricto. El sistema ahora devolverá un error de validación si tokens de indicación + max_tokens excede el tamaño de la ventana de contexto.
Puede leer nuestra guía sobre ventanas de contexto para un análisis más profundo.
Al calcular el uso de la ventana de contexto con pensamiento habilitado, hay algunas consideraciones de las que ser consciente:
max_tokens para ese turnoEl diagrama a continuación demuestra la gestión especializada de tokens cuando el pensamiento extendido está habilitado:
La ventana de contexto efectiva se calcula como:
ventana de contexto =
(tokens de entrada actuales - tokens de pensamiento anteriores) +
(tokens de pensamiento + tokens de pensamiento encriptados + tokens de salida de texto)Recomendamos usar la API de conteo de tokens para obtener conteos de tokens precisos para su caso de uso específico, especialmente cuando se trabaja con conversaciones de múltiples turnos que incluyen pensamiento.
Cuando se usa pensamiento extendido con uso de herramientas, los bloques de pensamiento deben preservarse explícitamente y devolverse con los resultados de herramientas.
El cálculo de ventana de contexto efectiva para pensamiento extendido con uso de herramientas se convierte en:
ventana de contexto =
(tokens de entrada actuales + tokens de pensamiento anteriores + tokens de uso de herramientas) +
(tokens de pensamiento + tokens de pensamiento encriptados + tokens de salida de texto)El diagrama a continuación ilustra la gestión de tokens para pensamiento extendido con uso de herramientas:
Dado el comportamiento de ventana de contexto y max_tokens con pensamiento extendido en modelos Claude 3.7 y 4, puede que necesite:
max_tokens a medida que cambia la longitud de su indicaciónEste cambio se ha realizado para proporcionar un comportamiento más predecible y transparente, especialmente a medida que los límites de tokens máximos han aumentado significativamente.
El contenido completo del pensamiento se encripta y se devuelve en el campo signature. Este campo se utiliza para verificar que los bloques de pensamiento fueron generados por Claude cuando se devuelven a la API.
Solo es estrictamente necesario enviar bloques de pensamiento cuando se usan herramientas con pensamiento extendido. De lo contrario, puede omitir bloques de pensamiento de turnos anteriores, o dejar que la API los elimine por usted si los devuelve.
Si envía bloques de pensamiento, recomendamos devolver todo tal como lo recibió para mantener la consistencia y evitar posibles problemas.
Aquí hay algunas consideraciones importantes sobre la encriptación de pensamiento:
signature_delta dentro de un evento content_block_delta justo antes del evento content_block_stop.signature son significativamente más largos en modelos Claude 4 que en modelos anteriores.signature es un campo opaco y no debe interpretarse ni analizarse - existe únicamente para propósitos de verificación.signature son compatibles entre plataformas (API de Claude, Amazon Bedrock y Vertex AI). Los valores generados en una plataforma serán compatibles con otra.Ocasionalmente, el razonamiento interno de Claude será marcado por nuestros sistemas de seguridad. Cuando esto ocurre, ciframos parte o todo el bloque thinking y lo devolvemos como un bloque redacted_thinking. Los bloques redacted_thinking se descifran cuando se devuelven a la API, permitiendo que Claude continúe su respuesta sin perder contexto.
Al construir aplicaciones orientadas al cliente que utilizan pensamiento extendido:
Aquí hay un ejemplo que muestra tanto bloques de pensamiento normales como redactados:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "redacted_thinking",
"data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Ver bloques de pensamiento redactado en tu salida es un comportamiento esperado. El modelo aún puede usar este razonamiento redactado para informar sus respuestas mientras mantiene los guardarraíles de seguridad.
Si necesitas probar el manejo del pensamiento redactado en tu aplicación, puedes usar esta cadena de prueba especial como tu prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
Al pasar bloques thinking y redacted_thinking de vuelta a la API en una conversación de múltiples turnos, debes incluir el bloque completo sin modificar de vuelta a la API para el último turno del asistente. Esto es crítico para mantener el flujo de razonamiento del modelo. Sugerimos siempre pasar todos los bloques de pensamiento a la API. Para más detalles, consulta la sección Preservando bloques de pensamiento arriba.
La API de Mensajes maneja el pensamiento de manera diferente entre los modelos Claude Sonnet 3.7 y Claude 4, principalmente en el comportamiento de redacción y resumen.
Consulta la tabla a continuación para una comparación condensada:
| Característica | Claude Sonnet 3.7 | Modelos Claude 4 (pre-Opus 4.5) | Claude Opus 4.5 y posterior |
|---|---|---|---|
| Salida de Pensamiento | Devuelve salida de pensamiento completa | Devuelve pensamiento resumido | Devuelve pensamiento resumido |
| Pensamiento Intercalado | No compatible | Compatible con encabezado beta interleaved-thinking-2025-05-14 | Compatible con encabezado beta interleaved-thinking-2025-05-14 |
| Preservación de Bloque de Pensamiento | No preservado entre turnos | No preservado entre turnos | Preservado por defecto (habilita optimización de caché, ahorro de tokens) |
Claude Opus 4.5 introduce un nuevo comportamiento por defecto: los bloques de pensamiento de turnos anteriores del asistente se preservan en el contexto del modelo por defecto. Esto difiere de los modelos anteriores, que eliminan los bloques de pensamiento de turnos anteriores.
Beneficios de la preservación de bloques de pensamiento:
Consideraciones importantes:
Para modelos anteriores (Claude Sonnet 4.5, Opus 4.1, etc.), los bloques de pensamiento de turnos anteriores continúan siendo removidos del contexto. El comportamiento existente descrito en la sección Pensamiento extendido con almacenamiento en caché de prompts se aplica a esos modelos.
Para información completa de precios incluyendo tasas base, escrituras de caché, aciertos de caché y tokens de salida, consulta la página de precios.
El proceso de pensamiento incurre en cargos por:
Cuando el pensamiento extendido está habilitado, un prompt de sistema especializado se incluye automáticamente para soportar esta característica.
Cuando se usa pensamiento resumido:
El recuento de tokens de salida facturados no coincidirá con el recuento de tokens visible en la respuesta. Se te factura por el proceso de pensamiento completo, no por el resumen que ves.
max_tokens es mayor que 21,333. Cuando se usa streaming, prepárate para manejar tanto bloques de contenido de pensamiento como de texto conforme llegan.temperature o top_k así como con uso forzado de herramientas.top_p a valores entre 1 y 0.95.