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

# Reasoning-Modelle mit Infercom implementieren

> Reasoning-Modelle auf Infercom nutzen. Konfigurierbares Thinking, das reasoning-Antwortfeld, Token-Budgetierung und Fehlerbehebung bei abgeschnittenen Antworten.

Reasoning-Modelle verarbeiten Informationen systematisch, um logische Schlussfolgerungen zu ziehen und komplexe Probleme Schritt für Schritt zu lösen. Bevor sie eine endgültige Antwort erzeugen, generieren sie eine interne Gedankenkette - sie durchdenken das Problem, prüfen Alternativen und korrigieren sich selbst. Das macht sie besonders geeignet für Mathematik, Programmierung, mehrstufige Planung und die Analyse mehrdeutiger oder komplexer Eingaben.

## Reasoning-Modelle auf Infercom

Die folgenden Modelle unterstützen Reasoning. Prüfen Sie immer [Unterstützte Modelle](/de/models/infercomcloud-models) für aktuelle Verfügbarkeit und Regionen.

| **Modell-ID**    | **Region** | **Wie Reasoning gesteuert wird**                  |
| :--------------- | :--------- | :------------------------------------------------ |
| `MiniMax-M2.7`   | EU         | Standardmäßig aktiviert                           |
| `MiniMax-M2.5`   | EU         | Standardmäßig aktiviert                           |
| `gpt-oss-120b`   | EU         | `reasoning_effort` (`low`, `medium`, `high`)      |
| `gemma-4-31B-it` | EU         | `chat_template_kwargs: {"enable_thinking": true}` |
| `DeepSeek-V3.1`  | US         | Standardmäßig aktiviert                           |
| `DeepSeek-V3.2`  | US         | Standardmäßig aktiviert                           |

## Wie Reasoning in der Antwort erscheint

Reasoning-fähige Modelle geben ihre Gedankenkette in einem dedizierten `reasoning`-Feld der Nachricht zurück, getrennt von der endgültigen Antwort in `content`:

```json theme={null}
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "reasoning": "Der Nutzer möchte 17 * 23. 17 * 20 = 340, 17 * 3 = 51, 340 + 51 = 391.",
        "content": "17 * 23 = 391"
      },
      "finish_reason": "stop"
    }
  ]
}
```

Verwenden Sie `reasoning` für Transparenz oder Debugging und `content` für die Antwort, die Sie Nutzern anzeigen.

<Note>
  Fügen Sie bei mehrteiligen Konversationen nur den endgültigen `content` des Modells zurück in den Nachrichtenverlauf ein - geben Sie vorheriges `reasoning` nicht an die nächste Runde weiter.
</Note>

## Token-Budget für Reasoning

<Warning>
  **Reasoning-Tokens zählen zu Ihrem Token-Limit.** Bei Reasoning-Modellen wird die Gedankenkette (Chain-of-Thought), die das Modell vor seiner endgültigen Antwort generiert, auf `max_tokens` (bzw. `max_completion_tokens`) angerechnet. Wenn Sie dieses Limit zu niedrig setzen, kann das Modell das gesamte Budget für das Denken verbrauchen und wird abgeschnitten, **bevor** es eine sichtbare Antwort erzeugt.

  In diesem Fall kommt die Antwort leer oder abgeschnitten zurück und `finish_reason` ist `"length"`. Prüfen Sie immer `finish_reason`: Ist der Wert `"length"`, erhöhen Sie `max_tokens` und wiederholen Sie die Anfrage. Planen Sie bei Reasoning-Modellen großzügig - lassen Sie genügend Spielraum sowohl für das Reasoning als auch für die endgültige Antwort.
</Warning>

Dies ist die häufigste Ursache für "leere" oder "fehlerhafte" Antworten von Reasoning-Modellen. Da die Gedankenkette zuerst generiert wird und auf Ihr Token-Limit angerechnet wird, wird ein niedriger `max_tokens`-Wert vom Reasoning aufgebraucht, bevor eine Antwort erzeugt wird.

Als Faustregel gilt: Planen Sie je nach Aufgabenkomplexität einige Hundert bis einige Tausend Tokens Spielraum über die erwartete Antwortlänge hinaus ein. Bei schwierigen Mathematik-, Programmier- oder Planungsaufgaben kann das Reasoning lang sein - budgetieren Sie entsprechend.

## Reasoning steuern

### Modelle mit `reasoning_effort`

`gpt-oss-120b` akzeptiert einen `reasoning_effort`-Parameter (`low`, `medium`, `high`), der Latenz und Token-Verbrauch gegen Antwortqualität abwägt.

