Erstellen eines Agents mit der Python-API
Auf dieser Seite
Ihr erster Mistral-Agent
Die vorherigen drei Lektionen haben den Wortschatz etabliert; in dieser Lektion greifen Sie selbst an die Tastatur. Sie erstellen einen Agenten über die Python-API, bereichern ihn schrittweise mit Anweisungen, Generierungsparametern und Tools, und starten dann ein Gespräch mit ihm. Der Fortschritt ist absichtlich inkrementell: Jede Ergänzung verändert ein beobachtbares Verhalten und zeigt Ihnen, warum dieselbe create()-Methode entweder einen allgemeinen Assistenten oder einen Experten mit festgelegtem Stil erzeugen kann.
Voraussetzungen
Die Installation besteht aus zwei Schritten. Zuerst das offizielle SDK.
pip install mistralai
Als Nächstes stellen Sie Ihren API-Schlüssel in der Umgebung zur Verfügung, statt ihn hartcodiert in Ihren Code einzubetten. Das versehentliche Einchecken eines Schlüssels in ein Repository ist das erste Sicherheitsvorfall für jedes LLM-Projekt.
export MISTRAL_API_KEY="your-api-key"
Sie bauen den Client in einer einzigen Zeile. Dieses client-Objekt dient als Einstiegspunkt für den Rest der Lektion.
from mistralai.client import Mistral
import os
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
Erstellen eines minimalen Agents
Die Methode client.beta.agents.create() benötigt drei obligatorische Parameter und mehrere optionale. Beginnen wir mit dem absoluten Minimum.
agent = client.beta.agents.create(
model="mistral-medium-latest",
name="Simple Assistant",
description="Ein konversationeller Agent mit anhaltendem Zustand."
)
print(f"Agent erstellt: {agent.id}")
Dieser Agent ist minimalistisch: Keine spezifischen Anweisungen, keine Tools, keine Sicherheitsvorkehrungen. Er verhält sich wie ein erweitertes Chat-Completions-Endpunkt mit Persistenz. Beachten Sie die Kennung, die in agent.id zurückgegeben wird: Dies ist das, was Sie auf der Anwendungsebene speichern, da es die einzige stabile Referenz für diese Konfiguration ist.
Verhalten mit Anweisungen definieren
Anweisungen fungieren als Systemprompt und sind der primäre Hebel zur Steuerung des Verhaltens. Das folgende Beispiel verwandelt einen allgemeinen Assistenten in einen Rechtsexperten, dessen Umfang, Format und Grenzen explizit begrenzt sind.
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Legal Expert",
description="Agent, spezialisiert auf französisches Unternehmensrecht.",
instructions="""Sie sind ein Experte für französisches Unternehmensrecht.
Regeln:
- Antworten Sie immer auf Französisch
- Zitieren Sie relevante Rechtsartikel
- Geben Sie an, wann eine Frage eine Rechtsmeinung erfordert
- Strukturieren Sie Ihre Antworten mit Überschriften und Listen
- Geben Sie niemals definitive Rechtsberatung"""
)
Beachten Sie die Struktur dieses Prompts: Eine Rollendefinition am Anfang, gefolgt von nummerierten Regeln. Diese Abschnittsorganisation hilft dem Modell, Prioritäten bei den Einschränkungen zu setzen. Seien Sie spezifisch bezüglich der Rolle, des Tons und der Grenzen, statt zu schreiben „seien Sie hilfreich”. Vor allem sollten Sie Randfälle antizipieren: Was soll der Agent tun, wenn die Frage außerhalb seines Bereichs liegt? Der Satz zur Einholung einer Rechtsmeinung adressiert dies präzise. Behandeln Sie Anweisungen schließlich wie Code: Sie werden sie vor dem Erreichen des erwarteten Verhaltens mehrmals testen und überarbeiten.
Generierung steuern
Die completion_args konfigurieren den Sampler, also wie das Modell seine Wörter auswählt. Ein Agent, der Fakten wiederholt, benötigt nicht dieselbe Freiheit wie ein Brainstorming-Agent.
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Precise Agent",
description="Agent mit kontrollierten Generierungsparametern.",
instructions="Antworten Sie faktenbasiert und knapp.",
completion_args={
"temperature": 0.2, # Weniger Kreativität, mehr Präzision
"top_p": 0.9, # Wahrscheinlichkeitskern
"max_tokens": 2048 # Limit der Antwortlänge
}
)
temperature– Liegt zwischen 0,0 (deterministisch) und 1,0 (kreativ). Für faktische Aufgaben bevorzugen Sie 0,1–0,3.top_p– Kumulative Wahrscheinlichkeitsfilterung. 0,9 ist ein guter Standardwert.max_tokens– Strenge Begrenzung der Ausgabe-Token.
Den Agenten mit Tools ausstatten
Ein Agent wird erst wirklich autonom, wenn er über Text hinaus handeln kann. Die folgende Konfiguration verleiht ihm sowohl Webzugriff als auch Codeausführung: Bei einer Frage zum Vergleich der heutigen Zinsen wird er die Werte abrufen und das Ergebnis berechnen, ohne dass Sie eingreifen müssen.
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Research Agent",
description="Agent mit Websuche und Codeausführung.",
instructions="Verwenden Sie die Websuche für aktuelle Informationen und Code für Berechnungen.",
tools=[
{"type": "web_search"},
{"type": "code_interpreter"}
],
completion_args={"temperature": 0.3, "top_p": 0.95}
)
Verfügbare Tools umfassen: web_search, web_search_premium, code_interpreter, image_generation, document_library.
Den Agenten-Lebenszyklus verwalten
Ihre Agenten sind persistente Ressourcen auf der Mistral-Seite, und Sie verwalten sie wie jede andere Ressource: Sie finden sie, ändern sie und löschen sie. Das Auflisten ist besonders während der Entwicklung nützlich, wo Sie schnell dutzende Test-Agenten anlegen, deren Kennungen Sie verloren haben.
# Alle Ihre Agenten auflisten
agents = client.beta.agents.list()
for a in agents.data:
print(f"{a.name} ({a.id})")
# Einen Agenten nach seiner Kennung abrufen
agent = client.beta.agents.get(agent_id="ag-xxxxxxxx")
Updates sind partiell: Nur die bereitgestellten Felder werden geändert; die anderen bleiben wie sie sind. Dies ermöglicht es Ihnen, Anweisungen in der Produktion zu verfeinern, ohne die gesamte Konfiguration erneut zu deklarieren.
agent = client.beta.agents.update(
agent_id=agent.id,
instructions="Neue aktualisierte Anweisungen.",
tools=[{"type": "web_search"}, {"type": "code_interpreter"}]
)
Die Löschung ist jedoch endgültig.
client.beta.agents.delete(agent_id=agent.id)
Vollständiges Beispiel
Bringen wir alles in einem voll funktionsfähigen Agenten zusammen: Erstellung, Gespräch und Lesen der Antwort. Sie können dieses Skript so verwenden; ändern Sie einfach den Namen und die Anweisungen, und Sie haben innerhalb weniger Minuten Ihren eigenen operativen Analysten.
from mistralai.client import Mistral
import os
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
# Den Agenten erstellen
agent = client.beta.agents.create(
model="mistral-large-latest",
name="Tech Analyst",
description="Analysiert Technologietrends mit Webquellen.",
instructions="""Sie sind ein Technologieanalyst.
- Verwenden Sie die Websuche für aktuelle Daten
- Zitieren Sie immer Ihre Quellen
- Strukturieren Sie Ihre Analysen in Schlüsselpunkte""",
tools=[{"type": "web_search"}],
completion_args={"temperature": 0.3}
)
# Ein Gespräch starten
response = client.beta.conversations.start(
agent_id=agent.id,
inputs="Was sind die neuesten Fortschritte in der agentic AI im Jahr 2026?"
)
# Die Antwort anzeigen
for entry in response.outputs:
if hasattr(entry, "content"):
print(entry.content)
Der finale Schleifenabschnitt verdient einen Moment der Aufmerksamkeit: Er iteriert über response.outputs statt ein einzelnes Feld zu lesen, weil ein Agent mit Tools mehrere Einträge erzeugt – die Suche ausführt, dann den Text. Dies ist der entscheidende Punkt, auf den Sie in der nächsten Lektion achten müssen.
Kernaussagen
client.beta.agents.create()erstellt einen Agenten mit Modell, Namen und Beschreibung (obligatorisch)- Anweisungen definieren das Verhalten – dies ist der primäre Hebel
completion_argssteuern die Generierung (temperature, top_p, max_tokens)- Ein Agent kann mehrere Tools gleichzeitig aktivieren
- Agenten sind wiederverwendbare Konfigurationen, keine Gesprächsinstanzen