OpenAI Agents Python Projekt – Detaillierte Vorstellung
Projektübersicht
Das OpenAI Agents SDK ist ein schlankes und leistungsstarkes Python-Framework zum Erstellen von Multi-Agent-Workflows. Es handelt sich um ein von OpenAI offiziell veröffentlichtes Tool zur Entwicklung von Agenten in Produktionsqualität und stellt ein Upgrade des vorherigen experimentellen Projekts Swarm dar. Das Framework ist einfach, aber umfassend konzipiert und speziell für die Entwicklung komplexer Multi-Agent-KI-Anwendungen gedacht.
Kernfunktionen
1. Plattformübergreifende Kompatibilität
- Modellunabhängigkeit: Unterstützt die Responses- und Chat Completions-API von OpenAI
- Breite Kompatibilität: Unterstützt über 100 verschiedene Large Language Models (LLMs)
- API-Flexibilität: Ermöglicht den einfachen Wechsel zwischen verschiedenen KI-Dienstleistern
2. Kernkomponenten
Agenten (Agents)
- LLM-Instanzen, die mit Anweisungen, Tools, Sicherheitsvorkehrungen und Übergabemechanismen konfiguriert sind
- Jeder Agent hat klare Verantwortlichkeiten und Fähigkeitsgrenzen
- Unterstützt benutzerdefinierte Anweisungen und Verhaltensmuster
Übergabemechanismen (Handoffs)
- Spezieller Mechanismus zum Aufrufen von Tools, um die Kontrolle zwischen Agenten zu übertragen
- Ermöglicht die nahtlose Zusammenarbeit zwischen Agenten
- Unterstützt komplexe Workflow-Orchestrierung
Sicherheitsvorkehrungen (Guardrails)
- Konfigurierbare Sicherheitsüberprüfungen zur Validierung von Ein- und Ausgaben
- Gewährleistet die Sicherheit und Zuverlässigkeit von KI-Anwendungen
- Verhindert böswillige Eingaben und unangemessene Ausgaben
Prozessverfolgung (Tracing)
- Integrierte Funktion zur Verfolgung der Agentenausführung
- Ermöglicht das Anzeigen, Debuggen und Optimieren von Workflows
- Erweiterbares Tracking-System, das verschiedene externe Integrationen unterstützt
Technische Architektur
Installation und Konfiguration
# Erstellen einer Python-Virtual Environment
python -m venv env
source env/bin/activate
# Installieren der Basisversion
pip install openai-agents
# Installieren der Version mit Sprachunterstützung
pip install 'openai-agents[voice]'
Grundlegende Anwendungsbeispiele
Einfacher Agent
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
Mehrsprachiger kollaborativer Agent
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(
name="Spanish agent",
instructions="You only speak Spanish.",
)
english_agent = Agent(
name="English agent",
instructions="You only speak English",
)
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
Beispiel für den Aufruf von Tools
import asyncio
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather Assistant",
instructions="You are a helpful weather agent.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
Workflow-Ausführungsmechanismus
Logik der Ausführungsschleife
- LLM-Aufruf: Verwendung des Modells und der Einstellungen des Agenten in Kombination mit dem Nachrichtenverlauf
- Antwortverarbeitung: Das LLM gibt eine Antwort zurück, die Tool-Aufrufe enthalten kann
- Ausgabeprüfung: Wenn eine endgültige Ausgabe vorhanden ist, wird diese zurückgegeben und die Schleife beendet
- Übergabeverarbeitung: Wenn eine Übergabeanfrage vorliegt, wird zu einem neuen Agenten gewechselt und neu gestartet
- Tool-Ausführung: Verarbeitung von Tool-Aufrufen und Hinzufügen der Antwort zur Nachricht, dann Neustart der Schleife
Mechanismus für die endgültige Ausgabe
- Strukturierte Ausgabe: Wenn
output_type
festgelegt ist, wird beendet, wenn das LLM Inhalte des passenden Typs zurückgibt
- Textausgabe: Wenn kein
output_type
vorhanden ist, wird beendet, wenn der Agent eine Nachricht ohne Tool-Aufruf oder Übergabe erzeugt
Tool-System
Unterstützung für drei Arten von Tools
1. Gehostete Tools (Hosted Tools)
- Werden auf dem LLM-Server ausgeführt
- OpenAI bietet gehostete Tools wie Retrieval, Websuche und Computernutzung
2. Funktionsaufrufe (Function Calling)
- Unterstützt die Verwendung jeder Python-Funktion als Tool
- Flexible Entwicklung benutzerdefinierter Tools
3. Agenten als Tools
- Ermöglicht es Agenten, andere Agenten aufzurufen
- Unterstützt komplexe hierarchische Kollaborationsstrukturen
Integrierte Tools
- WebSearchTool: Websuchfunktion
- Computer Use: Computerbedienungsfähigkeit
- Retrieval: Informationsabruffunktion
Verfolgung und Überwachung
Automatische Verfolgungsfunktion
- Verfolgt automatisch den Agentenausführungsprozess
- Erleichtert das Debuggen und Optimieren von Workflows
- Erweiterbares Design unterstützt benutzerdefinierte Spans
Unterstützung für externe Integrationen
- Logfire: Log-Management
- AgentOps: Überwachung des Agentenbetriebs
- Braintrust: KI-Anwendungsentwicklungsplattform
- Scorecard: Leistungsbewertung
- Keywords AI: Keywords-KI-Integration
Anwendungsbereiche
Geeignete Szenarien
- Automatisierung komplexer Geschäftsprozesse: Mehrstufige Geschäftsprozesse
- Mehrsprachige Kundendienstsysteme: Unterstützung für intelligente Kundendienste in verschiedenen Sprachen
- Fachbereichsassistenten: KI-Assistenten in Fachbereichen wie Recht, Medizin und Bildung
- Datenverarbeitungspipelines: Mehrstufige Datenanalyse und -verarbeitung
- Kreative Kollaborationssysteme: Mehrere KI-Rollen arbeiten zusammen, um kreative Aufgaben zu erledigen
Workflow-Muster
- Deterministischer Prozess: Vordefinierte Workflow-Schritte
- Iterative Schleife: Aufgaben, die mehrere Iterationen zur Optimierung erfordern
- Bedingte Verzweigung: Auswahl verschiedener Verarbeitungspfade je nach Bedingung
- Parallele Verarbeitung: Mehrere Agenten bearbeiten gleichzeitig verschiedene Aufgaben
Entwicklungsumgebung
Entwicklungsanforderungen
- Python 3.8+
- Die Umgebungsvariable
OPENAI_API_KEY
muss gesetzt sein
- Unterstützt asynchrone und synchrone Aufrufmethoden
Entwicklungstoolkette
# Installieren des uv-Paketmanagers
uv --version
# Installieren der Abhängigkeiten
make sync
# Ausführen von Tests
make tests
# Typüberprüfung
make mypy
# Code-Konformitätsprüfung
make lint
Projektvorteile
1. Schlichtes Design
- Minimale Abstraktionsebenen
- Klare und eindeutige Kernkonzepte
- Einfach zu verstehen und zu verwenden
2. Produktionsbereit
- Basiert auf der praktischen Erfahrung von OpenAI
- Stabiles und zuverlässiges API-Design
- Umfassende Fehlerbehandlungsmechanismen
3. Hohe Flexibilität
- Unterstützt komplexe Agentenbeziehungsmodellierung
- Kann verschiedene Workflow-Muster darstellen
- Leistungsstarke Anpassungsfähigkeit
Zusammenfassung
OpenAI Agents Python ist ein professionelles Framework für die Entwicklung von Multi-Agenten, das die komplexe KI-Zusammenarbeit einfach und benutzerfreundlich macht. Durch seine Kernmechanismen für Agenten, Übergaben, Schutz und Verfolgung können Entwickler schnell leistungsstarke KI-Anwendungssysteme erstellen. Ob einfache Einzelagentenaufgaben oder komplexe Multi-Agenten-Kollaborationsszenarien, dieses Framework bietet elegante Lösungen.