El pensamiento extendido proporciona a Claude capacidades mejoradas de razonamiento para tareas complejas, mientras proporciona diferentes niveles de transparencia en su proceso de pensamiento paso a paso antes de entregar su respuesta final.

Modelos soportados

El pensamiento extendido es compatible con los siguientes modelos:
  • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (deprecado)
  • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
  • Claude Opus 4.1 (claude-opus-4-1-20250805)
  • Claude Opus 4 (claude-opus-4-20250514)
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.

Cómo funciona el pensamiento extendido

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": "Déjame analizar esto paso a paso...",
      "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
    },
    {
      "type": "text",
      "text": "Basándome en mi análisis..."
    }
  ]
}
Para más información sobre el formato de respuesta del pensamiento extendido, consulte la Referencia de la API de Mensajes.

Cómo usar el pensamiento extendido

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": "¿Hay un número infinito de números primos tales que 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).

Pensamiento resumido

Con el pensamiento extendido habilitado, la API de Mensajes para 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:
  • Se le cobra por los tokens de pensamiento completo generados por la solicitud original, no por los tokens de resumen.
  • El recuento de tokens de salida facturados no coincidirá con el recuento de tokens que ve en la respuesta.
  • Las primeras líneas de la salida de pensamiento son más detalladas, proporcionando razonamiento detallado que es particularmente útil para propósitos de ingeniería de prompts.
  • A medida que Anthropic busca mejorar la característica de pensamiento extendido, el comportamiento de resumen está sujeto a cambios.
  • La resumen preserva las ideas clave del proceso de pensamiento de Claude con latencia mínima agregada, permitiendo una experiencia de usuario transmisible y migración fácil de Claude Sonnet 3.7 a modelos Claude 4.
  • La resumen es procesada por un modelo diferente al que apunta en sus solicitudes. El modelo de pensamiento no ve la salida resumida.
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, contacte a nuestro equipo de ventas.

Pensamiento en streaming

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": "¿Cuánto es 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": "Déjame resolver esto paso a paso:\n\n1. Primero desglosar 27 * 453"}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}

// Deltas de pensamiento adicionales...

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"}}

// Deltas de texto adicionales...

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, es posible que note 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.

Pensamiento extendido con uso de herramientas

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:
  1. 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.
  2. Preservar 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.

Alternar modos de pensamiento en conversaciones

No puede alternar el pensamiento en 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:
  • Si el pensamiento está habilitado, el turno final del asistente debe comenzar con un bloque de pensamiento.
  • Si el pensamiento está deshabilitado, el turno final del asistente no debe contener ningún bloque 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:
Usuario: "¿Cuál es el clima en París?"
Asistente: [pensamiento] + [tool_use: get_weather]
Usuario: [tool_result: "20°C, soleado"]
Asistente: [texto: "El clima en París es 20°C y soleado"]
Aunque hay múltiples mensajes de API, el bucle de uso de herramientas es conceptualmente parte de una respuesta continua del asistente.

Escenarios de error comunes

Puede encontrar este error:
Se esperaba `thinking` o `redacted_thinking`, pero se encontró `tool_use`.
Cuando `thinking` está habilitado, un mensaje final `assistant` debe comenzar
con un bloque de pensamiento (precediendo el conjunto más reciente de bloques `tool_use` y
`tool_result`).
Esto típicamente ocurre cuando:
  1. Tenía pensamiento deshabilitado durante una secuencia de uso de herramientas
  2. Quiere habilitar pensamiento nuevamente
  3. Su último mensaje del asistente contiene bloques de uso de herramientas pero sin bloque de pensamiento

Orientación práctica

✗ Inválido: Alternar pensamiento inmediatamente después del uso de herramientas
Usuario: "¿Cuál es el clima?"
Asistente: [tool_use] (pensamiento deshabilitado)
Usuario: [tool_result]
// No puede habilitar pensamiento aquí - aún en el mismo turno del asistente
✓ Válido: Completar el turno del asistente primero
Usuario: "¿Cuál es el clima?"
Asistente: [tool_use] (pensamiento deshabilitado)
Usuario: [tool_result]
Asistente: [texto: "Es soleado"] 
Usuario: "¿Y mañana?" (pensamiento deshabilitado)
Asistente: [pensamiento] + [texto: "..."] (pensamiento habilitado - nuevo turno)
Mejor práctica: Planifique su estrategia de pensamiento al inicio de cada turno en lugar de intentar alternar a mitad de turno.
Alternar modos de pensamiento también invalida el almacenamiento en caché de prompts para el historial de mensajes. Para más detalles, consulte la sección Pensamiento extendido con almacenamiento en caché de prompts.
Aquí hay un ejemplo práctico que muestra cómo preservar bloques de pensamiento al proporcionar resultados de herramientas:
weather_tool = {
    "name": "get_weather",
    "description": "Obtener el clima actual para una ubicación",
    "input_schema": {
        "type": "object",
        "properties": {
            "location": {"type": "string"}
        },
        "required": ["location"]
    }
}