<CodeGroup>
  ```python Python (OpenAI) theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.infercom.ai/v1",
      api_key="ihr-infercom-api-schluessel",
  )

  response = client.chat.completions.create(
      model="gpt-oss-120b",
      messages=[{"role": "user", "content": "Ein Schläger und ein Ball kosten zusammen 1,10 €. Der Schläger kostet 1 € mehr als der Ball. Wie viel kostet der Ball?"}],
      reasoning_effort="high",
      max_tokens=2000,
  )

  print("Reasoning:", response.choices[0].message.reasoning)
  print("Antwort:", response.choices[0].message.content)
  ```

  ```bash cURL theme={null}
  curl -s "https://api.infercom.ai/v1/chat/completions" \
    -H "Authorization: Bearer $INFERCOM_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gpt-oss-120b",
      "messages": [{"role": "user", "content": "Ein Schläger und ein Ball kosten zusammen 1,10 €. Der Schläger kostet 1 € mehr als der Ball. Wie viel kostet der Ball?"}],
      "reasoning_effort": "high",
      "max_tokens": 2000
    }'
  ```
</CodeGroup>

### Modelle mit konfigurierbarem Thinking (`enable_thinking`)

`gemma-4-31B-it` verfügt über einen konfigurierbaren Thinking-Modus, den Sie über `chat_template_kwargs` ein- oder ausschalten. Setzen Sie `enable_thinking` auf `true`, damit das Modell vor der Antwort nachdenkt, oder auf `false` für eine direkte Antwort.

<CodeGroup>
  ```python Python (OpenAI) theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.infercom.ai/v1",
      api_key="ihr-infercom-api-schluessel",
  )

  response = client.chat.completions.create(
      model="gemma-4-31B-it",
      messages=[{"role": "user", "content": "Ein Schläger und ein Ball kosten zusammen 1,10 €. Der Schläger kostet 1 € mehr als der Ball. Wie viel kostet der Ball?"}],
      extra_body={"chat_template_kwargs": {"enable_thinking": True}},
      max_tokens=2000,
  )

  print("Reasoning:", response.choices[0].message.reasoning)
  print("Antwort:", response.choices[0].message.content)
  ```

  ```bash cURL theme={null}
  curl -s "https://api.infercom.ai/v1/chat/completions" \
    -H "Authorization: Bearer $INFERCOM_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gemma-4-31B-it",
      "messages": [{"role": "user", "content": "Ein Schläger und ein Ball kosten zusammen 1,10 €. Der Schläger kostet 1 € mehr als der Ball. Wie viel kostet der Ball?"}],
      "chat_template_kwargs": {"enable_thinking": true},
      "max_tokens": 2000
    }'
  ```
</CodeGroup>

<Note>
  Übergeben Sie beim OpenAI Python SDK nicht-standardmäßige Parameter wie `chat_template_kwargs` innerhalb von `extra_body`, wie oben gezeigt. Beim direkten Aufruf der API (cURL) fügen Sie `chat_template_kwargs` auf der obersten Ebene des Anfrage-Bodys ein.
</Note>

### Modelle, die standardmäßig reasonen

`MiniMax-M2.7`, `MiniMax-M2.5` und die DeepSeek-Modelle reasonen standardmäßig - es ist kein zusätzlicher Parameter erforderlich. Senden Sie einfach Ihre Anfrage und lesen Sie die Felder `reasoning` und `content` aus der Antwort.

## Fehlerbehebung: leere oder abgeschnittene Antworten

Wenn ein Reasoning-Modell ein leeres `content`, eine mitten im Satz abgebrochene Antwort oder scheinbar rohes Thinking in der Ausgabe zurückgibt, liegt die Ursache fast immer an einem unzureichenden Token-Budget - nicht an einem Modellfehler.

<Steps>
  <Step title="finish_reason prüfen">
    Sehen Sie sich `choices[0].finish_reason` in der Antwort an. Der Wert `"length"` bedeutet, dass das Modell Ihr `max_tokens`-Limit erreicht hat, bevor es fertig war. `"stop"` bedeutet, dass es normal abgeschlossen wurde.
  </Step>

  <Step title="max_tokens erhöhen">
    Wenn `finish_reason` `"length"` ist, erhöhen Sie `max_tokens` (bzw. `max_completion_tokens`) und wiederholen Sie die Anfrage. Geben Sie dem Modell genügend Raum sowohl für das Reasoning als auch für die endgültige Antwort.
  </Step>

  <Step title="reasoning- und content-Felder überprüfen">
    Bestätigen Sie nach der Erhöhung des Limits, dass `reasoning` die Gedankenkette und `content` die endgültige Antwort enthält. Bei ausreichendem Budget sind beide sauber getrennt.
  </Step>
</Steps>

**Häufige Fehlersignaturen (alle durch ein zu niedriges `max_tokens` verursacht):**

| Symptom                        | Was Sie sehen                                                                                                                                     | Lösung               |
| :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |
| Leere Antwort                  | `content` ist `null` oder leer, `finish_reason` ist `"length"`                                                                                    | `max_tokens` erhöhen |
| Abgeschnittene Antwort         | `content` bricht mitten im Satz ab, `finish_reason` ist `"length"`                                                                                | `max_tokens` erhöhen |
| Reasoning gelangt in `content` | Eine teilweise Gedankenkette erscheint in `content`, weil sie abgeschnitten wurde, bevor das Modell die End-of-Thinking-Markierung ausgegeben hat | `max_tokens` erhöhen |

## Prompting von Reasoning-Modellen

