Exercise: Research Assistant Team
Lernziele
Nach Abschluss dieser Übung können Sie:
✅ Ein Multi-Agent-System in Agent Builder erstellen ✅ Orchestration-Logik für Supervisor/Worker-Pattern implementieren ✅ Externe APIs (arXiv, PubMed, CrossRef) als Tools integrieren ✅ Workflow-Logik für sequenzielle und parallele Ausführung konfigurieren ✅ Error Handling und Performance-Optimierungen implementieren ✅ Multi-Agent-Systeme testen und debuggen
Voraussetzungen:
Grundverständnis von Agent Builder
Kenntnisse über Multi-Agent Orchestration
OpenAI API Key mit Zugriff auf GPT-4 und GPT-3.5
Geschätzter Zeitaufwand: 2-3 Stunden
Teil 1: Setup (30 Min)
Aufgabe 1.1: Orchestrator Agent erstellen
Ziel: Erstellen Sie den zentralen Supervisor-Agent, der Aufgaben delegiert.
Schritt-für-Schritt:
Öffnen Sie Agent Builder in OpenAI's Platform
Erstellen Sie einen neuen Agent mit Namen "ResearchOrchestrator"
Konfigurieren Sie:
Model: GPT-4
Temperature: 0.3
Max Tokens: 2000
Fügen Sie folgenden System Prompt ein:
Testen Sie den Agent isoliert:
Input: "Find 5 papers on machine learning"
Erwarteter Output: JSON mit
agents_to_call: ["SearchAgent"]
Erfolgskriterien:
✅ Agent gibt strukturiertes JSON aus
✅ Agent identifiziert korrekt, dass SearchAgent benötigt wird
✅ Temperature ist niedrig (0.3) für konsistente Entscheidungen
Aufgabe 1.2: SearchAgent erstellen
Ziel: Erstellen Sie den Spezialisten für wissenschaftliche Literatursuche.
Schritt-für-Schritt:
Erstellen Sie neuen Agent "LiteratureSearchAgent"
Konfigurieren Sie:
Model: GPT-3.5-turbo (kostengünstiger für einfache Tasks)
Temperature: 0.5
Max Tokens: 1500
System Prompt:
Tools hinzufügen:
Hinweis: Falls Sie keinen direkten Zugriff auf arXiv API haben, verwenden Sie zunächst die Web Search Tool von Agent Builder als Platzhalter.
Testen Sie den SearchAgent:
Input:
{"query": "quantum computing", "max_results": 3}Erwarteter Output: JSON-Array mit 3 Papers
Erfolgskriterien:
✅ Agent ruft search_arxiv Tool auf
✅ Output ist valid JSON
✅ Mindestens 1 Paper wird zurückgegeben
Teil 2: Workflow verbinden (30 Min)
Aufgabe 2.1: Router Node konfigurieren
Ziel: Verbinden Sie Orchestrator und SearchAgent mit einem Router.
Schritt-für-Schritt:
Fügen Sie einen Router Node (Logic Node) zur Canvas hinzu
Konfigurieren Sie die Routing-Logik:
Verbinden Sie die Nodes:
User Input → OrchestratorAgent
OrchestratorAgent → RouterNode
RouterNode → SearchAgent (conditional)
SearchAgent → Output
Definieren Sie Data Mappings:
OrchestratorAgent.output → RouterNode.input
RouterNode.parameters → SearchAgent.input
Erfolgskriterien:
✅ Router leitet korrekt an SearchAgent weiter
✅ Parameter werden korrekt übergeben
✅ Output erscheint am Ende
Aufgabe 2.2: End-to-End Test
Ziel: Testen Sie den kompletten Workflow von User Input bis Output.
Test Cases:
Input
Erwarteter Workflow
Erwarteter Output
"Find 5 papers on AI ethics"
User → Orchestrator → Router → SearchAgent → Output
JSON mit 5 Papers
"What is machine learning?"
User → Orchestrator → Router → Output (kein SearchAgent)
Antwort ohne Search
Debugging-Tipps:
Verwenden Sie Agent Builder's Trace Viewer um zu sehen, welche Agents aufgerufen wurden
Prüfen Sie Console Logs für Error Messages
Validieren Sie JSON-Outputs jedes Agents
Erfolgskriterien:
✅ End-to-End Workflow funktioniert
✅ SearchAgent wird nur aufgerufen, wenn benötigt
✅ Latenz < 15 Sekunden
Teil 3: AnalysisAgent erweitern (45 Min)
Aufgabe 3.1: AnalysisAgent erstellen
Ziel: Fügen Sie einen Agent für Paper-Analyse hinzu.
Erstellen Sie "PaperAnalysisAgent"
Konfiguration:
Model: GPT-4 (für tiefe Analyse)
Temperature: 0.7
Max Tokens: 2000
System Prompt:
Optional: Fügen Sie RAG/Knowledge Base hinzu, um vollständigen Paper-Content zu durchsuchen
Erfolgskriterien:
✅ Agent kann Papers zusammenfassen
✅ Output ist strukturiert (Markdown)
✅ Keine Halluzinationen
Aufgabe 3.2: Sequenziellen Workflow implementieren
Ziel: Erweitern Sie den Workflow um SearchAgent → AnalysisAgent.
Aktualisieren Sie die Router Logic:
Data Flow konfigurieren:
SearchAgent.output → AnalysisAgent.input (als
papersParameter)
Testen Sie:
Input: "Find and summarize 3 papers on climate change"
Erwarteter Workflow: Orchestrator → Search → Analysis → Output
Erwarteter Output: Papers + Summaries
Erfolgskriterien:
✅ AnalysisAgent erhält SearchAgent Output
✅ Summaries sind korrekt
✅ Latenz < 25 Sekunden
Teil 4: CitationAgent hinzufügen (30 Min)
Aufgabe 4.1: CitationAgent erstellen
Erstellen Sie "CitationFormatterAgent"
Konfiguration:
Model: GPT-3.5-turbo (einfache Template-Aufgabe)
Temperature: 0.1 (sehr deterministisch)
Max Tokens: 1000
System Prompt:
Testen Sie:
Input: Paper-Metadaten +
{"style": "APA"}Erwarteter Output: Korrekt formatierte APA-Zitation
Erfolgskriterien:
✅ APA-Format ist exakt korrekt
✅ Auch bei fehlenden Daten (z.B. kein DOI) funktioniert Agent
✅ Temperature = 0.1 (konsistente Outputs)
Aufgabe 4.2: Vollständiger Workflow
Ziel: Integrieren Sie alle 3 Worker-Agents.
Aktualisieren Sie Orchestrator:
Fügen Sie CitationAgent zur Decision Logic hinzu
Implementieren Sie Parallel Execution:
Nach SearchAgent: Führen Sie AnalysisAgent und CitationAgent parallel aus
Beide sind unabhängig und brauchen nur SearchAgent Output
Aggregator hinzufügen:
Kombiniere Outputs von AnalysisAgent und CitationAgent
Test:
Input: "Find 3 papers on NLP, analyze, and provide APA citations"
Erwarteter Workflow: Orchestrator → Search → [Analysis || Citation] → Aggregator → Output
Erwarteter Output: Papers + Analysis + Citations
Erfolgskriterien:
✅ Analysis und Citation laufen parallel
✅ Latenz < 22 Sekunden (schneller als sequenziell)
✅ Aggregator kombiniert Outputs korrekt
Teil 5: Optimierung (Optional, 30 Min)
Aufgabe 5.1: Parallele Ausführung optimieren
Ziel: Reduzieren Sie Latenz durch maximale Parallelisierung.
Messen Sie aktuelle Latenz:
Full Workflow (Search → Analysis + Citation)
Expected: ~22 Sekunden
Implementieren Sie async/await Pattern (falls Agent Builder unterstützt):
Re-Test:
Erwartete Latenz: ~18 Sekunden (20% Verbesserung)
Erfolgskriterien:
✅ Latenz reduziert um mindestens 15%
✅ Beide Agents laufen tatsächlich parallel (prüfen via Trace Viewer)
Aufgabe 5.2: Error Handling implementieren
Ziel: Machen Sie das System robust gegen Fehler.
Implementieren Sie Retry Logic für SearchAgent:
Fallback für AnalysisAgent:
Falls GPT-4 fehlschlägt → verwende GPT-3.5 als Fallback
Validation für CitationAgent:
Prüfe, ob Output valid JSON ist
Prüfe, ob Citation Format korrekt ist
Test Error Scenarios:
Szenario
Simulierte Fehler
Erwartetes Verhalten
SearchAgent Timeout
Mock API delay > 20s
Retry einmal, dann Partial Results
AnalysisAgent Failure
Mock GPT-4 Error
Fallback zu GPT-3.5
Invalid Citation Format
Mock falsche Interpunktion
Re-prompt mit Validation Error
Erfolgskriterien:
✅ System bleibt funktionsfähig bei Fehlern
✅ User erhält informative Error Messages
✅ Success Rate > 95%
Reflexionsfragen
Beantworten Sie nach Abschluss der Übung:
1. Orchestration Logic
Frage: Wie entscheidet der Orchestrator, welche Agents aufgerufen werden?
Erwartete Antwort:
Der Orchestrator analysiert die User-Query mit NLU (Natural Language Understanding)
Er erkennt Keywords ("find" → Search, "analyze" → Analysis, "cite" → Citation)
Er gibt eine strukturierte JSON-Entscheidung zurück
Router Node liest diese Entscheidung und routet entsprechend
2. Data Passing
Frage: Wie funktioniert die Datenübergabe zwischen SearchAgent und AnalysisAgent?
Erwartete Antwort:
SearchAgent gibt JSON-Array mit Paper-Metadaten zurück
Router/Workflow-Engine speichert Output in Variable
search_resultsAnalysisAgent erhält
search_resultsals Input-ParameterMapping:
SearchAgent.output→AnalysisAgent.input.papers
3. Performance Bottlenecks
Frage: Wo sind die größten Performance-Bottlenecks in Ihrem System?
Mögliche Antworten:
API Calls: arXiv/PubMed können langsam sein (5-10s)
GPT-4 Analysis: Tiefe Analyse dauert 8-12s
Sequential Execution: Search → Analysis → Citation (sequenziell = 25s+)
Lösungen:
Caching für häufige Queries
Parallel Execution (Analysis || Citation)
Streaming für Progressive Output
4. Skalierung
Frage: Wie würde Ihr System mit 1000 simultanen User-Requests umgehen?
Erwartete Antwort:
Aktuelle Architektur: Würde nicht skalieren (Rate Limits, keine Queues)
Notwendige Änderungen:
Request Queue mit Worker Pool
Rate Limiting und Backpressure
Caching Layer (Redis)
Load Balancing über mehrere Agent-Instances
5. Fehleranalyse
Frage: Welche Fehler sind während Ihrer Tests aufgetreten? Wie haben Sie sie gelöst?
Reflektieren Sie über:
JSON Parsing Errors (→ Bessere Validation)
API Timeouts (→ Retry Logic)
Halluzinationen in AnalysisAgent (→ Temperature reduzieren)
Citation Format Errors (→ Strikte Templates)
Weiterführende Challenges
Challenge 1: Multi-Language Support
Aufgabe: Erweitern Sie das System um Support für deutsche und englische Queries.
Hinweise:
Fügen Sie Language Detection hinzu
Passen Sie System Prompts an ("Antworte auf Deutsch/Englisch")
Testen Sie mit gemischten Queries
Challenge 2: Document Upload
Aufgabe: Erlauben Sie Users, eigene PDFs hochzuladen und analysieren zu lassen.
Hinweise:
Integrieren Sie PDF Parser (z.B. PyPDF2)
Fügen Sie UploadAgent hinzu
Erweitern Sie AnalysisAgent für PDF-Content
Challenge 3: Collaborative Features
Aufgabe: Implementieren Sie einen SharedWorkspaceAgent, der mehreren Users ermöglicht, gemeinsam an Recherchen zu arbeiten.
Hinweise:
Shared State Management (Blackboard Pattern)
User Authentication und Permissions
Real-time Updates (WebSockets)
Challenge 4: Export Functionality
Aufgabe: Fügen Sie einen ExportAgent hinzu, der Ergebnisse als PDF, Word oder LaTeX exportiert.
Hinweise:
Template Engine für verschiedene Formate
Integrieren Sie Libraries (reportlab für PDF, python-docx für Word)
Bibliographie automatisch generieren
Zusammenfassung
Was Sie gelernt haben:
✅ Multi-Agent-System mit Supervisor/Worker-Pattern
✅ Orchestration-Logik und Router Nodes
✅ API-Integration (arXiv, PubMed, CrossRef)
✅ Sequenzielle und parallele Workflows
✅ Error Handling und Performance-Optimierung
✅ Testing und Debugging von Multi-Agent-Systemen
Nächste Schritte:
Lesen Sie Multi-Agent Orchestration für vertiefte Theorie
Implementieren Sie eine der Weiterführenden Challenges
Deployen Sie Ihr System für reale User (z.B. über OpenAI Assistants API)
Ressourcen:
Last updated