# Primera solicitud - Claude responde con pensamiento y solicitud de herramienta
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[weather_tool],
    messages=[
        {"role": "user", "content": "¿Cuál es el clima en París?"}
    ]
)
La respuesta de la API incluirá bloques de pensamiento, texto y tool_use:
{
    "content": [
        {
            "type": "thinking",
            "thinking": "El usuario quiere saber el clima actual en París. Tengo acceso a una función `get_weather`...",
            "signature": "BDaL4VrbR2Oj0hO4XpJxT28J5TILnCrrUXoKiiNBZW9P+nr8XSj1zuZzAl4egiCCpQNvfyUuFFJP5CncdYZEQPPmLxYsNrcs...."
        },
        {
            "type": "text",
            "text": "Puedo ayudarte a obtener la información del clima actual para París. Déjame verificar eso por ti"
        },
        {
            "type": "tool_use",
            "id": "toolu_01CswdEQBMshySk6Y9DFKrfq",
            "name": "get_weather",
            "input": {
                "location": "París"
            }
        }
    ]
}
Ahora continuemos la conversación y usemos la herramienta
# Extraer bloque de pensamiento y bloque de uso de herramienta
thinking_block = next((block for block in response.content
                      if block.type == 'thinking'), None)
tool_use_block = next((block for block in response.content
                      if block.type == 'tool_use'), None)

# Llamar a tu API de clima real, aquí es donde iría tu llamada real a la API
# supongamos que esto es lo que obtenemos
weather_data = {"temperature": 88}

# Segunda solicitud - Incluir bloque de pensamiento y resultado de herramienta
# No se generarán nuevos bloques de pensamiento en la respuesta
continuation = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[weather_tool],
    messages=[
        {"role": "user", "content": "¿Cuál es el clima en París?"},
        # nota que el thinking_block se pasa junto con el tool_use_block
        # si esto no se pasa, se genera un error
        {"role": "assistant", "content": [thinking_block, tool_use_block]},
        {"role": "user", "content": [{
            "type": "tool_result",
            "tool_use_id": tool_use_block.id,
            "content": f"Temperatura actual: {weather_data['temperature']}°F"
        }]}
    ]
)
La respuesta de la API ahora solo incluirá texto
{
    "content": [
        {
            "type": "text",
            "text": "Actualmente en París, la temperatura es 88°F (31°C)"
        }
    ]
}

Preservar bloques de pensamiento

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 todos los bloques de pensamiento de vuelta a la API para cualquier conversación de múltiples turnos. La API:
  • Filtrará automáticamente los bloques de pensamiento proporcionados
  • Usará los bloques de pensamiento relevantes necesarios para preservar el razonamiento del modelo
  • Solo facturará los tokens de entrada para los bloques mostrados a Claude
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 Alternar modos de pensamiento en conversaciones.
Cuando Claude invoca herramientas, está pausando la 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:
  1. 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ó.
  2. 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 las salidas generadas por el modelo durante la solicitud original; no puede reorganizar o modificar la secuencia de estos bloques.

Pensamiento intercalado

El pensamiento extendido con uso de herramientas en modelos Claude 4 soporta pensamiento intercalado, que permite que Claude piense entre llamadas de herramientas y haga un razonamiento más sofisticado después de recibir resultados de herramientas. Con pensamiento intercalado, Claude puede:
  • Razonar sobre los resultados de una llamada de herramienta antes de decidir qué hacer a continuación
  • Encadenar múltiples llamadas de herramientas con pasos de razonamiento en medio
  • Tomar decisiones más matizadas basadas en resultados intermedios
Para habilitar pensamiento intercalado, agregue el encabezado beta interleaved-thinking-2025-05-14 a su solicitud de API. Aquí hay algunas consideraciones importantes para pensamiento intercalado:
  • Con 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.
  • El pensamiento intercalado solo es soportado para herramientas usadas a través de la API de Mensajes.
  • El pensamiento intercalado es soportado para modelos Claude 4 solo, con el encabezado beta interleaved-thinking-2025-05-14.
  • Las llamadas directas a la API de Claude le permiten pasar interleaved-thinking-2025-05-14 en solicitudes a cualquier modelo, sin efecto.
  • En plataformas de terceros (p. ej., Amazon Bedrock y Vertex AI), si pasa interleaved-thinking-2025-05-14 a cualquier modelo que no sea Claude Opus 4.1, Opus 4, o Sonnet 4, su solicitud fallará.
