- ClawdDotNet.Web: Kestrel im Prozess der Anwendung, Token-Absicherung (TokenGate mit FixedTimeEquals), Endpunkte unter /api, Ereignisstrom unter /events (Server-Sent Events) und fortlaufendes Log-Streaming. - Weboberflaeche (wwwroot/): Vollstaendiges Single-Page-Frontend mit nativem HTML5, CSS3 und ES-Modulen ohne Buildschritt (strikt textContent, #-Routing, sofortiger Login-Sprung bei fehlendem Token, Light/Dark-Theme, lokale Barlow-Schriften). - ClawdDotNet.App: Fachlogik aus den Avalonia-ViewModels in Dienste herausgeloest (AgentAdministration, JobAdministration, ServiceAdministration, RunCoordinator) und ueber InstanceChange synchronisiert. - Tests: ClawdDotNet.Web.Tests und ClawdDotNet.App.Tests hinzugefuegt, alle 684 Tests erfolgreich.
11 KiB
11 KiB
ClawdDotNet — Orchestrator-Erweiterungskonzept 2026
Stand: 31. August 2026
Konzept- und Entwurfsdokument. Entstanden aus dem Marktvergleich (LangGraph, CrewAI, AutoGen, Letta, OpenHands, OpenClaw, Grokbot) und der anschließenden Detailabstimmung.
Dieses Dokument beschreibt die neuen Kollaborations-, Daten-, Sicherheits- und Resilienz-Konzepte, um ClawdDotNet als universellen, betriebssicheren Orchestrator für spezialisierte Agententeams (Finanzanalyse, Software-Engineering, SEO/Marketing, Research) zu erweitern.
1. Übersicht der Kernsäulen
Architektur-Übersicht
┌─────────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┐
│ 1. WORKFLOW & KOLLABORATION │ 2. DATEN & GEDÄCHTNIS │ 3. SICHERHEIT & DEFENSE │
│ • Hybride State-Graphs (YAML) │ • Schematisierte Instanz-DB │ • 5-Stufen Schutz vor Amoklauf │
│ • Debatten & Judge-Agent │ • Task-Memory-Flush │ • Quarantäne & Circuit Breaker │
│ • Ephemere Worker vs. Assistent │ • Scratchpad-Lifecycle │ • 1-Klick Rollback via RunId │
├─────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
│ 4. HITL & EILMELDUNGEN │ 5. PROMPTS & TEMPLATES │ 6. RESILIENZ & BENCHMARK │
│ • ask_supervisor -> ask_human │ • Instanz-Setup für Personalmgr.│ • Multi-LLM Fallback-Kaskade │
│ • Mid-Execution Eilmeldungen │ • Dynamische Prompt-Templates │ • Evals as Code / Modell-Vergl. │
│ • Interaktive Messenger-Buttons │ • ext_clitools/ Build-Struktur │ • Kosten- & Latenz-Benchmarking │
└─────────────────────────────────┴─────────────────────────────────┴─────────────────────────────────┘
2. Säule 1: Workflow-Topologien & Kollaborationsmuster
2.1 Hybride State-Graphs & Deterministische Pipelines
- Ziel: Kombination von deterministischer Prozesskonformität (für Pflicht- und Prüfschritte) mit agentischer Autonomie (für Recherche und Synthese).
- Struktur: Workflows werden deklarativ in YAML-Dateien im Agenten- oder Instanz-Ordner definiert.
- Berechtigungsregel: Ein Agent kann Workflow-Definitionen nicht eigenständig manipulieren. Änderungen erfolgen ausschließlich durch den Menschen oder über einen expliziten Workflow-Manager-Task.
- Ablauf:
flowchart LR A[Task Start] --> B[Node 1: Deterministic Data Fetch] B --> C[Node 2: Agent Analyse & Draft] C --> D{Node 3: Deterministic Rule Check} D -- Fail --> C D -- Pass --> E[Node 4: Staging Approval] E --> F[Done: Deliverable Commit]
2.2 Multi-Agenten-Debatten mit „Judge Agent“
- Ziel: Iterative Qualitätsverbesserung durch Arbeiter-Kritiker-Zyklen (Arbeiter entwirft
\leftrightarrowKritiker prüft) ohne Gefahr von Deadlocks oder Endlosschleifen. - Steuerung im Taskboard:
- Arbeiter markiert Task als
in_review. - Kritiker prüft gegen definierte Abnahmekriterien (
acceptance). Bei Mängeln: Revisions-Task mit Feedback (Runde1/N). - Abbruch-Bedingung: Maximal 3 Iterationsrunden oder Erreichen des Ziel-Scores.
- Judge-Agent: Bei verbleibendem Dissens nach Runde 3 greift automatisch der Supervisor/Judge-Agent ein und fällt die finale Entscheidung oder eskaliert gezielt an den Menschen.
- Arbeiter markiert Task als
2.3 Ephemere Subagenten vs. Feste Team-Assistenten
- Aufgabenteilung:
- Personalmanager-Agent: Erstellt vollwertige, persistente Team-Agenten mit eigenem Workspace und Langzeitgedächtnis für dauerhafte Rollen.
- Ephemere Subagenten (Worker): Kurzlebige, zustandslose Worker für massiv-parallele Tool-Jobs (z. B. 20 Webseiten parallel crawlen).
- Budget-Hard-Cap: Vor dem Start eines Subagenten muss ein Teilbudget aus dem Haupttask reserviert werden (CAS im
BudgetGuard). Bei Überschreitung des Instanz-Budgets wird der Aufruf sofort abgelehnt. - Vererbung von
RootRunId: Jeder Subagent erbtRootRunIdundParentRunId(#207), wodurch Gesamtkosten und Fehlerhistorie im Audit-Log lückenlos zusammengeführt werden.
3. Säule 2: Datenhaltung, Gedächtnis-Hygiene & Task-Lifecycle
3.1 Schematisierte Instanz-Datenbank („DocumentDB / CollectionStore“)
- Konzept: JSON-Dokumenten-Store mit strikter Schema-Validierung, basierend auf dem bewährten
SqliteStorage(WAL-Modus, keine Dateisperren-Konflikte). - Ablage:
SharedWorkspace/data/collections/(oder als SQLite-TabelleInstanceCollections). - Schema-Bindung: Ein Lead-Agent definiert einmalig
schema.json. Alleinsert/update-Aufrufe werden vor der Ausführung gegen das Schema validiert. - Revisionssicherheit & Gleichzeitigkeit:
- Jedes Dokument führt
_id,_version,_created_by,_updated_at,_run_idund_is_deleted. - Gleichzeitige Updates nutzen Optimistic Locking (CAS auf
_version). - Reines Append-Only: Kein physisches
DELETE— nur logische Soft-Deletes.
- Jedes Dokument führt
3.2 Task-spezifischer Memory-Flush (Kontext-Reset)
- Problem: Ein Agent darf nach einer Nvidia-Analyse nicht mit Nvidia-Zahlen im Kopf an die Volkswagen-Analyse gehen.
- 3-Stufen-Gedächtnisfluss:
- Working Memory (Scratchpad): Während des Tasks liegt das Rohwissen im Task-Scratchpad (
scratch/t-<id>.md). - Memory-Commit bei Task-Abschluss: Beim Übergang auf
donefiltert der Agent generalisierbare Kernfakten heraus und schreibt sie mit passendemSubjectundKeyins Langzeitgedächtnis. - Kontext-Reset: Beim Wechsel auf einen neuen Task startet der Agent mit leerem Prompt-Kontext. Das automatische Memory-Recall lädt ausschließlich Fakten zum neuen Thema.
- Working Memory (Scratchpad): Während des Tasks liegt das Rohwissen im Task-Scratchpad (
3.3 Scratchpad-Lifecycle & Archivierung
- Aktiv: Während
in_progressunterSharedWorkspace/scratch/t-<id>.md. - Archivierung: Bei
doneodercanceledverschiebt der Taskboard-Scanner das Scratchpad atomar nachSharedWorkspace/scratch/archive/. - Retention: Ein wöchentlicher Wartungs-Job bereinigt archivierte Scratches älter als
XTage (Standard: 30 Tage).
4. Säule 3: Sicherheit, Containment & Disaster Recovery
4.1 5-Stufen-Schutz gegen amoklaufende Agenten
- Prevent (Keine Zerstörungsgewalt):
- Reines Append-Only & Soft-Deletes in Datenbanken und Collections.
- Kein Hard-Delete im Dateisystem:
FileRW-Papierkorb (#195) undprotectedPathsfür Systemordner. - Unveränderliche Identitäten:
Identity.mdundSoul.mdsind schreibgeschützt (#205).
- Contain (Blast Radius):
- Strikt getrennte Workspaces (
personalvs.shared). - Rate-Limits für Task-Erstellung (z. B. max. 10 Tasks / Stunde je Agent).
- Strikt getrennte Workspaces (
- Detect (Anomalie-Erkennung & Circuit Breaker):
- Häufen sich Fehler oder Massenänderungen (> 5 Fehlversuche / 3 Minuten), stoppt der Engine-Circuit-Breaker den Agenten automatisch.
- Isolate (Quarantäne & Not-Aus):
- Der Agent wird in den Status
Quarantinedversetzt; laufende Hintergrund-Tasks werden aufblockedgesetzt. - Quarantäne kann durch den Supervisor-Agenten oder per Messenger-Befehl (
/quarantine @agent) ausgelöst werden.
- Der Agent wird in den Status
- Recover (1-Klick-Rollback / Time-Travel):
- Jede Aktion trägt die gestempelte
RunIdim Audit-Log. - Mit einem Befehl (
clawddotnet rollback --agent "@agent" --since "12:00") werden alle Datei- und Collection-Änderungen des Zeitraums atomar zurückgedreht.
- Jede Aktion trägt die gestempelte
4.2 Schutz vor lateraler Team-Infektion
- Untrusted Content Framing (#193): Alle externen Tool-Ergebnisse, Scratches und Dokumente fremder Agenten werden im Prompt in
<untrusted_source>-Tags gekapselt. Der Kern-Prompt verbietet die Befehlsausführung aus diesen Datenquellen strikt.
5. Säule 4: Human-in-the-Loop & Live-Intervention
5.1 Mehrstufige Eskalation: ask_supervisor \rightarrow ask_human
- Stufe 1 (
ask_supervisor): Bei Mehrdeutigkeiten oder Blockaden wendet sich der Agent zuerst an den leitenden Team-Agenten. Kann dieser die Frage anhand von Projektregeln oder Kontext beantworten, läuft der Task ohne Menschen-Wartezeit weiter. - Stufe 2 (
ask_human): Kann der Supervisor nicht entscheiden, wird die Frage als interaktive Nachricht (Telegram Inline-Buttons, Rocket.Chat) mit konkreten Auswahlschaltflächen an den Menschen gesendet.
5.2 Mid-Execution Priority Injects (Eilmeldungen & Zwischenrufe)
- Mechanismus: Vor jedem OpenRouter-Inferenz-Schritt prüft die
AgentEngineeine instanzinterne Prioritäts-Queue. - Eilmeldungen: Erkennt ein Monitor-Agent eine dringende Meldung (z. B. Veröffentlichung von Quartalszahlen), injiziert die Engine vor dem nächsten Denk-Schritt eine Systemnachricht:
[SYSTEM / EILMELDUNG von @market-watcher]: Neue Quartalszahlen NVDA soeben gemeldet: ... - Der arbeitende Analyst bindet die neue Information unmittelbar ein, ohne dass der Task abgebrochen werden muss.
6. Säule 5: Vorlagen, Build-Struktur & Modell-Resilienz
6.1 Instanz-Erstellungsleitfaden & Dynamische Prompt-Templates
- Leitfaden für KI-Personalmanager: Umfassender Prompt- und Best-Practice-Katalog für den Supervisor zur fehlerfreien Zusammenstellung neuer Agententeams.
- Dynamische Prompt-Templates (Scriban/Liquid): Variablen wie
{{team_roster}}oder{{current_date}}inIdentity.mdundSoul.mdsorgen dafür, dass neue Agenten im Team sofort von allen Kollegen erkannt werden.
6.2 Externe CLI-Tools Verzeichnisstruktur (ext_clitools/)
- Strukturierte und versionierte Ablage externer Binaries im Build:
clawddotnet/ └── ext_clitools/ ├── ffmpeg/ ├── yt-dlp/ └── typst/
6.3 Multi-LLM Fallback & Modell-Benchmarking („Evals as Code“)
- Fallback-Kaskade: Konfiguration eines Ausweichmodells pro Agent (z. B. Primär:
anthropic/claude-3.7-sonnet, Fallback:google/gemini-2.5-pro). Bei 5xx-Fehlern oder anhaltendem 429-Rate-Limit schaltet die Engine unterbrechungsfrei um. - Evals-Test-Runner: Automatisierter Benchmark, der definierte Testaufgaben gegen unterschiedliche Modelle laufen lässt, um Qualität, Latenz und Tokenkosten quantitativ zu vergleichen.