Zum Hauptinhalt springen
PydanticAI ist ein Python-Agent-Framework aus dem Pydantic-Team. Es bietet typisierte Abhängigkeiten, Tool-Aufrufe, Structured Outputs und Streaming zusätzlich zu LLM-Providern. Venice funktioniert als OpenAI-kompatibles Backend — richte OpenAIChatModel auf Venice aus und nutze den Rest der PydanticAI-API wie gewohnt.

Voraussetzungen

Einrichtung

Installiere PydanticAI mit OpenAI-Unterstützung:
Alternativ kannst du das vollständige pydantic-ai-Paket installieren, das die OpenAI-Extras enthält. Füge deinen Venice-API-Schlüssel zur Umgebung hinzu:
Halte API-Schlüssel aus der Versionskontrolle heraus. Bevorzuge in der Produktion Umgebungsvariablen oder einen Secret Manager.

Venice als Modell-Provider konfigurieren

Venice spricht die OpenAI Chat Completions API. Nutze OpenAIChatModel mit OpenAIProvider und der Base URL von Venice:
Verwende OpenAIChatModel (Chat Completions), nicht OpenAIResponsesModel / den openai:-Kurzschreibweise. Venices primärer Kompatibilitätspfad ist /chat/completions. Wenn du Chat Completions festlegst, vermeidest du Responses-spezifisches Verhalten, das OpenAI-Standardmodelle in neueren PydanticAI-Versionen nutzen.

Umgebungsvariablen

OpenAIProvider liest auch OPENAI_API_KEY und OPENAI_BASE_URL. So kannst du Venice statt über Argumente im Code konfigurieren:

Einen Agenten ausführen

Async-Nutzung folgt demselben Muster mit await agent.run(...):

Eine Antwort streamen

Verwende run_stream, wenn du Tokens erhalten möchtest, sobald sie eintreffen:

Structured Output

Übergib ein Pydantic-Modell als output_type, um die finale Antwort des Agenten zu validieren:
Bevor du in der Produktion auf toolbasierte Structured Outputs setzt, wirf einen Blick auf Modelle, die Structured Responses und Function Calling unterstützen.

Tools

Registriere Tools mit @agent.tool_plain (ohne Agent-Kontext) oder @agent.tool (benötigt RunContext):

Venice-spezifische Parameter

Übergib Venice-eigene Optionen über ModelSettings.extra_body. Aktiviere zum Beispiel die integrierte Websuche mit venice_parameters:
Du kannst die Einstellungen auch pro Lauf überschreiben:
Die vollständige Liste der venice_parameters (Web-Scraping, Zitate, Charaktere, Thinking-Controls und E2EE-Toggles) findest du in der API-Spezifikation.

Empfohlene Modelle

Modell-IDs ändern sich im Laufe der Zeit — verifiziere aktuelle IDs mit GET /models oder in der Modellübersicht.

Privacy-Vorteil

PydanticAI wird häufig für Agenten eingesetzt, die auf Anwendungsdaten, Nutzerkontext oder interne Tools zugreifen. In Kombination mit Venice bleibt dieser Workflow auf privater, unzensierter Inferenz:
  • Zero Data Retention bei privaten Modellen — Prompts und Tool-Payloads werden nach der Anfrage nicht gespeichert
  • Unzensierte Analyse, wenn Agenten schonungslose Kritik oder Red-Teaming liefern sollen
  • OpenAI-kompatible Infrastruktur, sodass du bestehende PydanticAI-Apps migrieren kannst, indem du lediglich Provider-Base-URL und API-Schlüssel änderst

Troubleshooting

Prüfe, ob VENICE_API_KEY (oder OPENAI_API_KEY) in dem Prozess gesetzt ist, der den Agenten ausführt. Starte die Shell oder den Prozess nach dem Ändern von Umgebungsvariablen neu.
Verwende eine aktuelle Modell-ID von der Modell-Seite. Setze base_url auf https://api.venice.ai/api/v1 ohne abschließenden Pfad — PydanticAI hängt /chat/completions selbst an.
Bevorzuge OpenAIChatModel mit einem expliziten OpenAIProvider. Vermeide die einfache openai:-Agent-Kurzschreibweise, die möglicherweise OpenAIs Responses API statt Chat Completions anspricht.
Wähle ein Modell, das Function Calling unterstützt, beschreibe in instructions, wann Tools ausgeführt werden sollen, und halte Tool-Docstrings präzise — PydanticAI erzeugt JSON-Schemas aus Signaturen und Docs.

PydanticAI Docs

Agenten, Tools, Abhängigkeiten und Output-Typen

Venice-Modelle

Modelle und unterstützte Funktionen durchsuchen