import anthropic

client = anthropic.Anthropic()

# Definir herramientas
calculator_tool = {
    "name": "calculator",
    "description": "Realizar cálculos matemáticos",
    "input_schema": {
        "type": "object",
        "properties": {
            "expression": {
                "type": "string",
                "description": "Expresión matemática a evaluar"
            }
        },
        "required": ["expression"]
    }
}

database_tool = {
    "name": "database_query",
    "description": "Consultar base de datos de productos",
    "input_schema": {
        "type": "object",
        "properties": {
            "query": {
                "type": "string",
                "description": "Consulta SQL a ejecutar"
            }
        },
        "required": ["query"]
    }
}

# Primera solicitud - Claude piensa una vez antes de todas las llamadas de herramientas
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[calculator_tool, database_tool],
    messages=[{
        "role": "user",
        "content": "¿Cuál es el ingreso total si vendemos 150 unidades del producto A a $50 cada una, y cómo se compara esto con nuestro ingreso mensual promedio de la base de datos?"
    }]
)

# La respuesta incluye pensamiento seguido de usos de herramientas
# Nota: Claude piensa una vez al principio, luego toma todas las decisiones de herramientas
print("Primera respuesta:")
for block in response.content:
    if block.type == "thinking":
        print(f"Pensamiento (resumido): {block.thinking}")
    elif block.type == "tool_use":
        print(f"Uso de herramienta: {block.name} con entrada {block.input}")
    elif block.type == "text":
        print(f"Texto: {block.text}")

# Ejecutarías las herramientas y devolverías resultados...
# Después de obtener ambos resultados de herramientas, Claude responde directamente sin pensamiento adicional
En este ejemplo sin pensamiento intercalado:
  1. Claude piensa una vez al principio para entender la tarea
  2. Toma todas las decisiones de uso de herramientas por adelantado
  3. Cuando se devuelven resultados de herramientas, Claude proporciona inmediatamente una respuesta sin pensamiento adicional
import anthropic

client = anthropic.Anthropic()

# Mismas definiciones de herramientas que antes
calculator_tool = {
    "name": "calculator",
    "description": "Realizar cálculos matemáticos",
    "input_schema": {
        "type": "object",
        "properties": {
            "expression": {
                "type": "string",
                "description": "Expresión matemática a evaluar"
            }
        },
        "required": ["expression"]
    }
}

database_tool = {
    "name": "database_query",
    "description": "Consultar base de datos de productos",
    "input_schema": {
        "type": "object",
        "properties": {
            "query": {
                "type": "string",
                "description": "Consulta SQL a ejecutar"
            }
        },
        "required": ["query"]
    }
}

# Primera solicitud con pensamiento intercalado habilitado
response = client.beta.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[calculator_tool, database_tool],
    betas=["interleaved-thinking-2025-05-14"],
    messages=[{
        "role": "user",
        "content": "¿Cuál es el ingreso total si vendemos 150 unidades del producto A a $50 cada una, y cómo se compara esto con nuestro ingreso mensual promedio de la base de datos?"
    }]
)

print("Respuesta inicial:")
thinking_blocks = []
tool_use_blocks = []

for block in response.content:
    if block.type == "thinking":
        thinking_blocks.append(block)
        print(f"Pensamiento: {block.thinking}")
    elif block.type == "tool_use":
        tool_use_blocks.append(block)
        print(f"Uso de herramienta: {block.name} con entrada {block.input}")
    elif block.type == "text":
        print(f"Texto: {block.text}")

# Primer resultado de herramienta (calculadora)
calculator_result = "7500"  # 150 * 50

# Continuar con primer resultado de herramienta
response2 = client.beta.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[calculator_tool, database_tool],
    betas=["interleaved-thinking-2025-05-14"],
    messages=[
        {
            "role": "user",
            "content": "¿Cuál es el ingreso total si vendemos 150 unidades del producto A a $50 cada una, y cómo se compara esto con nuestro ingreso mensual promedio de la base de datos?"
        },
        {
            "role": "assistant",
            "content": [thinking_blocks[0], tool_use_blocks[0]]
        },
        {
            "role": "user",
            "content": [{
                "type": "tool_result",
                "tool_use_id": tool_use_blocks[0].id,
                "content": calculator_result
            }]
        }
    ]
)

print("\nDespués del resultado de la calculadora:")
# Con pensamiento intercalado, Claude puede pensar sobre el resultado de la calculadora
# antes de decidir consultar la base de datos
for block in response2.content:
    if block.type == "thinking":
        thinking_blocks.append(block)
        print(f"Pensamiento intercalado: {block.thinking}")
    elif block.type == "tool_use":
        tool_use_blocks.append(block)
        print(f"Uso de herramienta: {block.name} con entrada {block.input}")

