From e2a853ffded216cb9ec54ee597ddec4bbd9f723b Mon Sep 17 00:00:00 2001 From: pdyde Date: Sat, 21 Feb 2026 17:32:37 +0100 Subject: [PATCH] feat: Add live streaming to Chat page - Replace blocking execute_agent_task() with live subprocess streaming - Use Popen() to read opencode output line-by-line in real-time - Send 'chunk' events to frontend as agent thinks - Frontend appends chunks incrementally for live response - Matches Orchestrator's streaming UX - No more waiting for complete response before seeing output --- .../zusammenfassung_stand_21_februar_2026.md | 344 ++++++++++++++++++ app.py | 66 +++- templates/chat.html | 5 + 3 files changed, 408 insertions(+), 7 deletions(-) create mode 100644 agents/zusammenfasser/work/zusammenfassung_stand_21_februar_2026.md diff --git a/agents/zusammenfasser/work/zusammenfassung_stand_21_februar_2026.md b/agents/zusammenfasser/work/zusammenfassung_stand_21_februar_2026.md new file mode 100644 index 0000000..7a971bf --- /dev/null +++ b/agents/zusammenfasser/work/zusammenfassung_stand_21_februar_2026.md @@ -0,0 +1,344 @@ +# 📊 ZUSAMMENFASSUNG DIVERSITY-BALL WIEN 2026 +**Stand:** 21. Februar 2026 | **Erstellt von:** Zusammenfasser-Agent + +--- + +## 🎯 EXECUTIVE SUMMARY + +Das Agenten-System hat in kĂŒrzester Zeit **8 substantielle Fachkonzepte** fĂŒr den Diversity-Ball Wien entwickelt. Die **Grundplanung ist solide**, aber es gibt **kritische Koordinationsprobleme**, die sofortige Eskalation erfordern. + +| Kennzahl | Status | +|----------|--------| +| **Agenten aktiv** | 8 von 13 (mit Output) | +| **Deliverables** | 11 umfassende Dokumente | +| **GrĂ¶ĂŸtes Risiko** | Fehlende Agenten-Abstimmung | +| **Kritische Deadline** | 28. Februar 2026 (Rathaus-Verhandlung) | + +--- + +## 📋 WAS WURDE BISHER GELEISTET + +### ✅ Abgeschlossene Fachkonzepte + +| Agent | Deliverable | QualitĂ€t | Status | +|-------|-------------|----------|--------| +| **budget_manager** | VollstĂ€ndiger Budgetplan (750k€) | 8/10 | Vorlage, braucht Abstimmung | +| **catering_manager** | Komplettes Catering-Konzept | 9/10 | Ready, 3.500 GĂ€ste geplant | +| **location_manager** | Rathaus-Konzept + MA 36 Checkliste | 9/10 | Critical Path: bis 28.2. handeln | +| **program_manager** | 8h Programmablauf (17:00-02:00) | 7/10 | Minutengenau, braucht Budget-Check | +| **tax_advisor** | Steuerliche Komplettanalyse | 9/10 | GemeinnĂŒtzigkeit klĂ€r, Tombola 5% | +| **musik_rechte_advisor** | AKM/LSG/Austro-Mechana Analyse | 9/10 | Ready, exakte Tarifberechnung | +| **social_media_manager** | Marketing-Strategie 6 Monate | 9/10 | 1.182 Zeilen, aber falsches Datum | +| **researcher** | Diversity-Trends + Benchmarking | 9/10 | Opernball-Vergleich, Ticketing-Analyse | + +### ❌ Noch nicht aktiviert + +| Agent | Rolle | PrioritĂ€t | Grund | +|-------|-------|-----------|-------| +| **negotiator** | Vertragsverhandlungen | 🔮 SOFORT | Rathaus-Deadline 28.2.2026! | +| **zusammenfasser** | Status-Reports | 🟡 WICHTIG | Wurde erst jetzt eingesetzt | + +--- + +## 💰 BUDGET-SITUATION (KRITISCH!) + +### Die Ausgangslage + +| Position | Betrag | Anmerkung | +|----------|--------|----------| +| **Zielbudget** | 750.000 € | Vorgabe | +| **Gesamtausgaben (Expected)** | 1.127.428 € | ⚠ 50% ÜBER BUDGET! | +| **Ticketeinnahmen (85% Auslastung)** | 636.650 € | @ 214€/Ticket | +| **Geplantes Sponsoring** | 250.000 € | Optimistisch | +| **DeckungslĂŒcke** | -224.378 € | Muss durch Förderungen gedeckt werden | + +### Budget-Struktur + +``` +AUSGABEN (Largest Drivers): +┌─────────────────────────────────────────┐ +│ 1. Location (Rathaus): 395.000€ (49,8%) │ +│ 2. Catering: 370.000€ (32,8%) │ +│ 3. Entertainment: 61.000€ (5,4%) │ +│ 4. Technik: 60.000€ (5,3%) │ +│ 5. Marketing: 37.500€ (3,3%) │ +│ 6. Sonstige: 163.928€ (14,5%) │ +└─────────────────────────────────────────┘ +``` + +### 🚹 KOSTENPROBLEM: Keine Abstimmung zwischen Agenten! + +| Agent | Catering-Kosten | Veranstaltungs-Budget | +|-------|-----------------|----------------------| +| budget_manager | 420.000€ (ohne Sponsor) | **1.127.428€** | +| catering_manager | 320.800€ | — | +| program_manager | 280.000€ | **750.000€** | + +**→ Die Agenten arbeiten mit unterschiedlichen Zahlen und haben sich NICHT abgestimmt!** + +--- + +## 📅 EVENT-DETAILS (Zentrale Parameter) + +| Parameter | Wert | Notiz | +|-----------|------|-------| +| **Datum** | Samstag, 5. September 2026 | ⚠ Diskrepanz: ORCHESTRATION.md sagt 1. MĂ€rz! | +| **Ort** | Wiener Rathaus, Festsaal | GrĂ¶ĂŸte Location Wiens (3.500 PlĂ€tze) | +| **GĂ€ste** | 3.500 Personen | Expected 85% Auslastung = 2.975 Personen | +| **Ticketpreis** | 214 € (Einheitspreis) | 214€/Person x 3.500 = 749.000€ max. Einnahmen | +| **Uhrzeit** | 18:00 – 02:00 Uhr | 8h Event, volle Nacht | + +--- + +## 🏆 PROGRAMM-ÜBERBLICK (8-Stunden-Event) + +### Zeitplan (Simplified) + +| Phase | Zeit | Highlight | +|-------|------|-----------| +| **Eröffnung** | 18:00–19:00 | Sektempfang, Einmarsch, Eröffnungsrede | +| **Dinner** | 19:00–21:30 | 3-Gang-MenĂŒ (Rathauskeller), Walzer | +| **Unterhaltung** | 21:30–22:15 | Diversity-Dance-Showcase (Highlight!) | +| **Awards** | 22:15–23:30 | 5 Diversity-Awards + Lifetime Achievement | +| **Tombola & Party** | 23:30–01:30 | Losziehung, Charity-Auktion, DJ | +| **Abschluss** | 01:30–02:00 | Letzter Walzer, Dank, Abgang | + +### Diversity-Elemente + +✅ ÖGS-Dolmetscher durchgehend +✅ Rollstuhl-Walzer in Eröffnung +✅ Induktionsanlage fĂŒr HörgeschĂ€digte +✅ 5 MenĂŒ-Varianten (vegetarisch, vegan, glutenfrei, halal, koscher) +✅ 5 Award-Kategorien (LGBTQ+, Ethnie, Behinderung, Alter, Geschlecht) +✅ Tanzshow mit weltweiten Tanzstilen + +--- + +## đŸœïž CATERING-DETAILS (3.500 Personen) + +### MenĂŒ-Struktur + +| Gang | Standard | Vegetarisch | Vegan | Glutenfrei | Halal/Koscher | +|------|----------|-------------|-------|-----------|---------------| +| Vorspeise | Beef-Tatar | Burrata | Gazpacho | Spezial | Separat | +| Hauptgang | Tafelspitz | Wellington | Linsen-Risotto | Tafelspitz (GF) | Lammmedaillons | +| Dessert | Topfenknödel | Topfenknödel | Schokoladenmousse | Panna Cotta | Topfenknödel | +| **Personal** | **168 ServicekrĂ€fte** | | | | | + +### ErnĂ€hrungsverteilung (geplant) + +- Standard: 50% (1.750 GĂ€ste) +- Vegetarisch: 20% (700 GĂ€ste) +- Vegan: 15% (525 GĂ€ste) +- Glutenfrei: 10% (350 GĂ€ste) +- Halal/Koscher: 5% (175 GĂ€ste) + +**Kosten:** 370.000–420.000 € (mit/ohne GetrĂ€nke-Sponsor) + +--- + +## đŸŽȘ UNTERSTÜTZUNG DURCH AGENTEN + +### Personal (gesamter Event) + +``` +Total ~354 Personen: +├─ Catering: 168 ServicekrĂ€fte +├─ Security: 50 Ordner +├─ KĂŒnstler: ~60 (Orchester, TĂ€nzer, DJ) +├─ Technik: 20 Mitarbeiter +├─ Garderobe/Einlass: 20 Personen +├─ Volunteers: 30 Personen +├─ Moderation: 1–2 Personen +├─ ÖGS-Dolmetscher: 2 Personen +└─ SanitĂ€tsdienst: 3 Personen +``` + +### Technische Ausstattung + +✅ PA-System: Line Array, 80 kW Leistung +✅ LED-Wand: 12×6 m (HauptbĂŒhne) +✅ Licht: 120 Moving Heads, 60 LED-Par +✅ BĂŒhnenrampe fĂŒr Barrierefreiheit +✅ Induktionsanlage: 6 Schleifen +✅ Videomagnifikation: 8 Monitore + +--- + +## ⚠ KRITISCHE PROBLEME (SOFORT-HANDLUNG ERFORDERLICH) + +### 🔮 PROBLEM 1: Datums-Diskrepanz + +**WIDERSPRUCH:** +- ORCHESTRATION.md nennt **1. MĂ€rz 2026** als Eventdatum +- **ALLE Agenten** arbeiten mit **5. September 2026** + +**Auswirkung:** +- Alle ZeitplĂ€ne, Fristen und Meilensteine möglicherweise falsch +- 6 Monate Unterschied = massive Planungs-Konfusion + +**SOFORTIGE LÖSUNG:** Orchestrator muss Richtdatum bestĂ€tigen und an alle kommunizieren! + +--- + +### 🔮 PROBLEM 2: Budget-Chaos (3 verschiedene Gesamtbudgets!) + +| Agent | Gesamtbudget | +|-------|--------------| +| budget_manager | **1.127.428€** (Expected) | +| program_manager | **750.000€** (Zielbudget) | +| Kombiniert betrachtet | **1.1+ Mio€** (ĂŒber Ziel!) | + +**Folge:** Keine Abstimmung zwischen den Agenten. Budget kann nicht gehalten werden ohne massive Sponsoring-Einnahmen (300k+€) oder Förderungen. + +**SOFORTIGE LÖSUNG:** Budget-Koordinationsrunde mit allen Agenten! + +--- + +### 🔮 PROBLEM 3: Ticketpreis-Inkonsistenz + +| Agent | Verwendeter Ticketpreis | +|-------|------------------------| +| budget_manager | **214€** (Basis) | +| researcher | **85–120€** (empfohlen) | +| tax_advisor | **100€** (Beispiel) | +| musik_rechte_advisor | **80€** (Beispiel) | + +→ Kein einheitlicher Ticketpreis fixiert! + +--- + +### 🟡 PROBLEM 4: Negotiator noch nicht aktiviert + +**KRITISCH:** +- Rathaus-Vertrag muss bis **28. Februar 2026** unterzeichnet sein +- Catering-Vertrag: MĂ€rz 2026 +- KĂŒnstler-Buchungen: April–Mai 2026 +- **Der Negotiator-Agent wurde noch NICHT eingesetzt** — aber er wird dringend gebraucht! + +--- + +### 🟡 PROBLEM 5: Sponsoring-Ziel realistisch? + +| Szenario | Sponsoring-Ziel | Erreichbarkeit | +|----------|-----------------|----------------| +| Worst Case | 80.000€ | Nur 1 Hauptsponsor | +| Expected | 250.000€ | 🟡 Optimistisch | +| Best Case | 350.000€ | 🔮 Sehr schwierig | + +**Risikoanalyse:** Ohne Sponsoring ist das Event **negativ** (DeckungslĂŒcke -224k€). + +--- + +## ✅ WAS LÄUFT GUT + +### Sehr hohe inhaltliche QualitĂ€t +- Alle Agenten liefern fachlich exzellente Konzepte (9/10 durchschnittlich) +- Detailtreue ist hervorragend (z.B. Catering: Allergen-Management EU-LMIV-konform) +- Barrierefreiheit ist durchgehend berĂŒcksichtigt + +### VollstĂ€ndige Fachplanung vorhanden +- ✅ Detaillierter Event-Minutenplan (Program Manager) +- ✅ Steuerliche Roadmap (Tax Advisor) +- ✅ Musikrechte komplett geklĂ€rt (Musik-Advisor) +- ✅ Location-Checkliste mit MA 36 (Location Manager) +- ✅ Marketing-Strategie 6 Monate voraus (Social Media Manager) + +### Diversity-Fokus konsequent +- Alle Agenten denken Barrierefreiheit mit +- Awards fĂŒr marginalisierte Communities +- Mehrsprachigkeit geplant (Deutsch, Englisch, TĂŒrkisch, BKS) + +--- + +## 🎯 TOP-PRIORITÄTEN (NÄCHSTE 2 WOCHEN) + +### Sofort (Diese Woche!) + +1. **Datum klĂ€ren:** Ist es 1. MĂ€rz oder 5. September 2026? + - → Sofort an alle Agenten kommunizieren + - → Alle Timelines neu prĂŒfen + +2. **Negotiator aktivieren:** + - → Task fĂŒr Vertragsverhandlungen Rathaus bis 28.2. + - → Catering-Vertrag vorbereiten + +3. **Budget-Koordination starten:** + - → Kostenblock-Abstimmung (Catering: 280k vs. 420k€?) + - → Ticketpreis einheitlich festlegen (214€ oder 85–120€?) + +### Diese Woche (Parallel) + +4. **Sponsoring-Akquise starten:** + - → Hauptsponsor-GesprĂ€che + - → GetrĂ€nke-Sponsor identifizieren + +5. **FörderantrĂ€ge einreichen:** + - → WienTourismus (bis 100k€) + - → MA 7 Kulturabteilung (bis 80k€) + +6. **Agent-Abstimmung einleiten:** + - → Orchestrator moderiert Cross-Check + - → Jeder Agent prĂŒft seine Schnittstellen + +--- + +## 📊 AGENTEN-LEISTUNGSÜBERSICHT + +### Top Performer (9/10) + +- **catering_manager** — Beste Detailtreue +- **location_manager** — VollstĂ€ndigste Planung +- **musik_rechte_advisor** — Rechtlich fundiert +- **researcher** — Webrecherche aktiv +- **social_media_manager** — Umfangreichstes Deliverable +- **tax_advisor** — Steuerlich kompetent + +### Gute Leistung (7–8/10) + +- **budget_manager** (8/10) — Guter Plan, aber Delegations-Tendenz +- **program_manager** (7/10) — Sehr detailliert, aber Timeout-Problem + +### Noch nicht aktiv (3/10) + +- **negotiator** — Kritisch! Sofort einsetzen +- **zusammenfasser** — Erst jetzt initialisiert + +--- + +## 💡 NÄCHSTE SCHRITTE FÜR ZUSAMMENFASSER + +1. ✅ Diese Zusammenfassung erstellen (gerade getan) +2. 🔜 Wöchentliche Status-Reports starten +3. 🔜 Critical-Path-Tracking (Deadlines, Meilensteine) +4. 🔜 Agent-Koordinations-Meetings dokumentieren +5. 🔜 Budget-Abweichungen flaggen + +--- + +## 📋 VERWENDETE QUELLEN + +- `diversityball_knowledge.md` — Master-Wissensdatenbank +- `eventplan_diversity_ball_2026.md` — Program Manager Deliverable +- `agent_performance_report_2026-02-21.md` — AR Manager Analyse +- `budget_plan.md` — Budget Manager Vollplan +- Weitere 8 Agenten-Deliverables (siehe Archive) + +--- + +## ⏰ NÄCHSTE ZUSAMMENFASSUNG + +**Geplant:** 28. Februar 2026 (nach Rathaus-Verhandlung) + +**Focus-Themen:** +- Verhandlungs-Erfolg Rathaus? +- Budget-Abstimmung abgeschlossen? +- Sponsoring-Status? +- Negotiator-Aktivierung? + +--- + +**FAZIT:** Das System hat beeindruckende Fachkonzepte geliefert. Der Event ist technisch machbar. **Aber ohne sofortige Koordination zwischen Agenten und KlĂ€rung fundamentaler Parameter (Datum, Budget, Ticketpreis) wird der Plan kollabieren.** + +*Zusammenfassung erstellt: 21. Februar 2026, 15:00 Uhr* +*Zusammenfasser-Agent fĂŒr Diversity-Ball Wien 2026* diff --git a/app.py b/app.py index 9327761..0b6d80f 100644 --- a/app.py +++ b/app.py @@ -2198,7 +2198,7 @@ def chat(): @app.route('/chat/send', methods=['POST']) def chat_send(): - """FĂŒhrt einen Agent aus und gibt die Antwort per Server-Sent Events zurĂŒck.""" + """FĂŒhrt einen Agent aus und gibt die Antwort per Server-Sent Events LIVE zurĂŒck.""" data = request.get_json() prompt = data.get('prompt', '').strip() agent_key = data.get('agent', '').strip() @@ -2216,17 +2216,69 @@ def chat_send(): def generate(): # Agent-Info senden yield f"data: {json.dumps({'type': 'agent_selected', 'agent': agent_name, 'agent_key': agent_key})}\n\n" - yield f"data: {json.dumps({'type': 'processing', 'message': f'⏳ {agent_name} arbeitet...'})}\n\n" + yield f"data: {json.dumps({'type': 'processing', 'message': f'⏳ {agent_name} denkt nach...'})}\n\n" try: - # Agent ausfĂŒhren (mit Memory und Work-Dir) - response = execute_agent_task(agent_key, prompt) + # Agent live ausfĂŒhren mit Streaming + response_text = "" - # Antwort streamen - yield f"data: {json.dumps({'type': 'response', 'text': response})}\n\n" + # System-Prompt vorbereiten + system_prompt = get_agent_prompt(agent_key) + if not system_prompt: + yield f"data: {json.dumps({'type': 'error', 'message': f'Kein System-Prompt fĂŒr Agent {agent_key}'})}\n\n" + return + + dirs = ensure_agent_structure(agent_key) + work_dir = dirs['work_dir'] + memory_summary = get_agent_memory_summary(agent_key) + kb_file = os.path.join(os.path.dirname(__file__), 'diversityball_knowledge.md') + + team_summary = "" + if agent_key == 'orchestrator': + team_summary = "\n\n" + get_team_member_summary() + + full_system = f"""{system_prompt} + +## Deine Erinnerungen: +{memory_summary}{team_summary} + +## Wissensdatenbank: +Die Wissensdatenbank liegt unter: {kb_file} +- Du hast Zugriff auf das Internet via WebFetch-Tool +- Dein Arbeitsverzeichnis: {work_dir}""" + + combined_message = f"{full_system}\n\n---\n\n{prompt}" + model = get_agent_model(agent_key) + + # OpenCode mit Streaming aufrufen + process = subprocess.Popen( + ['opencode', 'run', '--model', model, '--format', 'json', combined_message], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + cwd=work_dir + ) + + # Live-Output lesen und streamen + for line in process.stdout: + try: + data_json = json.loads(line.strip()) + if data_json.get('part', {}).get('type') == 'text': + chunk = data_json.get('part', {}).get('text', '') + response_text += chunk + # Chunk live an Frontend senden + yield f"data: {json.dumps({'type': 'chunk', 'text': chunk})}\n\n" + except (json.JSONDecodeError, KeyError): + pass + + process.wait() + + # Agent-Kommandos parsen + if response_text: + parse_agent_commands(agent_key, response_text) # Erfolg melden - yield f"data: {json.dumps({'type': 'complete', 'message': '✓ Fertig', 'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M'), 'response': response})}\n\n" + yield f"data: {json.dumps({'type': 'complete', 'message': '✓ Fertig', 'timestamp': datetime.now().strftime('%Y-%m-%d %H:%M'), 'response': response_text})}\n\n" except Exception as e: logger.error(f"[Chat] Fehler beim AusfĂŒhren von {agent_key}: {str(e)}") diff --git a/templates/chat.html b/templates/chat.html index 11e49d7..686c795 100644 --- a/templates/chat.html +++ b/templates/chat.html @@ -178,6 +178,11 @@ function sendChat(event) { agentBadge.textContent = currentAgent; } else if (data.type === 'processing') { chatStatus.innerHTML = `${data.message}`; + } else if (data.type === 'chunk') { + // Live-Chunk empfangen - append to response + currentResponse += data.text; + responseText.textContent = currentResponse; + chatContainer.scrollTop = chatContainer.scrollHeight; } else if (data.type === 'response') { currentResponse = data.text; responseText.textContent = currentResponse;