OpenCognitOpenCognitDOCS

Architektur & Orchestrierung

CEO-Experten-Modell, Heartbeat-Motor und das Zero-Human Company Konzept.

Kern-Orchestrierungsarchitektur

OpenCognit nutzt eine Planner → Executor → Critic → Self-Heal-Pipeline:

FeatureWas es tut
Native Tool CallsCEO nutzt die Anthropic/OpenAI Function-Calling API statt JSON-in-Text. Strukturierte, zuverlässige Aktionsextraktion.
Critic / Evaluator LoopJedes Task-Ergebnis wird von einem leichtgewichtigen Evaluator (Haiku) geprüft. Bei unzureichendem Output führt der Agent den Task erneut aus (max. 2 Ablehnungen). Nach 2 Ablehnungen wird der Task auf blocked gesetzt und zur menschlichen Überprüfung markiert — kein stilles Auto-Approve.
Dual-Engine Quality GateBeide Ausführungspfade — Heartbeat und Scheduler-Timer — durchlaufen den Critic-Gate. update_task_status→done-Aktionen des Schedulers werden geprüft, bevor der Task schließt.
Self-Healing RetryBei nicht-transientem Fehler: automatische Wiederholung mit exponentiellem Backoff (5 → 15 → 45 Min). Nach 3 Fehlern: Eskalations-Task für CEO, Original-Task wird blocked.
Orchestrator-EskalationNach max. Wiederholungen bekommt der CEO automatisch einen high-priority Eskalations-Task mit vollem Fehlerkontext und drei Lösungsvorschlägen — sofort geweckt.
Task-Output-als-InputWenn ein Task von vorherigen abhängt, werden deren Outputs automatisch als Kontext übergeben. Kein Agent muss Ergebnisse neu suchen.
Parallele WakeupsAlle durch eine CEO-Entscheidung ausgelösten Agenten werden gleichzeitig via Promise.all geweckt. Kein sequenzielles Warten.
SOUL.md IdentitätDateibasierte Agenten-Identität mit Markdown, Template-Variablen ({{company.name}}) und mtime-basierter Cache-Invalidierung. Ersetzt statische System-Prompts.
LRU Conversation MemoryDer In-Memory-Gesprächsverlauf nutzt echte Last-Access-Time-Verdrängung — die zuletzt genutzte Session wird zuerst entfernt, nicht die älteste der Einfüge-Reihenfolge.
BM25 MemoryGedächtnis-Abruf nutzt BM25+-Scoring (Robertson–Zaragoza) mit Stopword-Filtern. Findet kontextuell relevante Erinnerungen, nicht nur Keyword-Treffer.
Cleanup & BackupAutomatische TTL-basierte Datenbereinigung (alle 6h) + tägliches SQLite Hot-Backup mit 7-Tage-Aufbewahrung. Session-Dateien werden nach 7 Tagen automatisch gelöscht. Zero-Wartung für Self-Hoster.
DB Performance Indexes9 Indexes auf häufig abgefragten Spalten (Agent-Inbox, Task-Status, Wakeup-Queue u.a.) — Abfragen, die zuvor ganze Tabellen scannten, nutzen jetzt Index-Lookups.

Das Zero-Human Company Modell

OpenCognit implementiert eine hierarchische Multi-Agenten-Architektur, die sich an realen Unternehmensstrukturen orientiert. Anstatt einen einzelnen All-in-One-Agenten zu verwenden, arbeiten spezialisierte KI-Experten in Rollen zusammen — koordiniert von einem CEO-Agenten.

graph TB
    Board["👤 Board (Mensch)"]
    CEO["🤖 CEO-Agent\nOrchestrator"]
    Dev["🔧 Dev-Experte\nFrontend/Backend"]
    Research["🔍 Research-Experte\nMarkt & Daten"]
    DevOps["⚙️ DevOps-Experte\nInfrastruktur"]
    DB[(SQLite\nDatenbank)]

    Board -->|Strategisches Ziel| CEO
    CEO -->|Aufgabe delegieren| Dev
    CEO -->|Aufgabe delegieren| Research
    CEO -->|Aufgabe delegieren| DevOps
    Dev -->|Ergebnis + Kommentar| CEO
    Research -->|Ergebnis + Kommentar| CEO
    DevOps -->|Ergebnis + Kommentar| CEO
    CEO -->|Status-Report| Board
    CEO <--> DB
    Dev <--> DB
    Research <--> DB
    DevOps <--> DB

Rollenhierarchie

CEO-Agent (Zentraler Orchestrator)