# Segundo resultado de herramienta (base de datos)
database_result = "5200"  # Ejemplo de ingreso mensual promedio

# Continuar con segundo resultado de herramienta
response3 = client.beta.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    tools=[calculator_tool, database_tool],
    betas=["interleaved-thinking-2025-05-14"],
    messages=[
        {
            "role": "user",
            "content": "¿Cuál es el ingreso total si vendemos 150 unidades del producto A a $50 cada una, y cómo se compara esto con nuestro ingreso mensual promedio de la base de datos?"
        },
        {
            "role": "assistant",
            "content": [thinking_blocks[0], tool_use_blocks[0]]
        },
        {
            "role": "user",
            "content": [{
                "type": "tool_result",
                "tool_use_id": tool_use_blocks[0].id,
                "content": calculator_result
            }]
        },
        {
            "role": "assistant",
            "content": thinking_blocks[1:] + tool_use_blocks[1:]
        },
        {
            "role": "user",
            "content": [{
                "type": "tool_result",
                "tool_use_id": tool_use_blocks[1].id,
                "content": database_result
            }]
        }
    ]
)

print("\nDespués del resultado de la base de datos:")
# Con pensamiento intercalado, Claude puede pensar sobre ambos resultados
# antes de formular la respuesta final
for block in response3.content:
    if block.type == "thinking":
        print(f"Pensamiento final: {block.thinking}")
    elif block.type == "text":
        print(f"Respuesta final: {block.text}")
En este ejemplo con pensamiento intercalado:
  1. Claude piensa sobre la tarea inicialmente
  2. Después de recibir el resultado de la calculadora, Claude puede pensar nuevamente sobre lo que significa ese resultado
  3. Claude luego decide cómo consultar la base de datos basándose en el primer resultado
  4. Después de recibir el resultado de la base de datos, Claude piensa una vez más sobre ambos resultados antes de formular una respuesta final
  5. El presupuesto de pensamiento se distribuye entre todos los bloques de pensamiento dentro del turno
Este patrón permite cadenas de razonamiento más sofisticadas donde la salida de cada herramienta informa la siguiente decisión.

Pensamiento extendido con almacenamiento en caché de prompts

El almacenamiento en caché de prompts 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 de contexto de bloques de pensamiento
  • Los bloques de pensamiento de turnos anteriores se eliminan del contexto, lo que puede afectar los puntos de ruptura de caché
  • Cuando se continúan conversaciones con uso de herramientas, los bloques de pensamiento se almacenan en caché y cuentan como tokens de entrada cuando se leen del caché
  • Esto crea un compromiso: aunque los bloques de pensamiento no consumen espacio de ventana de contexto visualmente, aún cuentan hacia su uso de tokens de entrada cuando se almacenan en caché
  • Si el pensamiento se deshabilita, las solicitudes fallarán si pasa contenido de pensamiento en el turno actual de uso de herramientas. En otros contextos, el contenido de pensamiento pasado a la API simplemente se ignora
Patrones de invalidación de caché
  • Los cambios en los parámetros de pensamiento (habilitado/deshabilitado o asignación de presupuesto) invalidan los puntos de ruptura de caché de mensajes
  • El pensamiento intercalado amplifica la invalidación de caché, ya que los bloques de pensamiento pueden ocurrir entre múltiples llamadas de herramientas
  • Los prompts del sistema y las herramientas permanecen en caché a pesar de cambios en parámetros de pensamiento o eliminación de bloques
Aunque los bloques de pensamiento se eliminan para el almacenamiento en caché y cálculos de contexto, deben preservarse cuando se continúan conversaciones con uso de herramientas, especialmente con pensamiento intercalado.

Entender el comportamiento de almacenamiento en caché de bloques de pensamiento

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 recuento de tokens: Cómo funciona:
  1. El almacenamiento en caché solo ocurre cuando realiza una solicitud posterior que incluye resultados de herramientas
  2. Cuando se realiza la solicitud posterior, el historial de conversación anterior (incluyendo bloques de pensamiento) puede almacenarse en caché
  3. Estos bloques de pensamiento en caché cuentan como tokens de entrada en sus métricas de uso cuando se leen del caché
  4. Cuando se incluye un bloque de usuario sin resultado de herramienta, todos los bloques de pensamiento anteriores se ignoran y se eliminan del contexto
