Busca en todas las páginas de la documentación
7 ejemplos para empezar con Pensamiento Extendido, Esfuerzo y Multimodalidad: 5 básicos y 2 intermedios.
pip install anthropic.export ANTHROPIC_API_KEY=sk-ant-....client = anthropic.Anthropic().El punto de partida antes de aplicar cualquier ajuste de pensamiento o esfuerzo.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
messages=[{"role": "user", "content": "Resume las desventajas de los microservicios."}],
)
print(response.content[0].text)messages.create envía una solicitud de un solo turno sin configuración de thinking, por lo que no se devuelve ningún bloque de razonamiento.response.content es una lista de bloques de contenido; para una respuesta de texto simple, generalmente contiene un bloque de texto.Activa el pensamiento adaptativo para que Claude decida cuánto razonamiento necesita una tarea.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
thinking={"type": "adaptive"},
messages=[{"role":
thinking={"type": "adaptive"} permite a Claude elegir la profundidad del razonamiento por solicitud en lugar de un presupuesto fijo.response.content muestra tanto un bloque de thinking como un bloque de text para una tarea como esta.Relacionado: Habilitar Pensamiento Adaptativo con thinking: {type: 'adaptive'} - análisis completo de esta configuración
Una vez que el pensamiento está habilitado, extrae el razonamiento por separado de la respuesta final.
thinking_text = None
answer_text = None
for block in response.content:
if block.type == "thinking":
thinking_text = block.thinking
elif block.type == "text":
answer_text = block.text
print(
thinking y el bloque text son elementos separados en la misma lista content.block.type permite que tu aplicación registre el razonamiento por separado de lo que ve el usuario.thinking; utiliza comprobaciones is None en código real.Limita la profundidad del razonamiento y el costo con el parámetro de esfuerzo.
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
thinking={"type": "adaptive"},
output_config={"effort": "low"},
messages=[{"role":
output_config={"effort": "low"} favorece la velocidad y el bajo costo sobre el razonamiento profundo.thinking; ambos se pueden establecer juntos.low es adecuado para tareas simples y de alto volumen, como la clasificación.Relacionado: Ajuste del Parámetro de Esfuerzo para Costo y Velocidad - elección de un nivel por carga de trabajo
Pide a Claude que mire una imagen y responda una pregunta sobre ella.
import base64
import anthropic
client = anthropic.Anthropic()
with open("chart.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-5"
content se convierte en una lista de bloques tipificados cuando un mensaje mezcla una imagen con texto.base64.standard_b64encode convierte los bytes crudos en el formato de cadena que espera la API.media_type debe coincidir con el formato real del archivo; las discrepancias causan errores en la solicitud.Relacionado: Envío de Imágenes para Análisis de Visión con Codificación Base64 - análisis más profundo de la entrada de visión
Razona a través de una pregunta que requiere tanto mirar una imagen como pensar en la respuesta.
import base64
import anthropic
client = anthropic.Anthropic()
with open("architecture-diagram.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-5"
thinking, output_config y una lista content multimodal funcionan en la misma solicitud.high es apropiado aquí porque detectar fallos arquitectónicos se beneficia de un razonamiento más profundo.[:200]) es un patrón común al registrar bloques de pensamiento largos.Escribe código defensivo, ya que no todas las respuestas devuelven razonamiento visible.
def extract_answer(response):
thinking = None
answer = None
for block in response.content:
if block.type == "thinking":
thinking = block.thinking
elif block.type == "text":
answer =
low a menudo no devuelve ningún bloque de thinking, el pensamiento adaptativo se lo saltó.extract_answer evita que cada sitio de llamada repita el mismo bucle.thinking is not None antes de usarlo evita AttributeError en código de producción.Relacionado: Niveles de Esfuerzo y Opciones de Visualización del Pensamiento - Referencia - tabla completa de niveles y modos de visualización
Versiones de la Pila: Escrito contra la línea de modelos de Claude actual a partir de ~junio de 2026: Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (el predeterminado) y Claude Haiku 4.5, y el SDK oficial de Python
anthropic(última versión 0.x). Los nombres de los modelos, las versiones del SDK y los precios cambian rápidamente; verifica los detalles actuales en platform.claude.com/docs antes de confiar en ellos.