diff --git a/docs/ideas/future-features.md b/docs/ideas/future-features.md new file mode 100644 index 0000000..1177f43 --- /dev/null +++ b/docs/ideas/future-features.md @@ -0,0 +1,78 @@ +# Future Feature Ideas + +Lose Ideen und Visionen für spätere Phasen, gesammelt aus realem Betrieb und Nutzerfeedback. +Kein konkreter Plan — Grundlage für eigene Sprint-Planung, sobald die Basisfunktionen stabil sind. + +--- + +## SF-001: Multi-Agent-Kollaboration & Projekt-Workspaces + +**Idee**: Mehrere Agents können gemeinsam an einem Projekt arbeiten. Ein gemeinsames +Projektverzeichnis wird angelegt; verschiedene Agents übernehmen verschiedene Rollen +(z. B. Developer, Reviewer, Tester, Architect). + +**Denkbare Features**: +- `/new-project ` legt einen geteilten Workspace an und weist Agents Rollen zu +- Agents können über Discord-Threads oder einen dedizierten Projekt-Channel kommunizieren +- Direkter Agent-zu-Agent-Kanal: Agent A schickt eine Nachricht an Agent B über einen + internen DisClaw-Dispatch (kein Umweg über Discord notwendig) +- Shared memory / shared files im Projekt-Workspace, auf die alle beteiligten Agents + lesend/schreibend zugreifen dürfen +- Orchestrator-Agent, der Aufgaben verteilt und Fortschritt überwacht + +--- + +## SF-002: Konversationelles Agent-Design ("Agent durch Chat erstellen") + +**Idee**: Statt nur dem `/new-agent`-Slash-Command soll der Nutzer direkt im +`#disclaw`-Channel mit dem Bot chatten können, um einen neuen Agent zu entwerfen. +DisClaw führt ein Interview, stellt Fragen zu Rolle, Fähigkeiten und Einschränkungen +und generiert daraus automatisch `CLAUDE.md` und `agent.yaml`. + +**Denkbare Features**: +- Interaktiver Setup-Wizard im Chat: "Welche Rolle soll der Agent haben?", + "Auf welche Tools soll er Zugriff haben?", "Gibt es Themen, die er ablehnen soll?" +- Preview der generierten `CLAUDE.md` vor dem Bestätigen +- Nachträgliches Bearbeiten eines Agents per Chat: "Ändere die Rolle von Agent X auf..." +- DisClaw-interne Claude-Instanz (ohne Workspace-Isolation) als Design-Assistent + +--- + +## SF-003: Security-Bot-Schicht & Permission-Management pro Agent + +**Idee**: Ein optionaler Security-Bot kann vor einzelne Agents geschaltet werden. +Er überprüft eingehende Prompts und ausgehende Antworten und verwaltet Berechtigungen +auf Basis von per-Agent konfigurierbaren Sicherheitsrichtlinien. + +**Denkbare Features**: +- `security_profile: strict|moderate|open` in `agent.yaml` +- Security-Bot liest den Workspace des Agents und entscheidet, welche Tool-Aufrufe + erlaubt sind (Whitelist/Blacklist) +- Prompt-Injection-Detection auf eingehenden Nachrichten +- Output-Filtering: Prüfung, ob die Antwort zur definierten Rolle des Agents passt +- Audit-Log aller abgelehnten Aktionen (Discord-Message oder Datei) +- Quarantäne-Modus: Verdächtige Anfragen werden zur manuellen Genehmigung an den + Management-Channel weitergeleitet + +--- + +## SF-004: Vollständige Discord-Feature-Nutzung + +**Idee**: Agents sollen alle relevanten Discord-Funktionen nutzen können, nicht nur +einfache Textnachrichten. + +**Denkbare Features**: +- **Polls**: Agent erstellt Discord-Polls für Abstimmungen (z. B. "Welche Architektur + bevorzugst du?") +- **Threads**: Automatisches Erstellen von Threads für längere Diskussionen oder + Teilaufgaben eines Projekts; dedizierte Projekt-Channels mit Thread-Struktur +- **Datei-Senden**: Agent lädt generierte Dateien (Code, Diagramme, Reports) als + Discord-Attachments hoch +- **Datei-Empfangen**: Nutzer kann Dateien in den Channel hochladen; Agent liest sie + und verarbeitet den Inhalt +- **Embeds & Rich Messages**: Strukturierte Antworten mit Embeds (Titel, Felder, + Farben) statt reinem Plaintext +- **Reactions**: Agent setzt Reactions als Status-Indikator (⏳ während Verarbeitung, + ✅ bei Erfolg, ❌ bei Fehler) +- **Slash-Command-Erweiterung**: Mehr Discord-native Commands direkt aus dem Agent- + Kontext heraus (nicht nur über den Management-Channel) diff --git a/docs/ideas/known-issues.md b/docs/ideas/known-issues.md new file mode 100644 index 0000000..ab8c809 --- /dev/null +++ b/docs/ideas/known-issues.md @@ -0,0 +1,70 @@ +# Known Issues & Limitations + +Gesammelte Probleme, die beim realen Betrieb aufgefallen sind. +Werden in einem eigenen Planungs-Sprint adressiert, sobald die Grundvariante stabil läuft. + +--- + +## KI-001: Tool-Permission-Popups erreichen den Nutzer nicht + +**Symptom**: Sobald ein Agent in seinem Workspace aktiv wird (z. B. Dateien schreibt, +Befehle ausführt), fordert Claude Code interactive Tool-Permissions an. Diese Popups +erscheinen nur im Terminal des laufenden DisClaw-Prozesses — nicht im Discord-Channel. +Der Agent blockiert lautlos und wartet auf eine Eingabe, die nie kommt. + +**Auswirkung**: Agents mit aktiver Arbeit hängen oder brechen nach Timeout ab. + +**Mögliche Lösungsrichtungen**: +- `--dangerously-skip-permissions` für vertrauenswürdige Agents (nur mit expliziter + Nutzer-Freigabe pro Agent) +- Permission-Profile in `agent.yaml` definieren, die beim Spawn als `--allowedTools`- + Argumente übergeben werden +- Security-Bot-Schicht (siehe `future-features.md` → SF-003) als vorgelagerter + Permission-Manager + +--- + +## KI-002: Workspace-Wiederherstellung nach Datenverlust + +**Symptom**: Wenn `data/` gelöscht wird oder ein Discord-Channel manuell entfernt wird, +verliert DisClaw die Channel→Workspace-Zuordnung in SQLite. Bestehende Workspace- +Verzeichnisse unter `~/.disclaw/workspaces/` sind nicht mehr erreichbar. + +**Auswirkung**: Agents sind effektiv verloren, obwohl ihre Dateien noch auf der Festplatte +existieren. + +**Gewünschtes Verhalten**: +- Befehl im Management-Channel (z. B. `/recover-agent ` oder `/recover-agents`), + der Workspace-Verzeichnisse nach `agent.yaml` scannt und fehlende Channel+DB-Einträge + neu anlegt +- Optional: Beim Start alle bekannten Workspaces gegen DB abgleichen und Warnungen + ausgeben, wenn Einträge fehlen + +--- + +## KI-002.1: Management-Channel (#disclaw) wird automatisch neu erstellt + +**Symptom**: Wird der `#disclaw`-Channel im Discord-Server versehentlich gelöscht, +startet der DisClaw-Service nicht mehr — er findet keinen Management-Channel und bricht ab. + +**Gewünschtes Verhalten**: +- Beim Start prüfen, ob der konfigurierte Management-Channel noch existiert +- Wenn nicht: Channel automatisch neu anlegen (gleicher Name, gleiche Berechtigungen) + und die Channel-ID in der Config aktualisieren +- Log-Meldung / Discord-DM an den Bot-Owner + +--- + +## KI-003: Hoher Token-Verbrauch durch Context-Reload + +**Symptom**: Bei jeder Nachricht wird der gesamte Konversations-Verlauf als Text in den +Prompt injiziert. Bei längeren Chats steigen Token-Kosten und Latenz erheblich. + +**Auswirkung**: Teurer Betrieb, langsamere Antworten bei wachsender History. + +**Mögliche Lösungsrichtungen**: +- `--resume ` von Claude Code nutzen (Phase 2 geplant) statt History-Injection +- Konversations-History auf N letzte Nachrichten begrenzen (konfigurierbares + `max_history_messages` in `disclaw.yaml`) +- Zusammenfassung älterer History durch den Agent selbst (Summary-Compression) +- Token-Zähler im DB-Eintrag pro Conversation tracken