Zum Hauptinhalt springen
Lektion 4 von 12 · KI-Logik mit Mistral: reasoning_effort, Small 4 und Large 4

Schlussfolgerung in Agenten und Gesprächen

Lektion 4 von 12 Aktualisiert am 2. November 2026 Entwickler
Auf dieser Seite
  1. Drei Wege, ein schlussfolgerndes Modell aufzurufen
  2. Ein Agent, der schlussfolgert
  3. Auslesen von Gesprächsausgaben
  4. Ein Gespräch ohne Agent
  5. Schlussfolgerung und Werkzeuge
  6. Vergleich der drei Ansätze
  7. Best Practices für die Integration
  8. Kernaussagen

Lektion am 2. November 2026 für Mistral Small 4 und Large 4 überarbeitet. Die Dokumentation von Mistral gibt an, dass reasoning_effort auf den Endpunkten für Agenten und Gespräche innerhalb des Feldes completion_args verfügbar ist. Quellen: Schlussfolgerung · Python SDK — Gespräche.

Drei Wege, ein schlussfolgerndes Modell aufzurufen

Vorherige Lektionen nutzten die Chat-Completions-API: Sie sandten bei jedem Aufruf die vollständige Historie und reasoning_effort ging direkt in die Anfrage ein. Mistral bietet zwei weitere Schnittstellen an: die Agents API, die eine wiederverwendbare Konfiguration (Modell, Anweisungen, Werkzeuge, Parameter) speichert, und die Conversations API, die die Historie auf dem Server behält. In diesen beiden APIs setzen Sie die Schlussfolgerung nicht auf der obersten Ebene fest; sie verschachteln sie innerhalb von completion_args zusammen mit anderen Generierungsparametern.

Ein Agent, der schlussfolgert

Das Festlegen des Schlussfolgerungsniveaus in der Agenten-Definition vermeidet die Wiederholung bei jedem Aufruf und stellt sicher, dass Ihr gesamtes Team dieselbe Einstellung verwendet:

import os
from mistralai.client import Mistral

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

agent = client.beta.agents.create(
    model="mistral-small-2603",
    name="Financial Analyst",
    instructions=(
        "Sie analysieren finanzielle Situationen für KMUs. "
        "Schließen Sie jede Antwort mit einer quantifizierten Empfehlung und ihren Annahmen ab."
    ),
    completion_args={"reasoning_effort": "high"},
)

reponse = client.beta.conversations.start(
    agent_id=agent.id,
    inputs="Unsere Working-Capital-Anforderung hat sich in einem Jahr verdoppelt, während der Umsatz um 15 % gewachsen ist. Worauf sollten wir uns zuerst konzentrieren?",
)

Auslesen von Gesprächsausgaben

Ein Gespräch gibt keine choices zurück; es gibt eine Liste von Einträgen (outputs) zurück. Die Antwort des Modells befindet sich in Einträgen vom Typ message.output. Wie bei den Chat-Completions ist der Inhalt entweder ein String oder eine Liste von Chunks, die möglicherweise einen ThinkChunk enthalten. Die Funktion separer aus Lektion 3 funktioniert genau wie zuvor:

for entry in reponse.outputs:
    if entry.type == "message.output":
        reflexion, texte = separer(entry.content)
        print(texte)

Andere Einträge beschreiben, was während des Turns geschah, wie z. B. die Ausführung eines Werkzeugs (tool.execution) oder ein Funktionsaufruf. Ignorieren Sie diese, wenn Sie nur an der endgültigen Antwort interessiert sind.

Ein Gespräch ohne Agent

Für einmalige Aufgaben akzeptiert die Conversations-API ein Modell direkt, ohne vorherige Agenten-Einrichtung. Der Server behält die Historie, und Sie setzen den Austausch mit conversations.append fort, wobei Sie das Schlussfolgerungsniveau für einen bestimmten Turn anpassen können, falls erforderlich:

conv = client.beta.conversations.start(
    model="mistral-large-4-0",
    inputs="Entwerfen Sie einen Migrationsplan für eine PostgreSQL-Datenbank mit 2 TB bei unterbrechungsfreiem Betrieb.",
    completion_args={"reasoning_effort": "high"},
)

suite = client.beta.conversations.append(
    conversation_id=conv.conversation_id,
    inputs="Fassen Sie diesen Plan in fünf Schritten für die Geschäftsführung zusammen.",
    completion_args={"reasoning_effort": "low"},   # eine Zusammenfassung benötigt keine tiefe Reflexion
)

Dies ist ein konkreter Vorteil gegenüber den Chat-Completions, bei denen die Dokumentation verlangt, dass Sie die vollständige Nachricht des Assistenten, einschließlich der Reflexion, bei jedem neuen Turn erneut abspielen (Lektion 7). Mit der Conversations-API behält der Server die Historie; Sie müssen sie bei jedem Aufruf nicht erneut senden.

Schlussfolgerung und Werkzeuge

Ein Agent kann Schlussfolgerung und Werkzeuge kombinieren: tools und completion_args sind unabhängige Felder beim Erstellen eines Agenten. Ein Analyse-Agent kann somit Web-Suche und tiefe Schlussfolgerung kombinieren:

agent_veille = client.beta.agents.create(
    model="mistral-small-2603",
    name="Competitive Intelligence",
    instructions="Sie vergleichen Angebots von Wettbewerbern unter Verwendung zitieter öffentlicher Quellen.",
    tools=[{"type": "web_search"}],
    completion_args={"reasoning_effort": "high"},
)

Achten Sie jedoch auf die Kosten: Reflexion und Werkzeugaufrufe summieren sich in der Abrechnung für einen einzigen Turn.

Vergleich der drei Ansätze

KriteriumChat-CompletionsAgentenGespräche
Wo wird Schlussfolgerung festgelegtreasoning_effort in der Anfragecompletion_args im Agentencompletion_args in start oder append
HistorieBei jedem Aufruf erneut senden, Reflexion inklusiveVon der Konversation getragenAuf dem Server gespeichert
Eingebaute Werkzeuge (web_search …)NeinJaJa
Typischer EinsatzEinmalige Aufrufe, volle KontrolleGeteilte, wiederverwendbare KonfigurationMehrstufige Austausche

Best Practices für die Integration

Legen Sie das Schlussfolgerungsniveau im Agenten fest, wenn die Aufgabe einheitlich ist, und pro Turn, wenn sie variiert: ein initiales Analyseturn bei high, gefolgt von Formulierungsturns bei low oder none, abhängig vom Modell. Stellen Sie sicher, dass der Wert zum Modell des Agenten passt: Small 4 akzeptiert high und none; Large 4 akzeptiert low, medium und high. Protokollieren Sie abschließend den Tokenverbrauch pro Turn; dies ist der einzige Weg, um zu wissen, ob Schlussfolgerung für Ihren Anwendungsfall sich lohnt.

Kernaussagen

  • Geben Sie in den APIs für Agenten und Gespräche reasoning_effort innerhalb von completion_args an.
  • Antworten kommen in outputs an; Text befindet sich in Einträgen vom Typ message.output, einschließlich der Reflexion.
  • Die Conversations-API behält die Historie auf dem Server: Es besteht kein Bedarf, sie bei jedem Turn erneut zu senden.
  • Sie können das Niveau bei jedem Turn mit conversations.append ändern.
  • Ein Agent kann eingebaute Werkzeuge und Schlussfolgerung kombinieren, zum Preis eines kumulativen Verbrauchs.