> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Compatibilidad con Interleaved Thinking

> **Última actualización**: 2025-12-03 <br />
> **Estado**: Compatible (compatible con OpenAI)

## 1. Descripción general

**Interleaved Thinking** es un marco de razonamiento avanzado que permite a los modelos realizar pasos de razonamiento explícitos entre llamadas a herramientas.

Los modelos con Interleaved Thinking pueden:

* Reflexionar sobre el entorno actual y las salidas de herramientas
* Decidir la siguiente acción en función del razonamiento actualizado
* Mantener una cadena de razonamiento continua a través de múltiples invocaciones de herramientas
* Proporcionar pensamiento multipaso transparente e inspeccionable mediante `reasoning_details` o `reasoning_content`

Esta capacidad transforma la llamada a funciones tradicional en **uso de herramientas a nivel de agente**, haciendo que los flujos de trabajo complejos sean más precisos, fiables y conscientes del contexto.

Novita es totalmente compatible con Interleaved Thinking para todos los modelos que exponen de forma nativa flujos de razonamiento (por ejemplo, MiniMax-M2 y otros modelos de razonamiento compatibles con OpenAI).

## 2. Conceptos clave

### 2.1 Intercalado

En lugar de ejecutar una sola fase de razonamiento seguida de una llamada a herramienta, el modelo realiza:

```BASH theme={"system"}
Reason → Tool Call → Observe → Reason → Tool Call → ...
```

Esto permite que el modelo ajuste su estrategia dinámicamente en función de las salidas de herramientas anteriores.

### 2.2 Detalles de razonamiento (`reasoning_details`)

Para algunos modelos, el contenido del pensamiento del modelo se devolverá en forma de una estructura separada:

```JSON theme={"system"}
"reasoning_details": [
  {
    "type": "reasoning.text",
    "format": "openai-responses-v1",
    "text": "Model’s step-by-step reasoning..."
  }
]
```

Para dichos modelos, Novita admite la devolución de este campo tanto en modo streaming como sin streaming.

### 2.3 Requisito de memoria de conversación

Para mantener la continuidad del razonamiento: **debes anexar la respuesta completa del modelo**, incluidos `reasoning_details`, `tool_calls` y `content`, a los `messages` posteriores.

No preservar la cadena puede provocar:

* Uso incorrecto de herramientas
* Pérdida del contexto de razonamiento
* Llamadas a herramientas repetidas o circulares
* Menor fiabilidad

Este requisito refleja las API de razonamiento de OpenAI.

## 3. Comportamiento de la API

### 3.1 Formato de solicitud

No se requieren cambios por parte del usuario.
Interleaved Thinking funciona con la API estándar Chat Completions compatible con OpenAI.

### 3.2 Formato de respuesta

El modelo puede devolver los siguientes campos:

* `reasoning_content`: contenido de pensamiento original
* `reasoning_details`: segmentos de razonamiento estructurados; este campo es opcional
* `tool_calls`: plan de invocación de herramientas
* `content`: salida en lenguaje natural

Estos campos amplían el formato estándar de OpenAI.

## 4. Solicitud de ejemplo (MiniMax-M2)

```JSON theme={"system"}
{
  "model": "minimax/minimax-m2",
  "messages": [
    {
      "role": "user",
      "content": "How's the weather in San Francisco?"
    },
    {
      "role": "assistant",
      "name": "MiniMax AI",
      "content": "",
      "tool_calls": [
        {
          "id": "call_function_asqvfevfc8af_1",
          "type": "function",
          "function": {
            "name": "get_weather",
            "arguments": "{\"location\": \"San Francisco, US\"}"
          }
        }
      ],
      "reasoning_details": [
        {
          "type": "reasoning.text",
          "id": "reasoning-text-1",
          "format": "openai-responses-v1",
          "index": 0,
          "text": "The user is asking about the weather in San Francisco..."
        }
      ]
    },
    {
      "role": "tool",
      "tool_call_id": "call_function_asqvfevfc8af_1",
      "content": "24℃, sunny"
    }
  ],
  "stream": true,
  "reasoning_split": true,
  "max_tokens": 1024,
  "temperature": 0.7,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a specific location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          },
          "required": ["location"]
        }
      }
    }
  ]
}
```

