Saltar al contenido principal
Algunos modelos piensan en voz alta antes de responder. Resuelven los problemas paso a paso y luego dan una respuesta final. Esto los hace más fuertes en matemáticas, código y tareas con mucha lógica.
Consulta la lista completa de modelos, precios y límites de contexto en la página de Modelos. No todos los modelos de razonamiento admiten el parámetro reasoning_effort. Consulta soporte por modelo para más detalles.

Leer la salida

Los modelos de razonamiento devuelven su pensamiento en un campo separado reasoning_content, manteniendo content limpio:
response = client.chat.completions.create(
    model="zai-org-glm-5-1",
    messages=[{"role": "user", "content": "What is 15% of 240?"}]
)

thinking = response.choices[0].message.reasoning_content
answer = response.choices[0].message.content
Algunos proveedores (Anthropic, Google, OpenAI, Qwen) devuelven tokens de razonamiento cifrados o resumidos. Cuando esto ocurre, reasoning_content contiene un marcador "[Some reasoning content is encrypted]".

Streaming

Al hacer streaming, reasoning_content llega en el delta antes que la respuesta final:
stream = client.chat.completions.create(
    model="zai-org-glm-5-1",
    messages=[{"role": "user", "content": "Explain photosynthesis"}],
    stream=True
)

for chunk in stream:
    if chunk.choices:
        delta = chunk.choices[0].delta
        if delta.reasoning_content:
            print(delta.reasoning_content, end="")
        if delta.content:
            print(delta.content, end="")

Esfuerzo de razonamiento

El parámetro reasoning_effort controla cuánto piensa un modelo antes de responder. Mayor esfuerzo implica razonamiento más profundo pero más tokens y latencia.

Valores aceptados

ValorDescripción
noneDesactiva el razonamiento por completo
minimalRazonamiento básico con esfuerzo mínimo
lowRazonamiento ligero para problemas simples
mediumRazonamiento equilibrado para complejidad moderada
highRazonamiento profundo para problemas complejos
xhighProfundidad de razonamiento extra-alta
maxCapacidad máxima de razonamiento
No todos los modelos admiten todos los valores. Venice no mapea automáticamente al nivel admitido más cercano. Los valores no admitidos devuelven un error 400 del proveedor upstream. Por ejemplo, enviar xhigh a Claude o max a GPT-5.2 fallará.En caso de duda, usa low, medium o high. Son los valores más ampliamente admitidos.

Soporte por modelo

OpenAI

ModeloValores admitidos
GPT-5.2none, low, medium, high, xhigh
GPT-5.2 Codex, GPT-5.3 Codexlow, medium, high, xhigh

Anthropic

ModeloValores admitidos
Claude Opus 4.6, Opus 4.6 Fastlow, medium, high, max
Claude Opus 4.5, Sonnet 4.5, Sonnet 4.6low, medium, high

Google

ModeloValores admitidos
Gemini 3 Pro Previewlow, high
Gemini 3.1 Pro Previewlow, medium, high
Gemini 3 Flash Previewminimal, low, medium, high

xAI

Los modelos Grok (Grok 4.1 Fast, Grok Code Fast) no admiten reasoning_effort. Especificarlo resultará en un error.

Otros modelos

ModeloValores admitidos
Qwen 3 235B A22B Thinking, Qwen 3.5 35B A3Blow, medium, high
Kimi K2.5low, medium, high
MiniMax M2.5, M2.1low, medium, high
Serie GLM 5.1Solo razonamiento integrado, no configurable
DeepSeek R1Solo razonamiento integrado, no configurable

Uso

Pasa reasoning_effort como parámetro de nivel superior o usa el formato anidado reasoning.effort:
response = client.chat.completions.create(
    model="minimax-m25",
    messages=[{"role": "user", "content": "Prove that there are infinitely many primes"}],
    extra_body={"reasoning": {"effort": "high"}}
)
También se acepta el formato plano "reasoning_effort": "high".

Desactivar el razonamiento

Hay dos formas de desactivar el razonamiento:
MétodoSintaxisCómo funciona
reasoning.enabled: false"reasoning": {"enabled": false}Conmutador a nivel de Venice que impide que los parámetros de razonamiento se envíen al proveedor. Recomendado.
reasoning.effort: "none""reasoning": {"effort": "none"}Se pasa al proveedor, que decide cómo gestionarlo. Solo lo admiten algunos modelos (p. ej., GPT-5.x).
Para los modelos que lo admiten, reasoning.enabled: false es la opción más fiable:
Modelo¿Se puede desactivar?
GPT-5.2
GPT-5.2 Codex, GPT-5.3 CodexSí (pero el esfuerzo none no es compatible)
Qwen 3 235B A22B Thinking, Qwen 3.5 35B A3B
Serie GLM 5.1
Claude Opus 4.5/4.6/4.6 Fast, Sonnet 4.5/4.6No (siempre razona)
Gemini 3 Pro, 3.1 Pro, 3 FlashNo (siempre razona)
DeepSeek R1No (siempre razona)
response = client.chat.completions.create(
    model="openai-gpt-52",
    messages=[{"role": "user", "content": "What's the capital of France?"}],
    extra_body={"reasoning": {"enabled": False}}
)

Límites de tokens

Los modelos de razonamiento generan tokens visibles de respuesta (en content) y tokens de razonamiento (en reasoning_content). Ambos cuentan para tu presupuesto de tokens.

Establecer un tope de tokens

Usa max_completion_tokens para limitar el número total de tokens que el modelo genera, incluido el razonamiento:
{
  "model": "deepseek-v4-flash",
  "messages": [...],
  "max_completion_tokens": 500
}
max_tokens también se acepta y se comporta igual. Si se establecen ambos, max_completion_tokens tiene prioridad. Para obtener más salida visible, sube el tope, baja reasoning_effort o desactiva el razonamiento.

Leer el desglose

El objeto usage muestra cómo se gastó tu presupuesto:
"usage": {
  "completion_tokens": 501,
  "completion_tokens_details": { "reasoning_tokens": 169 },
  "prompt_tokens": 13,
  "total_tokens": 514
}
En este ejemplo, se gastaron 169 tokens en razonamiento y 332 en la respuesta visible. Cuando se alcanza el tope, finish_reason es length. El límite superior de cada modelo está disponible como maxCompletionTokens en el endpoint /v1/models.

Modelos sin razonamiento

max_tokens y max_completion_tokens se comportan igual en modelos sin razonamiento, limitando la salida visible directamente.

Descubrir capacidades

Comprueba qué admite un modelo mediante el endpoint /v1/models:
CampoSignificado
supportsReasoningEl modelo tiene capacidad de razonamiento (cadena de pensamiento)
supportsReasoningEffortEl modelo acepta el parámetro reasoning_effort / reasoning.effort

Mejores prácticas

  • Por defecto, usa medium para uso general
  • Usa high o xhigh para tareas complejas (matemáticas, código, análisis)
  • Usa low para aplicaciones sensibles a la latencia
  • Usa reasoning.enabled: false o establece el effort en none para desactivar el razonamiento
  • En caso de duda, usa low, medium o high. Son los valores más ampliamente admitidos