> ## 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.

# Suporte a Pensamento Intercalado

> **Última atualização**: 2025-12-03 <br />
> **Status**: Suportado (compatível com OpenAI)

## 1. Visão geral

**Pensamento Intercalado** é uma estrutura avançada de raciocínio que permite que os modelos realizem etapas explícitas de raciocínio entre chamadas de ferramentas.

Modelos com Pensamento Intercalado podem:

* Refletir sobre o ambiente atual e as saídas das ferramentas
* Decidir a próxima ação com base em raciocínio atualizado
* Manter uma cadeia contínua de raciocínio em várias invocações de ferramentas
* Fornecer pensamento transparente, inspecionável e em várias etapas por meio de `reasoning_details` ou `reasoning_content`

Essa capacidade transforma a chamada de funções tradicional em **uso de ferramentas em nível de agente**, tornando fluxos de trabalho complexos mais precisos, confiáveis e sensíveis ao contexto.

A Novita oferece suporte completo ao Pensamento Intercalado para todos os modelos que expõem nativamente fluxos de raciocínio (por exemplo, MiniMax-M2 e outros modelos de raciocínio compatíveis com OpenAI).

## 2. Conceitos principais

### 2.1 Intercalação

Em vez de executar uma única fase de raciocínio seguida por uma chamada de ferramenta, o modelo realiza:

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

Isso permite que o modelo ajuste sua estratégia dinamicamente com base nas saídas anteriores das ferramentas.

### 2.2 Detalhes de raciocínio (`reasoning_details`)

Para alguns modelos, o conteúdo do pensamento do modelo será retornado na forma de uma estrutura separada:

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

Para esses modelos, a Novita oferece suporte ao retorno desse campo nos modos streaming e non-streaming.

### 2.3 Requisito de memória de conversa

Para manter a continuidade do raciocínio: você **deve anexar a resposta completa do modelo**, incluindo `reasoning_details`, `tool_calls` e `content`, aos `messages` subsequentes.

Não preservar a cadeia pode resultar em:

* Uso incorreto de ferramentas
* Perda de contexto de raciocínio
* Chamadas de ferramentas repetidas ou circulares
* Confiabilidade reduzida

Esse requisito reflete as APIs de raciocínio da OpenAI.

## 3. Comportamento da API

### 3.1 Formato da requisição

Nenhuma alteração é necessária do lado do usuário.
O Pensamento Intercalado funciona com a API Chat Completions padrão compatível com OpenAI.

### 3.2 Formato da resposta

O modelo pode retornar os seguintes campos:

* `reasoning_content`: conteúdo original do pensamento
* `reasoning_details`: segmentos estruturados de raciocínio; este campo é opcional
* `tool_calls`: plano de invocação de ferramentas
* `content`: saída em linguagem natural

Eles estendem o formato padrão da OpenAI.

## 4. Exemplo de requisição (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. Exemplo de resposta (Non-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. Exemplo de resposta em 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. Observações para desenvolvedores

### 7.1 Modelos que oferecem suporte a Pensamento Intercalado

Todos os modelos que expõem `reasoning_details` por meio de APIs compatíveis com OpenAI, incluindo:

* MiniMax-M2
* (Em breve) Novita Reasoning Series
* Outros modelos de parceiros com raciocínio habilitado

### 7.2 Preços

O faturamento é baseado em tokens de raciocínio, seguindo as regras de preços do modelo.
`reasoning_details` aumentará o uso de tokens.

### 7.3 Tratamento de erros

Você pode encontrar:

* Parâmetros de ferramentas ausentes
* Chamadas de ferramentas recursivas ou repetidas
* Suposições incorretas na fase de raciocínio

Garanta que sua aplicação valide os argumentos das ferramentas e trate os erros do modelo de forma adequada.

## 8. Melhores práticas

**✓ Sempre inclua as mensagens completas do modelo na próxima requisição**

Inclua:

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

**✓ Habilite streaming para raciocínio em cadeias longas**

O streaming permite que o cliente:

* Monitore o processo de raciocínio
* Detecte planos de ferramenta incorretos antecipadamente
* Forneça feedback mais rápido ao usuário

**✓ Combine com máquinas de estado no lado do servidor para estabilidade**

Para sistemas de produção, recomendamos combinar o Pensamento Intercalado com proteções determinísticas, por exemplo:

* Validadores de parâmetros
* Sandbox de execução
* Proteções contra recursão máxima

## 9. Resumo

O Pensamento Intercalado aprimora significativamente o raciocínio em várias etapas e a confiabilidade do uso de ferramentas:

* Raciocínio passo a passo transparente e inspecionável
* Planejamento adaptativo entre invocações de ferramentas
* Retenção de contexto mais forte em fluxos de trabalho longos
* Totalmente compatível com a API Chat Completions no estilo OpenAI

A Novita continuará expandindo o suporte a modelos avançados de raciocínio, trazendo inteligência em nível de agente para a camada de API.
