Schlussfolgerung in Agenten und Gesprächen
Auf dieser Seite
Lektion am 2. November 2026 für Mistral Small 4 und Large 4 überarbeitet. Die Dokumentation von Mistral gibt an, dass
reasoning_effortauf den Endpunkten für Agenten und Gespräche innerhalb des Feldescompletion_argsverfü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
| Kriterium | Chat-Completions | Agenten | Gespräche |
|---|---|---|---|
| Wo wird Schlussfolgerung festgelegt | reasoning_effort in der Anfrage | completion_args im Agenten | completion_args in start oder append |
| Historie | Bei jedem Aufruf erneut senden, Reflexion inklusive | Von der Konversation getragen | Auf dem Server gespeichert |
Eingebaute Werkzeuge (web_search …) | Nein | Ja | Ja |
| Typischer Einsatz | Einmalige Aufrufe, volle Kontrolle | Geteilte, wiederverwendbare Konfiguration | Mehrstufige 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_effortinnerhalb voncompletion_argsan. - Antworten kommen in
outputsan; Text befindet sich in Einträgen vom Typmessage.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.