Database:
- Tasks-Tabelle für persistente Task-Speicherung
- Team-Members-Tabelle für reale Mitarbeiter
- Auto-Cleanup: Löscht completed Tasks älter als 7 Tage
- Helper-Funktionen: get_tasks(), create_task(), update_task_db(), delete_task()
Team-Management:
- Standard Team-Members (Eric, Georg, Piotr) beim Start initialisiert
- get_team_members() - Lädt aktive Team-Members
- add_team_member() - Fügt Team-Member hinzu
- get_team_member_summary() - Zusammenfassung für Orchestrator
Orchestrator Beat:
- Läuft alle 30 Minuten automatisch
- Prüft Tasks ohne Fortschritt (>2h pending)
- Prüft blockierte Tasks (>4h in_progress)
- Fragt Orchestrator bei Problemen
- Orchestrator kann Team-Members kontaktieren
Neue Kommandos für Orchestrator:
- @SEND_EMAIL - Email an Team-Member senden
- @SEND_TELEGRAM - Telegram-Nachricht an Team-Member
Integration:
- Team-Member-Info wird in Orchestrator-Systemprompt eingefügt
- Orchestrator kennt jetzt reale Verantwortlichkeiten
- Kann bei Bedarf echte Menschen kontaktieren
Background Threads:
- EmailPoller (alle 2 Min)
- TaskWorker (on-demand)
- TaskBeat (alle 10 Sek)
- OrchestratorBeat (alle 30 Min) ✨ NEU
- TelegramBot (wenn konfiguriert)
TODO:
- Tasks-UI auf DB umstellen
- Delete-Button für Tasks
- Team-Members Verwaltungs-UI
|
||
|---|---|---|
| agents | ||
| static | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| agent_config.json | ||
| AKM-Deklaration_Diversity-Ball-Wien_2026.md | ||
| app.py | ||
| CHANGES.md | ||
| diversityball_knowledge.md | ||
| Event-Plan_Diversity-Ball_5-September-2026.md | ||
| FEATURES.md | ||
| Location-Report_Diversity-Ball_Rathaus-Wien.md | ||
| QUICKSTART.md | ||
| README.md | ||
| test_features.py | ||
Frankenbot - Multi-Agent Event-Management-System
Ein Flask-basiertes Multi-Agent-System zur Orchestrierung und Verwaltung von KI-Agenten für Event-Management. Entwickelt für den Diversity-Ball Wien 2026.
🎯 Überblick
Frankenbot ist ein intelligentes Event-Management-System, bei dem spezialisierte KI-Agents zusammenarbeiten, um komplexe Event-Organisationsaufgaben zu bewältigen. Ein zentraler Orchestrator koordiniert die Kommunikation zwischen den Agents und delegiert Tasks basierend auf Expertise.
✨ Haupt-Features
🤖 Multi-Agent Orchestrierung
- Orchestrator als zentraler Hub: Alle Agent-Kommunikation läuft über den Orchestrator
- Spezialisierte Agents: Budget Manager, Catering Manager, Location Manager, Program Manager, etc.
- Agent-zu-Agent Kommunikation: Agents können Fragen stellen, Subtasks erstellen und neue Agents vorschlagen
- Dynamische Modellauswahl: 29+ KI-Modelle verfügbar (OpenCode, Anthropic, Ollama)
📋 Task-Management
- Automatische Task-Verarbeitung: TaskBeat verarbeitet Tasks alle 10 Sekunden
- Auto-Refresh UI: Tasks-Seite aktualisiert sich automatisch alle 15 Sekunden
- Task-Delegation: Orchestrator analysiert Tasks und weist sie passenden Agents zu
- Status-Tracking: pending → in_progress → completed
💬 Chat-System
- Live-Streaming: Server-Sent Events für Echtzeit-Antworten
- Agent-Auswahl: Chat mit spezifischen Agents oder dem Orchestrator
- Session-basierte History: Kontext bleibt über Konversation erhalten
📧 Email-Integration
- IMAP: Email-Posteingang überwachen
- SMTP: Emails versenden
- Email-to-Task: Automatische Task-Erstellung aus Emails
- Whitelist-System: Nur autorisierte Absender
📁 Datei-Management
- Agent Work-Folders: Jeder Agent hat eigenes Arbeitsverzeichnis
- Email-Vorlagen: Wiederverwendbare Email-Templates
- Projekt-Dateien: Zentrale Dokumentenverwaltung
- Upload & Download: Web-basierter Datei-Manager
🧠 Memory-System
- JSON-basierte Erinnerungen: Strukturierte Agent-Memories
- Kategorien: tasks, notes, decisions, contacts
- Agent-spezifisch: Jeder Agent verwaltet eigene Erinnerungen
- Memory-Summaries: Kompakte Übersichten für Prompts
📚 Wissensdatenbank
- On-Demand Zugriff: Agents nutzen
@READ_KNOWLEDGEstatt volle KB im Prompt - Performance-Optimierung: Reduziert Prompt-Größe um ~15KB
- Event-spezifisch: Diversity-Ball Wien 2026 Informationen
🚀 Installation
Voraussetzungen
# Python 3.10+
python --version
# OpenCode CLI (für Agent-Ausführung)
opencode --version
Abhängigkeiten installieren
pip install flask python-dotenv
Email-Konfiguration (Optional)
cp .env.example .env
# .env editieren und Email-Credentials eintragen
📖 Verwendung
App starten
# Foreground
python app.py
# Background (empfohlen)
nohup python app.py > app_output.log 2>&1 &
Die Anwendung läuft dann auf: http://localhost:5000
Agent-Kommandos
Agents können folgende Kommandos in ihren Antworten verwenden:
Frage an Orchestrator
@ASK_ORCHESTRATOR
Question: Wie hoch ist das verfügbare Budget für Catering?
Context: Ich plane das Menü und brauche Budget-Info
@END
Subtask erstellen
@CREATE_SUBTASK
Task: Location-Vertrag prüfen
Requirements: Rechtliche Prüfung der Mietbedingungen
@END
Wissensdatenbank durchsuchen
@READ_KNOWLEDGE
Topic: Budget
@END
Neuen Agent vorschlagen
@SUGGEST_AGENT
Role: Security Manager
Skills: Sicherheitsplanung, Crowd Management
Reason: Für große Events mit 500+ Gästen benötigt
@END
🗂️ Projekt-Struktur
frankenbot/
├── app.py # Haupt-Flask-App (2128 Zeilen)
├── agent_config.json # Agent-Modell-Zuweisungen
├── diversityball_knowledge.md # Event-Wissensdatenbank
├── email_journal.db # SQLite-Datenbank (Emails)
│
├── agents/ # Agent-Verzeichnisse
│ ├── orchestrator/
│ │ ├── systemprompt.md
│ │ ├── personality.md
│ │ ├── work/ # Arbeitsverzeichnis
│ │ └── memory/ # JSON-Erinnerungen
│ ├── budget_manager/
│ ├── catering_manager/
│ ├── location_manager/
│ └── ...
│
├── templates/ # HTML-Templates (Jinja2)
│ ├── base.html
│ ├── index.html # Dashboard
│ ├── chat.html # Agent-Chat
│ ├── orchestrator.html # Orchestrator-Chat
│ ├── tasks.html # Task-Management
│ ├── agents.html # Agent-Verwaltung
│ ├── files.html # Datei-Manager
│ └── emails.html # Email-Interface
│
├── static/
│ └── style.css # CSS-Styling
│
└── uploads/ # Hochgeladene Dateien
🤖 Verfügbare Agents
| Agent | Rolle | Verantwortlich für |
|---|---|---|
| Orchestrator | Koordinator | Task-Delegation, Agent-Kommunikation |
| Budget Manager | Finanzplanung | Budget-Tracking, Kostenkalkulation |
| Catering Manager | Verpflegung | Menüplanung, Catering-Koordination |
| Location Manager | Veranstaltungsort | Raumbuchung, Logistik |
| Program Manager | Programmablauf | Zeitplanung, Ablaufkoordination |
| Researcher | Recherche | Web-Recherche, Informationsbeschaffung |
| Document Editor | Dokumentation | Dokument-Erstellung, Bearbeitung |
| Tax Advisor | Steuern | Steuerliche Beratung, AKM-Meldungen |
| Musik Rechte Advisor | Musikrechte | GEMA/AKM-Compliance |
| Zusammenfasser | Synthese | Informations-Aggregation |
🔧 Technologie-Stack
- Backend: Flask 3.x
- Frontend: Bootstrap 5, Vanilla JavaScript
- Database: SQLite (Email-Journal)
- AI: OpenCode CLI (Multi-Provider Support)
- Templates: Jinja2
- Streaming: Server-Sent Events (SSE)
🎨 UI-Routen
| Route | Beschreibung |
|---|---|
/ |
Dashboard - Agent-Übersicht & letzte Tasks |
/chat |
Chat mit individuellen Agents |
/orchestrator |
Orchestrator-Chat mit Task-Verteilung |
/tasks |
Task-Management mit Auto-Refresh |
/agents |
Agent-Verwaltung (Erstellen, Bearbeiten, Modell-Auswahl) |
/files |
Datei-Manager (Upload, Download, Agent Work-Folders) |
/emails |
Email-Interface (Senden, Empfangen, Vorlagen) |
⚙️ Konfiguration
Agent-Modelle anpassen
Bearbeite agent_config.json:
{
"orchestrator": "anthropic/claude-3.7-sonnet",
"budget_manager": "opencode/qwen2.5-coder:32b",
"catering_manager": "anthropic/claude-3.5-sonnet"
}
Email-Setup
Bearbeite .env:
EMAIL_ADDRESS=your@email.com
EMAIL_PASSWORD=your_app_password
EMAIL_IMAP_SERVER=imap.gmail.com
EMAIL_SMTP_SERVER=smtp.gmail.com
Background-Threads
- EmailPoller: Prüft alle 2 Minuten auf neue Emails
- TaskBeat: Verarbeitet Tasks alle 10 Sekunden
- TaskWorker: Führt Agent-Tasks aus (Timeout: 10 Min)
📊 Performance
Optimierungen
- ✅ Wissensdatenbank nicht im Prompt (on-demand via
@READ_KNOWLEDGE) - ✅ Model-Cache (1h TTL)
- ✅ Agent arbeiten in eigenen work-Verzeichnissen
- ✅ Timeout: 600 Sekunden (10 Min) für komplexe Tasks
Geschätzte Ausführungszeiten
- Einfache Tasks: 30-60 Sekunden
- Komplexe Tasks: 2-5 Minuten
- Research-Tasks: 3-8 Minuten
🔒 Security
Implementierte Maßnahmen
- ✅ XSS-Schutz: HTML-Escaping in allen Templates
- ✅ Email-Whitelist: Nur autorisierte Absender
- ✅ Exception-Handling: Spezifische Exception-Typen mit Logging
- ✅ Request-Validierung:
.get()mit Defaults - ✅ Session-basierte Auth: Flask-Sessions
Empfehlungen für Produktion
- 🔐 HTTPS aktivieren (TLS/SSL)
- 🔐 Secrets in Umgebungsvariablen (nicht in Code)
- 🔐 CSP Headers setzen
- 🔐 Rate Limiting für API-Endpoints
- 🔐 WSGI Server verwenden (Gunicorn, uWSGI)
🐛 Debugging
Logs prüfen
# Echtzeit-Logs
tail -f app_output.log
# Letzte 50 Zeilen
tail -50 app_output.log
# Nach Errors suchen
grep -i error app_output.log
App-Status
# Läuft die App?
ps aux | grep "python3 app.py"
# Port 5000 belegt?
lsof -i :5000
📝 Entwicklung
Code-Quality
- ✅ 72 Funktionen, 29 Routes
- ✅ Keine unused imports
- ✅ Spezifisches Exception-Handling
- ✅ Logging für alle kritischen Operationen
Git-Workflow
# Status prüfen
git status
# Änderungen committen
git add .
git commit -m "feat: neue Funktion"
# Pushen
git push origin main
📚 Weitere Dokumentation
CHANGES.md- Detaillierte Feature-ImplementierungenFEATURES.md- Feature-ÜbersichtQUICKSTART.md- Schnellstart-Anleitung.env.example- Email-Konfiguration
🎓 Use Cases
Event-Planung
- Orchestrator empfängt Planungs-Anfrage
- Erstellt Subtasks für Budget, Location, Catering
- Agents arbeiten parallel
- Orchestrator aggregiert Ergebnisse
Email-basierte Tasks
- Email kommt an (von Whitelist-Absender)
- EmailPoller erstellt Task
- TaskBeat weist Task zu passendem Agent
- Agent arbeitet Task ab und antwortet per Email
Wissensdatenbank-Abfrage
- Agent braucht Info (z.B. Budget)
- Nutzt
@READ_KNOWLEDGE Topic: Budget - System extrahiert relevante Sektion
- Agent erhält nur benötigte Informationen
🤝 Mitwirken
Dieses Projekt wurde entwickelt für den Diversity-Ball Wien 2026.
📄 Lizenz
Dieses Projekt ist für internen Gebrauch und Event-Management entwickelt.
Version: 1.0.0
Letztes Update: Februar 2026
Status: Production-Ready ✅