El pensamiento extendido proporciona a Claude capacidades de razonamiento mejoradas para tareas complejas, mientras proporciona diferentes niveles de transparencia en su proceso de pensamiento paso a paso antes de entregar su respuesta final.
Para Claude Opus 4.6, recomendamos usar pensamiento adaptativo (thinking: {type: "adaptive"}) con el parámetro de esfuerzo en lugar del modo de pensamiento manual descrito en esta página. La configuración manual thinking: {type: "enabled", budget_tokens: N} está deprecada en Opus 4.6 y se eliminará en una versión futura del modelo.
El pensamiento extendido es compatible con los siguientes modelos:
claude-opus-4-6) — pensamiento adaptativo recomendado; el modo manual (type: "enabled") está deprecadoclaude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514)claude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-3-7-sonnet-20250219) (deprecado)claude-haiku-4-5-20251001)El 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 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 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. Para Claude Opus 4.6, recomendamos usar type: "adaptive" en su lugar — consulte Pensamiento adaptativo para más detalles. Aunque type: "enabled" con budget_tokens sigue siendo compatible en Opus 4.6, está deprecado y se eliminará en una versión futura.
El parámetro budget_tokens determina el número máximo de tokens que Claude puede usar para su proceso de razonamiento interno. En Claude 4 y modelos posteriores, este límite se aplica a 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 el presupuesto completo asignado, especialmente en rangos superiores a 32k.
budget_tokens está deprecado en Claude Opus 4.6 y se eliminará en una versión futura del modelo. Recomendamos usar pensamiento adaptativo con el parámetro de esfuerzo para controlar la profundidad del pensamiento en su lugar.
Claude Opus 4.6 soporta hasta 128K tokens de salida. Los modelos anteriores soportan hasta 64K tokens de salida.
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).
With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse.
Here are some important considerations for summarized thinking:
Claude Sonnet 3.7 continues to return full thinking output.
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
Puede hacer streaming de respuestas de pensamiento extendido usando eventos enviados por el servidor (SSE).
Cuando el streaming está habilitado para el pensamiento extendido, recibe contenido de pensamiento a través de eventos thinking_delta.
Para más documentación sobre streaming a través de la API de Mensajes, consulte Streaming de Mensajes.
Aquí se muestra 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 the greatest common divisor of 1071 and 462?"
}
]
}'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": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}
// 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": "The greatest common divisor of 1071 and 462 is **21**."}}
// 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 que Claude razone 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 soporta 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 el medio de un turno del asistente, incluyendo 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.
Cuando ocurre un conflicto de pensamiento a mitad de turno (como alternar el pensamiento activado o desactivado durante un bucle de uso de herramientas), la API automáticamente deshabilita el pensamiento para esa solicitud. Para preservar la calidad del modelo y permanecer en distribución, la API puede:
Esto significa que intentar alternar el pensamiento a mitad de turno no causará un error, pero el pensamiento se deshabilitará silenciosamente para esa solicitud. Para confirmar si el pensamiento estaba activo, verifique la presencia de bloques thinking en la respuesta.
Mejor práctica: Planifique su estrategia de pensamiento al inicio de cada turno en lugar de intentar alternar a mitad de turno.
Ejemplo: Alternancia de pensamiento después de completar un turno
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)Al completar el turno del asistente antes de alternar el pensamiento, se asegura de que el pensamiento esté realmente habilitado para la nueva solicitud.
Alternar modos de pensamiento también invalida el almacenamiento en caché de indicaciones para el historial de mensajes. Para más detalles, consulte la sección Pensamiento extendido con almacenamiento en caché de indicaciones.
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 (incluyendo bucles de uso de herramientas) debe operar en un único modo de pensamiento. Para 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 llevó a solicitudes de herramientas. Cuando publica resultados de herramientas, incluir el pensamiento original asegura que Claude pueda continuar su razonamiento desde donde lo dejó.
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 más información sobre gestión de contexto, consulte nuestra guía sobre ventanas de contexto.
Importante: Cuando proporciona bloques thinking, la secuencia completa de bloques thinking consecutivos debe coincidir con los resultados generados 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 soporta pensamiento intercalado, que permite a Claude pensar entre llamadas de herramientas y hacer razonamiento más sofisticado después de recibir resultados de herramientas.
Con pensamiento intercalado, Claude puede:
Para Claude Opus 4.6, el pensamiento intercalado se habilita automáticamente cuando se usa pensamiento adaptativo — no se necesita encabezado beta.
Para modelos Claude 4, agregue el encabezado beta interleaved-thinking-2025-05-14 a su solicitud de API para habilitar el pensamiento intercalado.
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.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4, o Sonnet 4, su solicitud fallará.Almacenamiento en caché de indicaciones con pensamiento tiene varias consideraciones importantes:
Las tareas de pensamiento extendido a menudo toman más de 5 minutos para 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 de bloques de pensamiento
Patrones de invalidación de caché
Aunque los bloques de pensamiento se eliminan para almacenamiento en caché y cálculos de contexto, deben preservarse cuando se continúan conversaciones con uso de herramientas, especialmente con pensamiento intercalado.
Cuando se utiliza el pensamiento extendido con el 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:
User: "What's the weather in Paris?"Respuesta 1:
[thinking_block_1] + [tool_use block 1]Solicitud 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [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 herramienta y el resultado de la herramienta.
Solicitud 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]Para Claude Opus 4.5 y posteriores (incluido Claude Opus 4.6), todos los bloques de pensamiento anteriores se conservan de forma predeterminada. Para modelos más antiguos, debido a que se incluyó un bloque de usuario que no es resultado de herramienta, todos los bloques de pensamiento anteriores se ignoran. Esta solicitud se procesará igual que:
User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, 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 que se ajuste al límite de contexto. Esto significaba que podía establecer un valor max_tokens grande y el sistema lo reduciría silenciosamente según sea necesario.
Con los 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 los tokens de indicación + max_tokens exceden 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 el pensamiento habilitado, hay algunas consideraciones a tener en cuenta:
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:
context window =
(current input tokens - previous thinking tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)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 utiliza el pensamiento extendido con el uso de herramientas, los bloques de pensamiento deben preservarse explícitamente y devolverse con los resultados de las herramientas.
El cálculo de la ventana de contexto efectiva para el pensamiento extendido con uso de herramientas se convierte en:
context window =
(current input tokens + previous thinking tokens + tool use tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)El diagrama a continuación ilustra la gestión de tokens para el pensamiento extendido con uso de herramientas:
Dado el comportamiento de la ventana de contexto y max_tokens con los modelos Claude 3.7 y 4 de pensamiento extendido, es posible que deba:
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.
Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.
It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.
If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.
Here are some important considerations on thinking encryption:
signature_delta inside a content_block_delta event just before the content_block_stop event.signature values are significantly longer in Claude 4 models than in previous models.signature field is an opaque field and should not be interpreted or parsed - it exists solely for verification purposes.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.Occasionally Claude's internal reasoning will be flagged by our safety systems. When this occurs, we encrypt some or all of the thinking block and return it to you as a redacted_thinking block. redacted_thinking blocks are decrypted when passed back to the API, allowing Claude to continue its response without losing context.
When building customer-facing applications that use extended thinking:
Here's an example showing both normal and redacted thinking blocks:
{
"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..."
}
]
}Seeing redacted thinking blocks in your output is expected behavior. The model can still use this redacted reasoning to inform its responses while maintaining safety guardrails.
If you need to test redacted thinking handling in your application, you can use this special test string as your prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
When passing thinking and redacted_thinking blocks back to the API in a multi-turn conversation, you must include the complete unmodified block back to the API for the last assistant turn. This is critical for maintaining the model's reasoning flow. We suggest always passing back all thinking blocks to the API. For more details, see the Preserving thinking blocks section.
La API de Mensajes maneja el pensamiento de manera diferente en los modelos Claude Sonnet 3.7 y Claude 4, principalmente en el comportamiento de redacción y resumen.
Vea 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 | Claude Opus 4.6 (pensamiento adaptativo) |
|---|---|---|---|---|
| Salida de Pensamiento | Devuelve salida de pensamiento completa | Devuelve pensamiento resumido | 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 | Automático con pensamiento adaptativo (sin encabezado beta necesario) |
| Preservación de Bloque de Pensamiento | No preservado entre turnos | No preservado entre turnos | Preservado de forma predeterminada | Preservado de forma predeterminada |
A partir de Claude Opus 4.5 (y continuando en Claude Opus 4.6), los bloques de pensamiento de turnos de asistente anteriores se preservan en el contexto del modelo de forma predeterminada. 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 eliminados del contexto. El comportamiento existente descrito en la sección Pensamiento extendido con almacenamiento en caché de indicaciones se aplica a esos modelos.
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the summary you see.
max_tokens es mayor que 21.333 para evitar tiempos de espera HTTP en solicitudes de larga duración. Esta es una validación del lado del cliente, no una restricción de API. Si no necesita procesar eventos incrementalmente, use .stream() con .get_final_message() (Python) o .finalMessage() (TypeScript) para obtener el objeto Message completo sin manejar eventos individuales — vea Mensajes de transmisión para detalles. Al transmitir, prepárese para manejar bloques de contenido de pensamiento y texto a medida que llegan.temperature o top_k así como uso forzado de herramientas.top_p en valores entre 1 y 0.95.Explore ejemplos prácticos de pensamiento en nuestro libro de cocina.
Aprenda las mejores prácticas de ingeniería de indicaciones para el pensamiento extendido.
Was this page helpful?