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:

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:

  1. Öffnen Sie Agent Builder in OpenAI's Platform

  2. Erstellen Sie einen neuen Agent mit Namen "ResearchOrchestrator"

  3. Konfigurieren Sie:

    • Model: GPT-4

    • Temperature: 0.3

    • Max Tokens: 2000

  4. Fügen Sie folgenden System Prompt ein:

  1. 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:

  1. Erstellen Sie neuen Agent "LiteratureSearchAgent"

  2. Konfigurieren Sie:

    • Model: GPT-3.5-turbo (kostengünstiger für einfache Tasks)

    • Temperature: 0.5

    • Max Tokens: 1500

  3. System Prompt:

  1. 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.

  1. 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:

  1. Fügen Sie einen Router Node (Logic Node) zur Canvas hinzu

  2. Konfigurieren Sie die Routing-Logik:

  1. Verbinden Sie die Nodes:

    • User Input → OrchestratorAgent

    • OrchestratorAgent → RouterNode

    • RouterNode → SearchAgent (conditional)

    • SearchAgent → Output

  2. 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.

  1. Erstellen Sie "PaperAnalysisAgent"

  2. Konfiguration:

    • Model: GPT-4 (für tiefe Analyse)

    • Temperature: 0.7

    • Max Tokens: 2000

  3. System Prompt:

  1. 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.

  1. Aktualisieren Sie die Router Logic:

  1. Data Flow konfigurieren:

    • SearchAgent.output → AnalysisAgent.input (als papers Parameter)

  2. 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

  1. Erstellen Sie "CitationFormatterAgent"

  2. Konfiguration:

    • Model: GPT-3.5-turbo (einfache Template-Aufgabe)

    • Temperature: 0.1 (sehr deterministisch)

    • Max Tokens: 1000

  3. System Prompt:

  1. 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.

  1. Aktualisieren Sie Orchestrator:

    • Fügen Sie CitationAgent zur Decision Logic hinzu

  2. Implementieren Sie Parallel Execution:

    • Nach SearchAgent: Führen Sie AnalysisAgent und CitationAgent parallel aus

    • Beide sind unabhängig und brauchen nur SearchAgent Output

  1. Aggregator hinzufügen:

    • Kombiniere Outputs von AnalysisAgent und CitationAgent

  2. 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.

  1. Messen Sie aktuelle Latenz:

    • Full Workflow (Search → Analysis + Citation)

    • Expected: ~22 Sekunden

  2. Implementieren Sie async/await Pattern (falls Agent Builder unterstützt):

  1. 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.

  1. Implementieren Sie Retry Logic für SearchAgent:

  1. Fallback für AnalysisAgent:

    • Falls GPT-4 fehlschlägt → verwende GPT-3.5 als Fallback

  2. Validation für CitationAgent:

    • Prüfe, ob Output valid JSON ist

    • Prüfe, ob Citation Format korrekt ist

  3. 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_results

  • AnalysisAgent erhält search_results als Input-Parameter

  • Mapping: 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