Ejemplo de flujo detallado: Solicitud 1:
Usuario: "¿Cuál es el clima en París?"
Respuesta 1:
[thinking_block_1] + [bloque tool_use 1]
Solicitud 2:
Usuario: ["¿Cuál es el clima en París?"], 
Asistente: [thinking_block_1] + [bloque tool_use 1], 
Usuario: [tool_result_1, cache=True]
Respuesta 2:
[thinking_block_2] + [bloque de texto 2]
La solicitud 2 escribe un caché del contenido de la solicitud (no la respuesta). El caché incluye el mensaje de usuario original, el primer bloque de pensamiento, 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] + [bloque tool_use 1], 
Usuario: [tool_result_1, cache=True], 
Asistente: [thinking_block_2] + [bloque de texto 2], 
Usuario: [Respuesta de texto, cache=True]
Porque se incluyó un bloque de usuario sin resultado de herramienta, todos los bloques de pensamiento anteriores se ignoran. Esta solicitud será procesada igual que:
Usuario: ["¿Cuál es el clima en París?"], 
Asistente: [bloque tool_use 1], 
Usuario: [tool_result_1, cache=True], 
Asistente: [bloque de texto 2], 
Usuario: [Respuesta de texto, cache=True]
Puntos clave:
  • Este comportamiento de almacenamiento en caché ocurre automáticamente, incluso sin marcadores cache_control explícitos
  • Este comportamiento es consistente ya sea usando pensamiento regular o pensamiento intercalado
from anthropic import Anthropic
import requests
from bs4 import BeautifulSoup

client = Anthropic()

def fetch_article_content(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    # Eliminar elementos de script y estilo
    for script in soup(["script", "style"]):
        script.decompose()

    # Obtener texto
    text = soup.get_text()

    # Dividir en líneas y eliminar espacios en blanco al inicio y final de cada una
    lines = (line.strip() for line in text.splitlines())
    # Dividir titulares multi-línea en una línea cada una
    chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
    # Descartar líneas en blanco
    text = '\n'.join(chunk for chunk in chunks if chunk)

    return text

# Obtener el contenido del artículo
book_url = "https://www.gutenberg.org/cache/epub/1342/pg1342.txt"
book_content = fetch_article_content(book_url)
# Usar solo suficiente texto para almacenamiento en caché (primeros capítulos)
LARGE_TEXT = book_content[:5000]

SYSTEM_PROMPT=[
    {
        "type": "text",
        "text": "Eres un asistente de IA que se encarga del análisis literario. Analiza el siguiente texto cuidadosamente.",
    },
    {
        "type": "text",
        "text": LARGE_TEXT,
        "cache_control": {"type": "ephemeral"}
    }
]

MESSAGES = [
    {
        "role": "user",
        "content": "Analiza el tono de este pasaje."
    }
]

# Primera solicitud - establecer caché
print("Primera solicitud - estableciendo caché")
response1 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 4000
    },
    system=SYSTEM_PROMPT,
    messages=MESSAGES
)

print(f"Uso de primera respuesta: {response1.usage}")

MESSAGES.append({
    "role": "assistant",
    "content": response1.content
})
MESSAGES.append({
    "role": "user",
    "content": "Analiza los personajes en este pasaje."
})
# Segunda solicitud - mismos parámetros de pensamiento (se espera acierto de caché)
print("\nSegunda solicitud - mismos parámetros de pensamiento (se espera acierto de caché)")
response2 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 4000
    },
    system=SYSTEM_PROMPT,
    messages=MESSAGES
)

print(f"Uso de segunda respuesta: {response2.usage}")

# Tercera solicitud - parámetros de pensamiento diferentes (se espera fallo de caché para mensajes)
print("\nTercera solicitud - parámetros de pensamiento diferentes (se espera fallo de caché para mensajes)")
response3 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 8000  # Presupuesto de pensamiento cambiado
    },
    system=SYSTEM_PROMPT,  # El prompt del sistema permanece en caché
    messages=MESSAGES  # El caché de mensajes se invalida
)

print(f"Uso de tercera respuesta: {response3.usage}")
from anthropic import Anthropic
import requests
from bs4 import BeautifulSoup

client = Anthropic()

def fetch_article_content(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    # Eliminar elementos de script y estilo
    for script in soup(["script", "style"]):
        script.decompose()

    # Obtener texto
    text = soup.get_text()

    # Dividir en líneas y eliminar espacios en blanco al inicio y final de cada una
    lines = (line.strip() for line in text.splitlines())
    # Dividir titulares multi-línea en una línea cada una
    chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
    # Descartar líneas en blanco
    text = '\n'.join(chunk for chunk in chunks if chunk)

    return text

# Obtener el contenido del artículo
book_url = "https://www.gutenberg.org/cache/epub/1342/pg1342.txt"
book_content = fetch_article_content(book_url)
# Usar solo suficiente texto para almacenamiento en caché (primeros capítulos)
LARGE_TEXT = book_content[:5000]

# Sin prompt del sistema - almacenamiento en caché en mensajes en su lugar
MESSAGES = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": LARGE_TEXT,
                "cache_control": {"type": "ephemeral"},
            },
            {
                "type": "text",
                "text": "Analiza el tono de este pasaje."
            }
        ]
    }
]

