Zum Hauptinhalt springen
Lektion 7 von 18 · Mistral Agents: Aufbau autonomer KI

Konversationen ohne Agent

Lektion 7 von 18 Aktualisiert am 2. November 2026 Entwickler
Auf dieser Seite
  1. Direkter Modellmodus
  2. Starten einer Konversation mit einem Modell
  3. Tools im direkten Modus hinzufügen
  4. Übergeben dynamischer Anweisungen
  5. Fortsetzen einer Konversation im direkten Modus
  6. Agent vs. Direkter Modus: Wie man entscheidet
  7. Beispiel: Frage innerhalb eines erzwungenen Kontexts
  8. Kernaussagen

Direkter Modellmodus

Für die Nutzung der Konversations-API ist die Erstellung eines Agent-Objekts nicht immer erforderlich. Mistral ermöglicht es Ihnen, eine Konversation direkt mit einem Modell zu starten und so Persistenz ohne die Konfigurationsebene eines Agenten zu erhalten. Diese Möglichkeit ergibt sich direkt aus der Architektur, die wir zuvor behandelt haben: Die Konversation ist unabhängig vom Agenten und kann daher auch eigenständig existieren.

Mehrere Szenarien machen dies gegenüber der Nutzung eines registrierten Agenten bevorzugt. Möglicherweise wünschen Sie sich Persistenz, ohne einen wiederverwendbaren Agenten zu definieren, beispielsweise, weil jeder Thread in Ihrer Anwendung einzigartig ist. Möglicherweise testen Sie das Verhalten schnell mit eingebauten Tools, und das Erstellen und Löschen eines Agenten für jeden Versuch verlangsamt Sie. Ihr Anwendungsfall könnte einmalig sein: Nichts rechtfertigt das Speichern einer Konfiguration, die Sie nur einmal nutzen werden. Oder Ihre Anweisungen könnten dynamisch sein, basierend auf dem Benutzerprofil oder dem aktuellen Dokument zur Laufzeit berechnet – in diesem Fall wäre ein statischer Agent das falsche Werkzeug.

Starten einer Konversation mit einem Modell

Anstatt eine agent_id zu übergeben, geben Sie ein model direkt an:

from mistralai.client import Mistral
import os

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

response = client.beta.conversations.start(
    model="mistral-medium-latest",
    inputs=[
        {"role": "user", "content": "Wer ist Albert Einstein?"}
    ]
)

print(response.outputs[-1].content)

Alles hängt von dieser Parameterwahl ab. Mit agent_id übernimmt der Aufruf die registrierte Konfiguration des Agenten: seine Anweisungen, Tools und Sicherheitsvorkehrungen. Im direkten Modus mit model konfigurieren Sie alles selbst in der Anfrage – nichts wird über den Aufruf hinaus gespeichert.

Tools im direkten Modus hinzufügen

Eingebaute Tools sind nicht ausschließlich für Agenten reserviert. Sie deklarieren sie in der Anfrage genau wie bei der Agentenerstellung.

response = client.beta.conversations.start(
    model="mistral-large-latest",
    inputs=[
        {"role": "user", "content": "Welche sind die neuesten Ligue 1-Ergebnisse?"}
    ],
    tools=[{"type": "web_search"}]
)

Dies ist funktional äquivalent zu einem Agenten mit web_search, jedoch ohne Persistenz der Konfiguration. Der Unterschied zeigt sich beim zehnten Aufruf: Bei einem Agenten würden Sie die Temperatur einmal und für immer ändern; hier müssen Sie sie in jeder Anfrage wiederholen, und nichts garantiert, dass ein vergessener Aufruf irgendwo in Ihrem Code dieselben Einstellungen verwendet.

Übergeben dynamischer Anweisungen

Im direkten Modus hat der Systemprompt die Form einer system-Nachricht, die am Kopf der Eingaben platziert wird.

response = client.beta.conversations.start(
    model="mistral-large-latest",
    inputs=[
        {"role": "system", "content": "Sie sind ein Experte für französische Küche. Beantworten Sie in maximal drei Sätzen."},
        {"role": "user", "content": "Wie bereite ich eine perfekte Béarnaise-Sauce zu?"}
    ]
)