Der CEO ist ein spezieller Agent mit dem Adapter-Typ ceo. Er:

  • Empfängt übergeordnete Ziele vom Board (Menschen)
  • Zerlegt Ziele in konkrete Aufgaben (Sub-Tasks)
  • Delegiert Aufgaben an den passenden Experten anhand von Skills
  • Überprüft abgeschlossene Aufgaben auf Qualität
  • Eskaliert blockierte Aufgaben an Manager oder Board
  • Empfiehlt neue Einstellungen, wenn die Kapazität fehlt

Experten (Spezialisierte Agenten)

Jeder Experte hat:

  • Rolle & Titel — z.B. Senior Frontend Developer
  • Skills — Tags wie react, typescript, css
  • Verbindungstyp — Welcher LLM-Provider wird genutzt?
  • Manager — Optional: Wem wird berichtet (reportsTo)
  • Budget — Monatliches Token-Kostenbudget

Experten arbeiten autonom: Sobald eine Aufgabe zugewiesen wird, nimmt der Heartbeat-Motor sie auf.


Der Heartbeat-Motor

Der Heartbeat ist das Herz der Autonomie in OpenCognit. Er ermöglicht es Agenten, ohne menschliche Prompts kontinuierlich zu arbeiten.

sequenceDiagram
    participant S as Scheduler (30s)
    participant W as Wakeup-Service
    participant H as Heartbeat-Service
    participant A as Adapter (Claude/etc.)
    participant DB as Datenbank

    S->>W: Wer braucht einen Wakeup?
    W->>DB: Ausstehende Wakeup-Requests abrufen
    DB-->>W: [Agent A: Task #12, Agent B: Timer]
    W->>H: triggerZyklus(Agent A)
    H->>DB: Arbeitszyklen-Eintrag erstellen
    H->>DB: Inbox des Agenten abrufen (offene Tasks)
    DB-->>H: [Task #12: "Login-Seite implementieren"]
    H->>DB: Execution Lock setzen (30min Timeout)
    H->>A: Task ausführen (Prompt + Kontext)
    A-->>H: Ergebnis + Token-Verbrauch
    H->>DB: Kommentar auf Task posten
    H->>DB: Task-Status aktualisieren (done/blocked)
    H->>DB: Kosten buchen
    H->>DB: Lock freigeben

Wakeup-Quellen

Agenten werden durch verschiedene Ereignisse geweckt:

QuelleBeschreibung
timerRegulärer Heartbeat-Zyklus (konfigurierbar per Agent)
assignmentEine neue Aufgabe wurde dem Agenten zugewiesen
on_demandManueller Trigger über das Dashboard oder die API
automationRoutine-Trigger (Cron-basiert)

Coalescing: Mehrere Wakeup-Requests für denselben Agenten und dieselbe Aufgabe werden zu einem einzigen zusammengefasst (deduplication), um unnötige Ausführungen zu vermeiden.

Execution Lock

Jede Aufgabe kann gleichzeitig nur von einem Agenten bearbeitet werden. Der Lock enthält:

  • executionRunId — ID des aktiven Heartbeat-Runs
  • executionAgentNameKey — Normalisierter Agenten-Name
  • executionLockedAt — Zeitstempel des Locks
  • Timeout: 30 Minuten — danach wird der Lock automatisch freigegeben

CLI Lock Safety

Der Claude-Code-Adapter nutzt zwei separate Mutexe mit 5-Minuten-Timeout:

LockGeltungsbereichZweck
agentAutonome Heartbeat-RunsVerhindert parallele Agenten-Ausführungen
chatInteraktive Telegram/Chat-SessionsVerhindert, dass Chat Agenten-Runs blockiert

Die Trennung der Locks stellt sicher, dass eine lang laufende Chat-Session den Heartbeat nicht aushungert — und umgekehrt. Der 5-Minuten-Timeout verhindert Deadlocks bei Abstürzen.


Adapter-System

OpenCognit nutzt ein Adapter-Pattern für polymorphe Ausführung. Jeder Experte kann mit einem anderen LLM-Provider verbunden werden:

graph LR
    HB[Heartbeat Service]
    REG[Adapter Registry]
    CL[Claude Adapter]
    CC[Claude Code CLI]
    OR[OpenRouter]
    OL[Ollama]
    BA[Bash Adapter]
    HT[HTTP Adapter]
    CEO[CEO Adapter]

    HB --> REG
    REG --> CL
    REG --> CC
    REG --> OR
    REG --> OL
    REG --> BA
    REG --> HT
    REG --> CEO
AdapterBeschreibungBesonderheit
claudeClaude API (Anthropic)Direkte API-Calls
claude-codeClaude Code CLISession-Persistenz über Dateien
openrouterOpenRouterZugang zu 100+ Modellen
ollamaLokale ModelleKeine Cloud-Abhängigkeit
openaiOpenAI APIGPT-Modelle
bashShell-KommandosTimeout: 5 Min, geblockte Befehle
httpHTTP-RequestsExterne API-Integration
ceoCEO-OrchestrierungAuto-Delegation & Strategie

Datenbank-Schema

OpenCognit nutzt SQLite mit Drizzle ORM (16 Tabellen):

TabelleBeschreibung
benutzerBenutzerkonten (JWT-Auth)
unternehmenKI-Unternehmen / Organisationen
expertenKI-Agenten mit Rollen & Config
aufgabenTasks mit Status & Execution Lock
kommentareAgent-Kommentare auf Tasks
chatNachrichtenReal-Time Chat Board ↔ Agent
genehmigungenApproval-Workflows
kostenbuchungenToken-Tracking & Kostenabrechnung
aktivitaetslogAudit-Trail aller Aktionen
arbeitszyklenHeartbeat-Ausführungshistorie
zieleHierarchische Unternehmensziele
einstellungenKey-Value Konfiguration
agentWakeupRequestsWakeup-Queue mit Coalescing
routinenWiederkehrende Aufgaben
routineTriggerSchedule/Webhook-Trigger
routineAusfuehrungRoutine-Ausführungshistorie

SOUL.md — Dateibasierte Agenten-Identität

SOUL.md ist eine optionale, git-trackbare Markdown-Datei, die den in der Datenbank gespeicherten System-Prompt ersetzt.

# {{agent.name}} — {{agent.role}}

Du arbeitest bei {{company.name}}.
{{company.goal}}

## Deine Prinzipien
- Sei präzise und zielgerichtet
- Schließe Aufgaben vollständig ab

Verfügbare Template-Variablen:

  • {{agent.name}} — Name des Agenten
  • {{agent.role}} — Rollenbeschreibung
  • {{company.name}} — Unternehmensname
  • {{company.goal}} — Unternehmensziel

Funktionsweise: Die Datei wird vor jeder Task-Ausführung geladen. Das Caching basiert auf der Datei-mtime — neu eingelesen wird nur bei Änderungen. Export über Experten-Einstellungen → SOUL.md exportieren.

SOUL.md-Dateien können mit Git versioniert, teamübergreifend geteilt oder dynamisch für A/B-Tests von Agenten-Personas ausgetauscht werden.


Semantisches Gedächtnis

Jeder Agent hat ein 5-schichtiges Gedächtnissystem:

SchichtInhaltAufbewahrung
WingsEin „Raum" pro ExpertePermanent
DrawersThemenbasiertes Wissen ([room] inhalt)Permanent
DiaryAktionsprotokolle, Entscheidungen, WissenRotierend: letzte N behalten
KGTypisierte Fakten (Subjekt → Prädikat → Objekt)Bis zur Invalidierung
SummariesKI-generierte Kompakt-ZusammenfassungenStündliche Konsolidierung

BM25+ Abruf: Beim Task-Start wird das Agenten-Gedächtnis mit BM25+-Scoring durchsucht (Robertson–Zaragoza-Variante). Dokumente werden nach Term-Häufigkeit × inversem Dokument-Frequenz rangiert, mit Dokumentlängen-Normalisierung. Deutsche und englische Stopwords werden gefiltert.

Agenten können mit [REMEMBER:room]-Tags in ihrem Output ins Gedächtnis schreiben:

Fertig! Der API-Endpunkt ist /api/v2/benutzer.
[REMEMBER:api_endpunkte] /api/v2/benutzer — GET, gibt paginierte Benutzerliste zurück

Wartung: Cleanup & Backup

OpenCognit verwaltet seine eigene Wartung automatisch:

Cleanup-Service (alle 6 Stunden)

ZielAufbewahrung
Session-Dateien7 Tage
Erfolgreiche Ausführungen30 Tage
Fehlgeschlagene Ausführungen14 Tage
Trace-Ereignisse14 Tage
Alte ZusammenfassungenLetzte 3 Versionen behalten
Aktivitätsprotokoll90 Tage
System-Chat-Nachrichten30 Tage

Backup-Service (täglich)

  • Hot-Backup über SQLites sqlite.backup() API — sicher bei gleichzeitigen Schreibvorgängen
  • Gespeichert in data/backups/opencognit_JJJJ-MM-TT.db
  • 7-Tage-Aufbewahrung (ältere Backups werden automatisch gelöscht)

Tech Stack

Frontend

React 19, TypeScript, TanStack Query, Tailwind CSS, Shadcn/UI, Vite

Backend

Node.js, Express 5, TypeScript, JWT-Auth, WebSocket (ws)

Datenbank

SQLite (better-sqlite3), Drizzle ORM, WAL-Mode für Concurrency

Agent-Ausführung

Adapter-Pattern: Claude, OpenRouter, Ollama, Bash, HTTP