* Halten Sie System-Prompts minimal. Übermäßige Anweisungen können den Reasoning-Spielraum des Modells einschränken und die Qualität verringern.
* Verzichten Sie auf eigenes "Denke Schritt für Schritt"-Chain-of-Thought-Prompting - das Modell reasont bereits intern. Verwenden Sie klare Zero-Shot- oder Einzelanweisungs-Prompts.
* Für allgemeines (nicht-mathematisches) Reasoning funktionieren `temperature` um 0,6 und `top_p` um 0,95 gut. Für mathematisches Reasoning versuchen Sie `temperature` 0,7 und `top_p` 1,0. Senken Sie die Temperatur, wenn Sie sachlichere, deterministischere Ausgaben wünschen.

## Anwendungsfälle

### Berichterstellung

Reasoning-Modelle eignen sich gut zur Verarbeitung unstrukturierter Informationen - Rechtsverträge, Finanzberichte oder wissenschaftliche Arbeiten - und erkennen Muster über mehrere Facetten der Eingabe hinweg, bevor sie diese zu einer umfassenden Zusammenfassung verdichten.

### Planung für Workflows und Agenten

Reasoning-Modelle sind hervorragend für mehrdeutige, komplexe Aufgaben geeignet. Sie können komplizierte Probleme zerlegen, Lösungen strategisch planen und Entscheidungen über große Mengen unsicherer Informationen treffen - was sie zu effektiven Planern und Orchestratoren in agentenbasierten Systemen macht.

### Programmierung und Mathematik

Diese Modelle sind effektiv beim Überprüfen und Verbessern von Code, beim Erkennen subtiler Probleme, die bei flüchtigem Lesen übersehen werden, und beim Zerlegen von Mathematikaufgaben in überprüfbare Schritte.

## Best Practices

<AccordionGroup>
  <Accordion title="Tokens für Reasoning budgetieren" defaultOpen="true">
    Reasoning wird auf `max_tokens` angerechnet. Setzen Sie das Limit hoch genug für sowohl die Gedankenkette als auch die endgültige Antwort. Wenn Antworten leer oder abgeschnitten zurückkommen, prüfen Sie `finish_reason` - der Wert `"length"` bedeutet, dass Sie `max_tokens` erhöhen müssen.
  </Accordion>

  <Accordion title="Latenz und Kosten" defaultOpen="false">
    Reasoning-Ausgaben haben aufgrund des Chain-of-Thought-Prozesses eine höhere Latenz und einen höheren Token-Verbrauch. Erwägen Sie für einfachere Aufgaben ein Nicht-Reasoning-Modell (oder deaktivieren Sie Thinking, sofern das Modell dies unterstützt), um Budget und Antwortzeit zu optimieren.
  </Accordion>

  <Accordion title="Streaming" defaultOpen="false">
    Das Aktivieren von Streaming verbessert die wahrgenommene Reaktionsfähigkeit, da Reasoning-Modelle länger für eine vollständige Antwort benötigen. Fügen Sie `stream=True` zu Ihrer Anfrage hinzu, um Tokens anzuzeigen, sobald sie verfügbar sind.
  </Accordion>
</AccordionGroup>

## FAQs

<AccordionGroup>
  <Accordion title="Mein Reasoning-Modell gibt eine leere oder abgeschnittene Antwort zurück. Warum?">
    Das liegt fast immer daran, dass `max_tokens` zu niedrig gesetzt ist. Das Reasoning des Modells wird auf dieses Limit angerechnet, sodass ein kleines Budget von der Gedankenkette aufgebraucht wird, bevor eine Antwort erzeugt wird. Prüfen Sie `finish_reason` - ist der Wert `"length"`, erhöhen Sie `max_tokens` und wiederholen Sie die Anfrage.
  </Accordion>

  <Accordion title="Was ist der Unterschied zwischen reasoning_effort und enable_thinking?">
    Es sind zwei verschiedene Steuerungen für zwei verschiedene Modelle. `gpt-oss-120b` verwendet `reasoning_effort` (`low`/`medium`/`high`), um zu steuern, wie viel es reasont. `gemma-4-31B-it` verwendet `chat_template_kwargs: {"enable_thinking": true/false}`, um Reasoning ein- oder auszuschalten. Das Setzen von `reasoning_effort` bei einem Modell, das es nicht unterstützt, hat keine Wirkung.
  </Accordion>

  <Accordion title="Ich habe einen 400-Fehler zur maximalen Kontextlänge erhalten. Wo kann ich das Limit prüfen?">
    Siehe die Seite [Unterstützte Modelle](/de/models/infercomcloud-models) für die Kontextlänge jedes Modells.
  </Accordion>

  <Accordion title="Wo werden diese Modelle gehostet?">
    Mit EU gekennzeichnete Modelle laufen in Infercoms EU-Rechenzentren in Deutschland mit vollständiger Datensouveränität. Prüfen Sie die Seite [Unterstützte Modelle](/de/models/infercomcloud-models), um die Region jedes Modells zu verifizieren.
  </Accordion>
</AccordionGroup>