Dies bietet dieselbe Flexibilität wie Agentenanweisungen, jedoch nur vorübergehend – und entscheidend: Diese Zeichenfolge kann zur Laufzeit erstellt werden, was bei einer registrierten Agentenanweisung nicht möglich ist.

Fortsetzen einer Konversation im direkten Modus

Der Persistenzmechanismus funktioniert genau wie bei einem Agenten: Der erste Aufruf gibt eine conversation_id zurück, nachfolgende Aufrufe hängen daran an, und jede Ergänzung gibt ihrerseits eine neue Kennung zurück.

# Erster Austausch
response1 = client.beta.conversations.start(
    model="mistral-large-latest",
    inputs=[{"role": "user", "content": "Erzählen Sie mir von der Französischen Revolution."}]
)

# Zweiter Austausch – der Kontext bleibt erhalten
response2 = client.beta.conversations.append(
    conversation_id=response1.conversation_id,
    inputs="Wer waren die Hauptakteure?"
)

# Das Modell weiß, dass wir über die Französische Revolution sprechen

Die zweite Frage benennt ihr Thema nicht und muss es auch nicht: Die Persistenz hängt nicht von der Existenz eines Agenten ab, sondern nur von der Konversation.

Agent vs. Direkter Modus: Wie man entscheidet

Erstellen Sie einen Agenten, sobald dieselbe Konfiguration für mehrere Konversationen dient, da Sie dann einen einzigen Punkt der Änderung gewinnen: Die Korrektur einer Anweisung aktualisiert alle zukünftigen Threads. Dies ist auch der einzige Weg, wenn Ihre Anweisungen von Sitzung zu Sitzung stabil sind, wenn Sie Multi-Agenten-Übergänge planen – was die dazu gewidmete Lektion detailliert beschreibt – oder wenn Ihre Organisation eine zentralisierte, überprüfbare Konfiguration erfordert, bei der Sie die Frage beantworten können: „Mit welchen Anweisungen wurde dieser Assistent ausgeführt?”

Bleiben Sie im direkten Modus für die symmetrischen Fälle: Prototypen oder einmalige Nutzung, Anweisungen, die bei jeder Konversation ändern, kein Bedarf an Übergängen oder der Wunsch, API-Aufrufe zu reduzieren, indem Sie die Erstellung und Löschung von Agenten eliminieren. In der Entwicklung ist dieser letzte Grund allein oft ausreichend.

Beispiel: Frage innerhalb eines erzwungenen Kontexts

Die folgende Funktion illustriert den direkten Modus perfekt. Der Kontext ist ein Argument, sodass er bei jedem Aufruf variiert, und der Systemprompt wird darum herum aufgebaut, um zu verhindern, dass das Modell auf externes Wissen zurückgreift. Kein registrierter Agent könnte diese Einschränkung tragen, da sie bei jederInvocation ändert.

def ask_question(context: str, question: str):
    """Stellen Sie eine Frage innerhalb eines gegebenen Kontexts, ohne einen Agenten zu erstellen."""
    response = client.beta.conversations.start(
        model="mistral-large-latest",
        inputs=[
            {"role": "system", "content": f"Kontext: {context}. Beantworten Sie ausschließlich unter Verwendung dieses Kontexts."},
            {"role": "user", "content": question}
        ]
    )
    return response.outputs[-1].content

# Nutzung
answer = ask_question(
    context="Corsen AI ist ein französisches Startup, das sich auf souveräne KI spezialisiert und 2025 gegründet wurde.",
    question="Wann wurde Corsen AI gegründet?"
)

Nutzen Sie dieses Muster für Ihre eigenen Bedürfnisse, indem Sie den fest codierten Kontext durch den tatsächlich relevanten Text ersetzen – das angezeigte Produktdatenblatt, der ausgewählte Dokumentenauszug – und Sie erhalten einen modularen Baustein für gerahmte Fragen und Antworten ohne zu verwaltende Konfiguration.

Kernaussagen

  • Konversationen können mit model= statt mit agent_id= gestartet werden
  • Der direkte Modus bietet Persistenz ohne die Agent-Konfigurationsebene
  • Sie können Tools und Anweisungen direkt in der Anfrage übergeben
  • Der direkte Modus ist ideal für Prototypen und einmalige Nutzung
  • Für Übergänge und wiederverwendbare Konfigurationen ist die Erstellung eines Agenten vorzuziehen