# Primera solicitud - establecer caché
print("Primera solicitud - estableciendo caché")
response1 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 4000
    },
    messages=MESSAGES
)

print(f"Uso de primera respuesta: {response1.usage}")

MESSAGES.append({
    "role": "assistant",
    "content": response1.content
})
MESSAGES.append({
    "role": "user",
    "content": "Analiza los personajes en este pasaje."
})
# Segunda solicitud - mismos parámetros de pensamiento (se espera acierto de caché)
print("\nSegunda solicitud - mismos parámetros de pensamiento (se espera acierto de caché)")
response2 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 4000  # Mismo presupuesto de pensamiento
    },
    messages=MESSAGES
)

print(f"Uso de segunda respuesta: {response2.usage}")

MESSAGES.append({
    "role": "assistant",
    "content": response2.content
})
MESSAGES.append({
    "role": "user",
    "content": "Analiza el escenario en este pasaje."
})

# Tercera solicitud - presupuesto de pensamiento diferente (se espera fallo de caché)
print("\nTercera solicitud - presupuesto de pensamiento diferente (se espera fallo de caché)")
response3 = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=20000,
    thinking={
        "type": "enabled",
        "budget_tokens": 8000  # Presupuesto de pensamiento diferente rompe caché
    },
    messages=MESSAGES
)

print(f"Uso de tercera respuesta: {response3.usage}")
Aquí está la salida del script (puede ver números ligeramente diferentes)
Primera solicitud - estableciendo caché
Uso de primera respuesta: { cache_creation_input_tokens: 1370, cache_read_input_tokens: 0, input_tokens: 17, output_tokens: 700 }

Segunda solicitud - mismos parámetros de pensamiento (se espera acierto de caché)

Uso de segunda respuesta: { cache_creation_input_tokens: 0, cache_read_input_tokens: 1370, input_tokens: 303, output_tokens: 874 }

Tercera solicitud - presupuesto de pensamiento diferente (se espera fallo de caché)
Uso de tercera respuesta: { cache_creation_input_tokens: 1370, cache_read_input_tokens: 0, input_tokens: 747, output_tokens: 619 }
Este ejemplo demuestra que cuando el almacenamiento en caché se configura en el array de mensajes, cambiar los parámetros de pensamiento (budget_tokens aumentado de 4000 a 8000) invalida el caché. La tercera solicitud no muestra acierto de caché con cache_creation_input_tokens=1370 y cache_read_input_tokens=0, probando que el almacenamiento en caché basado en mensajes se invalida cuando cambian los parámetros de pensamiento.

Tokens máximos y tamaño de ventana de contexto con pensamiento extendido

En modelos Claude más antiguos (anteriores a Claude Sonnet 3.7), si la suma de tokens de prompt 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 los tokens de prompt + 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.

La ventana de contexto con pensamiento extendido

Cuando se calcula el uso de la ventana de contexto con pensamiento habilitado, hay algunas consideraciones de las que ser consciente:
  • Los bloques de pensamiento de turnos anteriores se eliminan y no cuentan hacia su ventana de contexto
  • El pensamiento del turno actual cuenta hacia su límite de max_tokens para ese turno
El diagrama a continuación demuestra la gestión especializada de tokens cuando el pensamiento extendido está habilitado: Diagrama de ventana de contexto con pensamiento extendido 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 recuentos de tokens precisos para su caso de uso específico, especialmente cuando se trabaja con conversaciones de múltiples turnos que incluyen pensamiento.

La ventana de contexto con pensamiento extendido y uso de herramientas

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 efectivo de la ventana de contexto 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: Diagrama de ventana de contexto con pensamiento extendido y herramientas

Gestionar tokens con pensamiento extendido

Dado el comportamiento de ventana de contexto y max_tokens con pensamiento extendido en modelos Claude 3.7 y 4, puede que necesite:
  • Monitorear y gestionar más activamente su uso de tokens
  • Ajustar valores de max_tokens a medida que cambia la longitud de su prompt
  • Potencialmente usar los puntos finales de conteo de tokens más frecuentemente
  • Ser consciente de que los bloques de pensamiento anteriores no se acumulan en su ventana de contexto
Este 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.

Encriptación de pensamiento