## 5. Respuesta de ejemplo (sin streaming)

```JSON theme={"system"}
{
  "id": "07a4dedfdb1498b045498dfd42497639",
  "object": "chat.completion",
  "created": 1764303147,
  "model": "MiniMax",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "",
        "name": "MiniMax",
        "tool_calls": [
          {
            "index": 0,
            "id": "call_function_9w7wq1j9zmpl_1",
            "type": "function",
            "function": {
              "name": "get_weather",
              "arguments": "{\"location\": \"ShangHai\"}"
            }
          }
        ],
        "reasoning_content": "The user asked for Shanghai weather...",
        "reasoning_details": [
          {
            "type": "reasoning.text",
            "text": "The user is asking about the weather in Shanghai...",
            "id": "reasoning-text-1",
            "format": "openai-responses-v1",
            "index": 0
          }
        ]
      },
      "finish_reason": "tool_calls"
    }
  ]
}
```

## 6. Ejemplo de respuesta en streaming

```JSON theme={"system"}
{
  "id": "664c5ad870c1888fbcbd267d9829e354",
  "object": "chat.completion.chunk",
  "created": 1764303504,
  "model": "minimax-m2",
  "choices": [
    {
      "index": 0,
      "delta": {
        "role": "assistant",
        "reasoning_content": "...\n\nThe user has specifically asked...",
        "reasoning_details": [
          {
            "type": "reasoning.text",
            "text": ".\n\nThe user has specifically asked...",
            "id": "reasoning-text-1",
            "format": "openai-responses-v1",
            "index": 0
          }
        ]
      },
      "finish_reason": null
    }
  ]
}
```

## 7. Notas para desarrolladores

### 7.1 Modelos compatibles con Interleaved Thinking

Todos los modelos que exponen `reasoning_details` mediante API compatibles con OpenAI, incluidos:

* MiniMax-M2
* (Próximamente) Novita Reasoning Series
* Otros modelos de socios con razonamiento habilitado

### 7.2 Precios

La facturación se basa en tokens de razonamiento, siguiendo las reglas de precios del modelo.
`reasoning_details` aumentará el uso de tokens.

### 7.3 Manejo de errores

Puedes encontrar:

* Parámetros de herramientas faltantes
* Llamadas a herramientas recursivas o repetidas
* Suposiciones incorrectas en la fase de razonamiento

Asegúrate de que tu aplicación valide los argumentos de las herramientas y gestione los errores del modelo de forma adecuada.

## 8. Mejores prácticas

**✓ Incluye siempre los mensajes completos del modelo en la siguiente solicitud**

Incluye:

* `content`
* `tool_calls`
* `reasoning_details`

**✓ Habilita streaming para razonamientos de cadena larga**

El streaming permite al cliente:

* Supervisar el proceso de razonamiento
* Detectar planes de herramientas incorrectos de forma temprana
* Proporcionar comentarios al usuario más rápidamente

**✓ Combínalo con máquinas de estado del lado del servidor para mayor estabilidad**

Para sistemas en producción, recomendamos combinar Interleaved Thinking con barreras deterministas, por ejemplo:

* Validadores de parámetros
* Sandbox de ejecución
* Salvaguardas de recursión máxima

## 9. Resumen

Interleaved Thinking mejora significativamente el razonamiento multipaso y la fiabilidad del uso de herramientas:

* Razonamiento paso a paso transparente e inspeccionable
* Planificación adaptativa entre invocaciones de herramientas
* Mayor retención de contexto en flujos de trabajo largos
* Totalmente compatible con la API Chat Completions al estilo de OpenAI

Novita seguirá ampliando la compatibilidad con modelos de razonamiento avanzado, llevando inteligencia a nivel de agente a la capa de API.
