# cakmakg/agentic-brain architecture

> Architecture diagram of the GitHub repository cakmakg/agentic-brain, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cakmakg/agentic-brain
- Repository: https://github.com/cakmakg/agentic-brain

## Overview

agentic-brain verbindet berechtigungsbewusste Wissensaufnahme und -suche mit agentischer Automatisierung, die vor jeder Außenwirkung auf menschliche Freigabe wartet. Der zentrale Nutzerpfad führt von einer Besprechungsnotiz über ACL-gefilterte Extraktion und geprüften Entwurf bis zur Freigabe und Ticketaktion. HTTP und CLI sind Kanäle zum selben Kern; daneben stehen Beispiel-Domäne, persistente Kontextadapter und domänenübergreifende Messungen. Die README und ausgewählte Quellen belegen die gezeigten Übergänge; für nicht eingesehene Module sind unsichere interne Aufrufe ausgelassen.

Main entry points: [`src/kernel/agent/runner.js`](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/runner.js) (Workflow-Runner), [`src/adapters/http/server.js`](https://github.com/cakmakg/agentic-brain/blob/main/src/adapters/http/server.js) (HTTP-Kanal), [`evals/runners/policy.js`](https://github.com/cakmakg/agentic-brain/blob/main/evals/runners/policy.js) (Policy-Evals), [`src/kernel/connectors/synchronisation.js`](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/connectors/synchronisation.js) (Synchronisierung)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_kanal["Kanäle &amp; Governance"]
  node_http["HTTP-Kanal<br/>[server.js]"]
  node_fragen["Fragen-Kanal<br/>[fragen.js]"]
  node_auth["Authentifizierung<br/>[auth.js]"]
  node_events["Event-Bus<br/>[eventBus.js]"]
  node_identity["Identitätsauflösung<br/>[index.js]"]
  node_directory["Fixture-Verzeichnis<br/>[fixtures.js]"]
end

subgraph group_kontext["Kontext &amp; Quellen"]
  node_source["Notizlaufwerk<br/>[notizlaufwerk.js]"]
  node_sync["Synchronisierung<br/>[synchronisation.js]"]
  node_ingest["Dokument-Ingest<br/>[pipeline.js]"]
  node_acl["ACL-Envelope<br/>[envelope.js]"]
  node_store[("Chunk-Speicher-Port<br/>[index.js]")]
  node_retrieval["Berechtigungsfilter<br/>[filter.js]"]
end

subgraph group_workflow["Besprechungsworkflow"]
  node_bespdomain["Besprechungsdomäne<br/>[domain.js]"]
  node_extract["Aktionspunkte extrahieren<br/>[extrahierer.js]"]
  node_contract["Entwurfsvertrag<br/>[vertrag.js]"]
  node_review["Entwurf prüfen<br/>[pruefer.js]"]
  node_draft["Ticketentwurf<br/>[entwurf.js]"]
  node_ticket["Ticketdienst<br/>[ticketdienst.js]"]
  node_actions["Aktions-Whitelist<br/>[actions.js]"]
end

subgraph group_kernel["Agentenkern"]
  node_runner["Workflow-Runner<br/>[runner.js]"]
  node_router["Deterministisches Routing<br/>[routing.js]"]
  node_approval["Genehmigungs-Checkpoint<br/>[build.js]"]
  node_queue["Wartende Aktionen<br/>[queue.js]"]
end

subgraph group_messung["Messung"]
  node_evalrunner["Policy-Evals<br/>[policy.js]"]
  node_evaldomains["Domänen-Eval-Adapter<br/>[index.js]"]
  node_metrics["Metriken<br/>[index.js]"]
end

node_user(("Mensch"))
node_llm{{"LLM-Anbieter"}}

node_user -->|"startet / genehmigt"| node_http
node_user -->|"fragt / entscheidet"| node_fragen
node_http -->|"authentifiziert"| node_auth
node_http -->|"startet Workflow"| node_runner
node_http -->|"leitet Freigabe"| node_approval
node_runner -->|"sendet Fortschritt"| node_events
node_http -->|"streamt Ereignisse"| node_events
node_fragen -->|"löst Nachweis auf"| node_identity
node_identity -->|"fragt Verzeichnis"| node_directory
node_fragen -->|"synchronisiert"| node_sync
node_sync -->|"holt Snapshot"| node_source
node_sync -->|"übergibt Dokumente"| node_ingest
node_ingest -->|"vererbt ACL"| node_acl
node_ingest -->|"schreibt Chunks"| node_store
node_runner -->|"führt Domänenworkflow"| node_bespdomain
node_bespdomain -->|"konfiguriert Routing"| node_router
node_router -.->|"fragt Routing"| node_llm
node_runner -->|"steuert Extraktion"| node_extract
node_extract -->|"sucht mit Principal"| node_store
node_store -->|"kompiliert ACL-Filter"| node_retrieval
node_extract -->|"übergibt Aktionspunkte"| node_review
node_review -->|"prüft Vertrag"| node_contract
node_runner -->|"steuert Entwurf"| node_draft
node_runner -->|"wartet auf Mensch"| node_approval
node_approval -->|"reiht nach Freigabe ein"| node_queue
node_runner -->|"steuert Zustellung"| node_ticket
node_ticket -->|"nutzt erlaubte Aktionen"| node_actions
node_runner -.->|"ruft Modell über Agenten"| node_llm
node_evalrunner -->|"lädt Adapter"| node_evaldomains
node_evalrunner -->|"misst Workflowläufe"| node_runner
node_evalrunner -->|"misst Synchronisierung"| node_sync
node_evalrunner -->|"berechnet Kennzahlen"| node_metrics

click node_http "https://github.com/cakmakg/agentic-brain/blob/main/src/adapters/http/server.js"
click node_fragen "https://github.com/cakmakg/agentic-brain/blob/main/src/bin/fragen.js"
click node_auth "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/auth.js"
click node_events "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/eventBus.js"
click node_identity "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/identitaet/index.js"
click node_directory "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/identitaet/fixtures.js"
click node_source "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/connectors/notizlaufwerk.js"
click node_sync "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/connectors/synchronisation.js"
click node_ingest "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/ingest/pipeline.js"
click node_acl "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/envelope.js"
click node_store "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/store/index.js"
click node_retrieval "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/retrieval/filter.js"
click node_bespdomain "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/domain.js"
click node_extract "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/extrahierer.js"
click node_contract "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/vertrag.js"
click node_review "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/pruefer.js"
click node_draft "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/entwurf.js"
click node_ticket "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/ticketdienst.js"
click node_actions "https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/actions.js"
click node_runner "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/runner.js"
click node_router "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/routing.js"
click node_approval "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/build.js"
click node_queue "https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/action/queue.js"
click node_evalrunner "https://github.com/cakmakg/agentic-brain/blob/main/evals/runners/policy.js"
click node_evaldomains "https://github.com/cakmakg/agentic-brain/blob/main/evals/domains/index.js"
click node_metrics "https://github.com/cakmakg/agentic-brain/blob/main/evals/metrics/index.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_http,node_fragen,node_auth,node_events,node_identity,node_directory toneBlue
class node_source,node_sync,node_ingest,node_acl,node_store,node_retrieval toneAmber
class node_bespdomain,node_extract,node_contract,node_review,node_draft,node_ticket,node_actions toneMint
class node_runner,node_router,node_approval,node_queue toneRose
class node_evalrunner,node_evaldomains,node_metrics,node_user,node_llm toneIndigo
```

## Components

### Kanäle & Governance

- [HTTP-Kanal](https://github.com/cakmakg/agentic-brain/blob/main/src/adapters/http/server.js): `src/adapters/http/server.js`
- [Fragen-Kanal](https://github.com/cakmakg/agentic-brain/blob/main/src/bin/fragen.js): `src/bin/fragen.js`
- [Authentifizierung](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/auth.js): `src/kernel/governance/auth.js`
- [Event-Bus](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/eventBus.js): `src/kernel/governance/eventBus.js`
- [Identitätsauflösung](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/identitaet/index.js): `src/kernel/governance/identitaet/index.js`
- [Fixture-Verzeichnis](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/governance/identitaet/fixtures.js): `src/kernel/governance/identitaet/fixtures.js`

### Kontext & Quellen

- [Notizlaufwerk](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/connectors/notizlaufwerk.js): `src/domains/besprechung/connectors/notizlaufwerk.js`
- [Synchronisierung](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/connectors/synchronisation.js): `src/kernel/connectors/synchronisation.js`
- [Dokument-Ingest](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/ingest/pipeline.js): `src/kernel/context/ingest/pipeline.js`
- [ACL-Envelope](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/envelope.js): `src/kernel/context/envelope.js`
- [Chunk-Speicher-Port](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/context/store/index.js): `src/kernel/context/store/index.js`
- [Berechtigungsfilter](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/retrieval/filter.js): `src/kernel/retrieval/filter.js`

### Besprechungsworkflow

- [Besprechungsdomäne](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/domain.js): `src/domains/besprechung/domain.js`
- [Aktionspunkte extrahieren](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/extrahierer.js): `src/domains/besprechung/agents/extrahierer.js`
- [Entwurfsvertrag](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/vertrag.js): `src/domains/besprechung/vertrag.js`
- [Entwurf prüfen](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/pruefer.js): `src/domains/besprechung/agents/pruefer.js`
- [Ticketentwurf](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/entwurf.js): `src/domains/besprechung/agents/entwurf.js`
- [Ticketdienst](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/agents/ticketdienst.js): `src/domains/besprechung/agents/ticketdienst.js`
- [Aktions-Whitelist](https://github.com/cakmakg/agentic-brain/blob/main/src/domains/besprechung/actions.js): `src/domains/besprechung/actions.js`

### Agentenkern

- [Workflow-Runner](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/runner.js): `src/kernel/agent/runner.js`
- [Deterministisches Routing](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/routing.js): `src/kernel/agent/routing.js`
- [Genehmigungs-Checkpoint](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/agent/build.js): `src/kernel/agent/build.js`
- [Wartende Aktionen](https://github.com/cakmakg/agentic-brain/blob/main/src/kernel/action/queue.js): `src/kernel/action/queue.js`

### Messung

- [Policy-Evals](https://github.com/cakmakg/agentic-brain/blob/main/evals/runners/policy.js): `evals/runners/policy.js`
- [Domänen-Eval-Adapter](https://github.com/cakmakg/agentic-brain/blob/main/evals/domains/index.js): `evals/domains/index.js`
- [Metriken](https://github.com/cakmakg/agentic-brain/blob/main/evals/metrics/index.js): `evals/metrics/index.js`

### Other components

- **Mensch**
- **LLM-Anbieter**

## Connections

- Mensch → HTTP-Kanal: startet / genehmigt
- Mensch → Fragen-Kanal: fragt / entscheidet
- HTTP-Kanal → Authentifizierung: authentifiziert
- HTTP-Kanal → Workflow-Runner: startet Workflow
- HTTP-Kanal → Genehmigungs-Checkpoint: leitet Freigabe
- Workflow-Runner → Event-Bus: sendet Fortschritt
- HTTP-Kanal → Event-Bus: streamt Ereignisse
- Fragen-Kanal → Identitätsauflösung: löst Nachweis auf
- Identitätsauflösung → Fixture-Verzeichnis: fragt Verzeichnis
- Fragen-Kanal → Synchronisierung: synchronisiert
- Synchronisierung → Notizlaufwerk: holt Snapshot
- Synchronisierung → Dokument-Ingest: übergibt Dokumente
- Dokument-Ingest → ACL-Envelope: vererbt ACL
- Dokument-Ingest → Chunk-Speicher-Port: schreibt Chunks
- Workflow-Runner → Besprechungsdomäne: führt Domänenworkflow
- Besprechungsdomäne → Deterministisches Routing: konfiguriert Routing
- Deterministisches Routing → LLM-Anbieter: fragt Routing
- Workflow-Runner → Aktionspunkte extrahieren: steuert Extraktion
- Aktionspunkte extrahieren → Chunk-Speicher-Port: sucht mit Principal
- Chunk-Speicher-Port → Berechtigungsfilter: kompiliert ACL-Filter
- Aktionspunkte extrahieren → Entwurf prüfen: übergibt Aktionspunkte
- Entwurf prüfen → Entwurfsvertrag: prüft Vertrag
- Workflow-Runner → Ticketentwurf: steuert Entwurf
- Workflow-Runner → Genehmigungs-Checkpoint: wartet auf Mensch
- Genehmigungs-Checkpoint → Wartende Aktionen: reiht nach Freigabe ein
- Workflow-Runner → Ticketdienst: steuert Zustellung
- Ticketdienst → Aktions-Whitelist: nutzt erlaubte Aktionen
- Workflow-Runner → LLM-Anbieter: ruft Modell über Agenten
- Policy-Evals → Domänen-Eval-Adapter: lädt Adapter
- Policy-Evals → Workflow-Runner: misst Workflowläufe
- Policy-Evals → Synchronisierung: misst Synchronisierung
- Policy-Evals → Metriken: berechnet Kennzahlen