El contenido de pensamiento completo se encripta y se devuelve en el campo signature. Este campo se usa para verificar que los bloques de pensamiento fueron generados por Claude cuando se devuelven a la API.
Es solo estrictamente necesario enviar bloques de pensamiento de vuelta 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 de vuelta, recomendamos devolver todo tal como lo recibió para consistencia y para evitar posibles problemas.
Aquí hay algunas consideraciones importantes sobre encriptación de pensamiento:
  • Cuando se hace streaming de respuestas, la firma se agrega a través de un signature_delta dentro de un evento content_block_delta justo antes del evento content_block_stop.
  • Los valores de signature son significativamente más largos en modelos Claude 4 que en modelos anteriores.
  • El campo signature es un campo opaco y no debe interpretarse o analizarse - existe únicamente para propósitos de verificación.
  • Los valores de signature son compatibles entre plataformas (APIs de Claude, Amazon Bedrock, y Vertex AI). Los valores generados en una plataforma serán compatibles con otra.

Redacción de pensamiento

Ocasionalmente, el razonamiento interno de Claude será marcado por nuestros sistemas de seguridad. Cuando esto ocurre, encriptamos parte o todo el bloque thinking y lo devolvemos como un bloque redacted_thinking. Los bloques redacted_thinking se desencriptan cuando se devuelven a la API, permitiendo que Claude continúe su respuesta sin perder contexto. Cuando se construyen aplicaciones orientadas al cliente que usan pensamiento extendido:
  • Sea consciente de que los bloques de pensamiento redactado contienen contenido encriptado que no es legible por humanos
  • Considere proporcionar una explicación simple como: “Parte del razonamiento interno de Claude ha sido encriptado automáticamente por razones de seguridad. Esto no afecta la calidad de las respuestas.”
  • Si muestra bloques de pensamiento a usuarios, puede filtrar bloques redactados mientras preserva bloques de pensamiento normales
  • Sea transparente de que usar características de pensamiento extendido puede ocasionalmente resultar en que parte del razonamiento sea encriptado
  • Implemente manejo de errores apropiado para gestionar gracefully el pensamiento redactado sin romper su interfaz de usuario
Aquí hay un ejemplo que muestra bloques de pensamiento tanto normales como redactados:
{
  "content": [
    {
      "type": "thinking",
      "thinking": "Déjame analizar esto paso a paso...",
      "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
    },
    {
      "type": "redacted_thinking",
      "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
    },
    {
      "type": "text",
      "text": "Basándome en mi análisis..."
    }
  ]
}
Ver bloques de pensamiento redactado en su salida es comportamiento esperado. El modelo aún puede usar este razonamiento redactado para informar sus respuestas mientras mantiene salvaguardas de seguridad.Si necesita probar el manejo de pensamiento redactado en su aplicación, puede usar esta cadena de prueba especial como su prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
Cuando devuelve bloques thinking y redacted_thinking de vuelta a la API en una conversación de múltiples turnos, debe 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 devolver todos los bloques de pensamiento a la API. Para más detalles, consulte la sección Preservar bloques de pensamiento arriba.
Este ejemplo demuestra cómo manejar bloques redacted_thinking que pueden aparecer en respuestas cuando el razonamiento interno de Claude contiene contenido marcado por sistemas de seguridad:
import anthropic

client = anthropic.Anthropic()

# Usar un prompt especial que desencadena pensamiento redactado (solo para propósitos de demostración)
response = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{
        "role": "user",
        "content": "ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB"
    }]
)

# Identificar bloques de pensamiento redactado
has_redacted_thinking = any(
    block.type == "redacted_thinking" for block in response.content
)

if has_redacted_thinking:
    print("La respuesta contiene bloques de pensamiento redactado")
    # Estos bloques aún son usables en solicitudes posteriores

    # Extraer todos los bloques (tanto redactados como no redactados)
    all_thinking_blocks = [
        block for block in response.content
        if block.type in ["thinking", "redacted_thinking"]
    ]

    # Cuando se pasa a solicitudes posteriores, incluir todos los bloques sin modificación
    # Esto preserva la integridad del razonamiento de Claude

    print(f"Se encontraron {len(all_thinking_blocks)} bloques de pensamiento en total")
    print(f"Estos bloques aún son facturables como tokens de salida")

Diferencias en el pensamiento entre versiones de modelos

La API de Mensajes maneja el pensamiento de manera diferente entre modelos Claude Sonnet 3.7 y Claude 4, principalmente en el comportamiento de redacción y resumen. Consulte la tabla a continuación para una comparación condensada:
CaracterísticaClaude Sonnet 3.7Modelos Claude 4
Salida de pensamientoDevuelve salida de pensamiento completoDevuelve pensamiento resumido
Pensamiento intercaladoNo soportadoSoportado con encabezado beta interleaved-thinking-2025-05-14

Precios

El pensamiento extendido usa el esquema de precios de tokens estándar:
ModeloTokens de entrada baseEscrituras de cachéAciertos de cachéTokens de salida
Claude Opus 4.1$15 / MTok$18.75 / MTok$1.50 / MTok$75 / MTok
Claude Opus 4$15 / MTok$18.75 / MTok$1.50 / MTok$75 / MTok
Claude Sonnet 4.5$3 / MTok$3.75 / MTok$0.30 / MTok$15 / MTok
Claude Sonnet 4$3 / MTok$3.75 / MTok$0.30 / MTok$15 / MTok
Claude Sonnet 3.7$3 / MTok$3.75 / MTok$0.30 / MTok$15 / MTok
El proceso de pensamiento incurre en cargos por:
  • Tokens usados durante el pensamiento (tokens de salida)
  • Bloques de pensamiento del último turno del asistente incluidos en solicitudes posteriores (tokens de entrada)
  • Tokens de salida de texto estándar
Cuando el pensamiento extendido está habilitado, un prompt del sistema especializado se incluye automáticamente para soportar esta característica.
Cuando se usa pensamiento resumido:
  • Tokens de entrada: Tokens en su solicitud original (excluye tokens de pensamiento de turnos anteriores)
  • Tokens de salida (facturados): Los tokens de pensamiento originales que Claude generó internamente
  • Tokens de salida (visibles): Los tokens de pensamiento resumidos que ve en la respuesta
  • Sin cargo: Tokens usados para generar el resumen
El recuento de tokens de salida facturados no coincidirá con el recuento de tokens visibles en la respuesta. Se le cobra por el proceso de pensamiento completo, no por el resumen que ve.

Mejores prácticas y consideraciones para pensamiento extendido

Trabajar con presupuestos de pensamiento

  • Optimización de presupuesto: El presupuesto mínimo es 1.024 tokens. Sugerimos comenzar con el mínimo e incrementar el presupuesto de pensamiento gradualmente para encontrar el rango óptimo para su caso de uso. Los recuentos de tokens más altos permiten un razonamiento más exhaustivo pero con rendimientos decrecientes dependiendo de la tarea. Aumentar el presupuesto puede mejorar la calidad de la respuesta al costo de mayor latencia. Para tareas críticas, pruebe diferentes configuraciones para encontrar el equilibrio óptimo. Tenga en cuenta que el presupuesto de pensamiento es un objetivo en lugar de un límite estricto—el uso real de tokens puede variar basado en la tarea.
  • Puntos de partida: Comience con presupuestos de pensamiento más grandes (16k+ tokens) para tareas complejas y ajuste según sea necesario.
  • Presupuestos grandes: Para presupuestos de pensamiento superiores a 32k, recomendamos usar procesamiento por lotes para evitar problemas de red. Las solicitudes que empujan el modelo a pensar por encima de 32k tokens causan solicitudes de larga duración que podrían encontrarse con límites de tiempo del sistema y límites de conexión abierta.
  • Seguimiento de uso de tokens: Monitoree el uso de tokens de pensamiento para optimizar costos y rendimiento.

Consideraciones de rendimiento

  • Tiempos de respuesta: Prepárese para tiempos de respuesta potencialmente más largos debido al procesamiento adicional requerido para el proceso de razonamiento. Tenga en cuenta que generar bloques de pensamiento puede aumentar el tiempo de respuesta general.
  • Requisitos de streaming: El streaming es requerido cuando max_tokens es mayor que 21.333. Cuando se hace streaming, prepárese para manejar bloques de contenido tanto de pensamiento como de texto a medida que llegan.

Compatibilidad de características

  • El pensamiento no es compatible con modificaciones de temperature o top_k así como fuerza de uso de herramientas.
  • Cuando el pensamiento está habilitado, puede establecer top_p en valores entre 1 y 0.95.
  • No puede rellenar previamente respuestas cuando el pensamiento está habilitado.
  • Los cambios en el pres presupuesto de pensamiento invalidan los prefijos de prompts en caché que incluyen mensajes. Sin embargo, los prompts del sistema en caché y definiciones de herramientas continuarán funcionando cuando cambien los parámetros de pensamiento.

Directrices de uso

  • Selección de tareas: Use pensamiento extendido para tareas particularmente complejas que se benefician del razonamiento paso a paso como matemáticas, codificación y análisis.
  • Manejo de contexto: No necesita eliminar bloques de pensamiento anteriores usted mismo. La API de Claude automáticamente ignora bloques de pensamiento de turnos anteriores y no se incluyen cuando se calcula el uso de contexto.
  • Ingeniería de prompts: Revise nuestros consejos de prompting de pensamiento extendido si desea maximizar las capacidades de pensamiento de Claude.

Próximos pasos