Architektur
Agent NAS hat vier Schichten und eine optionale Synchronisierungsschicht: Interface projiziert Fähigkeiten in vorhandene Schnittstellen, Trust ist die einzige Autorisierungsstelle, Memory macht aus Notizen durchsuchbares Wissen, und Store hält einen Tree mit Verlauf. Die Memory-Schicht lässt sich als Ganzes löschen und neu aufbauen, und Store nutzt schlicht bewährten Speicher.
Vier Schichten und optionale Synchronisierung
- Interface
Projiziert Fähigkeiten in Schnittstellen, die Agenten, Menschen und Werkzeuge bereits nutzen. Gateways sind zustandslos und entscheiden nie, wer was darf.
- Mount (FUSE, NFS, SMB)
- Git
- S3-kompatibel
- WebDAV
- MCP
- HTTP-API
- CLI
- A2A (optional)
- Trust (Vertrauen)
Die einzige Autorisierungsstelle. Eine deterministische Richtlinien-Engine ohne Modell in der Entscheidung; erst protokollieren, dann handeln.
- Principals und Ausführungen
- Capability Lease
- Richtlinien-Engine
- Human Gate
- Trust Labels
- Credential Broker
- Flight Recorder
- Memory (Gedächtnis)
Macht aus Notizen durchsuchbares, budgetiert lesbares Wissen. Alles lässt sich aus der Schicht darunter neu aufbauen.
- Notizkonventionen
- Indizes (Volltext, Vektor, Graph)
- Budgeted Reads
- Wartungsjobs
- Lineage
- Cascade Forget
- Store (Speicher)
Ein Tree mit Verlauf, auf bewährten Dateisystem-Snapshots, Git oder versioniertem Objektspeicher. Er versteht weder Gedächtnis noch Labels.
- Tree
- Commit
- Agent Branch
- Dateisystem-Snapshots
- Git
- Objektspeicher
Replikation und Teilen zwischen Knoten. Absichtlich zuletzt: Bringen Sie zuerst einen einzelnen Knoten in Ordnung.
- Git-Remotes
- Snapshot-Transfer
- Lease-Links
- Übergabepakete
- Die Memory-Schicht ist wiederaufbaubar. Löschen Sie alle Indizes und bauen Sie neu auf: Die Notizen im Store bleiben vollständig lesbar.
- Gateways sind zustandslos. Aller persistente Zustand liegt im Store und in den Protokollen von Trust; ein Gateway darf jederzeit neu starten und lässt sich horizontal skalieren.
- Trust ist die einzige Autorisierungsstelle. Dazu zählen auch die Hintergrundjobs des NAS (Indexierung, Wartung): Auch sie laufen als
svc:*-Principals mit Leases. - Store versteht weder Gedächtnis noch die Semantik von Labels. Er hält nur einen Tree mit Metadaten.
- Erst protokollieren, dann handeln. Eine folgenreiche Operation muss zuerst einen Absichtseintrag schreiben.
Die schmale Taille: sechs Kernbegriffe
Der gesamte Entwurf hängt an sechs Kernbegriffen; Labels, Gates, Gedächtnis und Lesemanifeste sind Konventionen, die darauf aufbauen.
| Begriff | Bedeutung | Zentrale Invariante |
|---|---|---|
| Tree | Ein Verzeichnisbaum mit Verlauf. | Jeder Commit lässt sich reproduzieren; es gibt einen Inhalts-Hash oder eine gleichwertige Änderungserkennung. |
| Commit | Eine unveränderliche Änderung. | Trägt Provenienz-Metadaten: principal, on_behalf_of, run, lease. |
| Principal | Eine Entität, die authentifiziert und zur Verantwortung gezogen werden kann. | Typ ist human, agent, service oder node; ein agent gehört zu einer Rolle, nicht zu einer einzelnen Ausführung. |
| Run | Eine Ausführung mit Anfang, Ende, Zweck und einem Verantwortlichen. | Hält genau eine Wurzel-Lease; besitzt genau einen Branch. |
| Lease | Die Autorisierung einer Ausführung. | Hat ein Ablaufdatum; kann nur enger werden; widerrufbar; trägt Budgets. |
| Record | Ein Append-only-Eintrag. | Per Hash verkettet; erst protokollieren, dann handeln. |
Die Store-Schicht: Vertrag und mögliche Engines
Der Store-Vertrag wird von einer Engine bereitgestellt oder vom Gateway nachgebildet. Eine Implementierung darf Engines kombinieren, zum Beispiel Git für Text und Snapshots für große Dateien; der Vertrag schreibt weder die Engine noch die Hash-Funktion noch das On-Disk-Format vor.
- Atomare Commits.
- Günstige Forks: idealerweise nahe an O(1); schlimmstenfalls als Kopie, dann sind Kontingente und eine TTL Pflicht.
- Unveränderliche Snapshots.
- Änderungserkennung: ein Inhalts-Hash oder Gleichwertiges.
- Die Differenz zwischen zwei Commits.
- Vollständiger Export in einem Standardformat: ein Verzeichnis, Git-Verlauf und die Klartext-Metadaten in
.nas/.
| Engine | Geeignet für | Fork-Kosten | Hinweis |
|---|---|---|---|
| Git (mit Worktrees) | Text, Gedächtnis, Skills, kleine Codebasen | Gering | Große Dateien brauchen LFS oder externen Speicher; Binär-Merges sind schlecht. |
| Dateisystem-Snapshots und -Clones (ZFS, btrfs, APFS) | Große Verzeichnisse, gemischte Dateien | Etwa O(1) | Hängt vom Dateisystem ab; Kopieren zwischen Maschinen braucht send/receive. |
| Versionierter Objektspeicher (Tigris-Forks, lakeFS, S3 plus Manifest) | Datensätze, große Dateien | Etwa O(1) | Das Gateway muss eine Dateiansicht bereitstellen. |
| Einfaches Verzeichnis plus Kopie | Einstieg mit Lite | O(n) | Nur für kleine Datenmengen; Kontingente und eine TTL sind Pflicht. |
Der Wiederherstellungspfad liegt außerhalb des Schadensradius
Snapshots und Backups gehören dem Eigentümer-Principal, und keine Lease darf „einen Snapshot löschen“ oder „ein Backup löschen“ enthalten. Das ist die direkteste Lehre aus dem Vorfall vom April 2026: Der Wiederherstellungspfad muss außerhalb des Schadensradius dessen liegen, was er schützt.
- Verschlüsselung im Ruhezustand kommt von der darunterliegenden Schicht; die Aufbewahrungsklasse
sensitivehat eine eigene Schlüsseldomäne und lässt sich daher durch Zerstören des Schlüssels vernichten. - Deduplizierung und Vernichtung stehen im Konflikt: Die Klasse
sensitivewird nicht über Schlüsseldomänen hinweg dedupliziert.
Die Reise einer Ausführung
- Anfordern. Der Orchestrator (oder der Eigentümer) fordert für eine Ausführung eine Lease an: Pfade, Aktionen, Ablauf, Zweck. Innerhalb des Richtlinienrahmens wird sie automatisch ausgestellt; außerhalb geht sie an ein Human Gate.
- Starten. Das NAS legt den
runund den Branch<role>/<run_id>an und übergibt die Lease an die Ausführung; die Sandbox bindet den Branch ein (oder führt eingit cloneaus). - Arbeiten. Der Agent liest und schreibt mit gewöhnlichen Dateiwerkzeugen. Lesezugriffe sammeln sich im Lesemanifest, und die Sitzungskontamination wird entsprechend aktualisiert; Zugriffe außerhalb der Grenzen werden abgelehnt und protokolliert.
- Committen. Änderungen werden automatisch (entprellt) oder ausdrücklich committet, und jeder Commit trägt Provenienz-Metadaten.
- Vorschlagen.
proposeerzeugt einen Agent PR: den Diff, die Absicht, eine Zusammenfassung des Lesemanifests, Prüfergebnisse und eine Zusammenfassung der Labels. - Entscheiden. Die Richtlinien-Engine entscheidet: Bestehen die Prüfungen und ist das Risiko gering, wird automatisch gemergt; geht es um geschützte Daten, eine nach außen gerichtete Aktion oder einen Verstoß gegen die Zweierregel, geht es an ein Human Gate; ist etwas eindeutig verboten, wird abgelehnt.
- Mergen und protokollieren. Der Merge erzeugt einen Commit mit Provenienz und schreibt einen Record.
- Abschließen. Die Lease läuft ab; der Branch wird nach seiner TTL in den Papierkorb verschoben; Lesemanifeste und Records werden nach der Aufbewahrungsrichtlinie vorgehalten.
Der Lesepfad: Anfrage, Lease-Prüfung, Label-Prüfung (erlaubt die aktuelle Sitzungskontamination dieses Lesen?), Budgetzählung, Lesen aus dem Store, Eintrag im Lesemanifest, Inhalt und Belegzeiger zurückgeben.
Erst protokollieren, dann handeln
Eine folgenreiche Operation (Merge, Löschen, Teilen, Egress, Lease-Änderung) muss zuerst einen Absichtseintrag schreiben; lässt er sich nicht schreiben, schlägt die Operation fehl (fail closed). Lesezugriffe gehen in das Lesemanifest, das stapelweise geschrieben wird und nicht pro Lesezugriff synchron sein muss.
Einsatzformen
| Form | Beschreibung | Geeignet für |
|---|---|---|
| Lite | Einzelner Rechner, einzelner Nutzer: ein Gateway-Prozess plus lokaler Speicher (Git oder Dateisystem-Snapshots); L0 bis L1. | Privatpersonen und Entwickler beim Ausprobieren. |
| Overlay | Lässt das vorhandene NAS oder den Objektspeicher unangetastet: Ein Gateway sitzt davor und verwaltet nur ein einziges Verzeichnis oder einen Bucket; Mounts und die S3-Ansicht laufen über das Gateway. | Der realistischste Einstieg: Wer schon eine Box hat. |
| Team | Mehrere Nutzer und Agenten, ein Server oder ein kleiner Cluster; L0 bis L3; Gate-Benachrichtigungen und ein Leitstand. | Kleine Teams. |
| Cloud | Ein gehosteter mandantenfähiger Dienst mit starker Isolation; L0 bis L3. | Wer keine eigene Hardware hat. |
Das Prinzip: Spezielle Hardware ist nicht nötig, jeder dauerhaft laufende Rechner genügt; Beschleuniger sind optional, denn für Embeddings und Zusammenfassungen reichen kleine Modelle, und externe Dienste lassen sich ebenfalls aufrufen.
Ein v0 aus vorhandenen Bausteinen bauen
| Fähigkeit | Bausteine, die es heute schon gibt |
|---|---|
| Store und Branches | Git und Worktrees; btrfs- oder ZFS-Snapshots; oder Tigris und lakeFS (Objektspeicher). |
| Geschützte Hauptlinie | Branch-Schutz in Forgejo, Gitea oder GitHub; oder geschützte Branches in lakeFS. |
| Leases | Ein OAuth-Autorisierungsserver (zum Beispiel Keycloak) mit Token Exchange und ein Resource Server, der Pfadpräfix und Aktion prüft; oder ein Signaturdienst von ein paar hundert Zeilen. |
| Records | Eine Append-only-SQLite-Tabelle plus ein täglicher Hash; Git-Trailer in Commits; OpenTelemetry-Export. |
| Gates | PR-Review plus eine Push-Benachrichtigung; die CLI nas gate approve. |
| Gedächtnis | Markdown unter memory/ plus SQLite FTS5; einen Vektorspeicher können Sie später ergänzen. |
| Labels | Das Importverzeichnis als external markieren; die Sitzungskontamination pro Ausführung im Gateway halten. |
| Schnittstellen | NFS-, SMB- oder FUSE-Mount; Git über SSH oder HTTPS; ein S3-Gateway; ein kleiner MCP-Server. |
Was diese Tabelle sagt: L0 und L1 brauchen keine neue Erfindung. Neu ist der Vertrag, der sie verbindet, und die Tests, die ihn überprüfen; siehe die Spezifikation.
Betrieb
- Backups: 3-2-1; Snapshots und Backups gehören dem Eigentümer-Principal, und keine Lease darf sie berühren; üben Sie jedes Quartal eine Wiederherstellung und halten Sie sie im Protokoll fest.
- Upgrades: Gateways sind zustandslos und lassen sich schrittweise aktualisieren; jede Änderung des Store-Formats muss mit einem Migrations- und Rollback-Plan kommen; die Memory-Schicht lässt sich als Ganzes neu aufbauen.
- Überwachung: Raten der Lease-Ausstellung und -Ablehnung; Länge der Gate-Warteschlange und Freigabequote (bleibt die Freigabequote über 95 %, sind Gates zu häufig und sollten zusammengelegt oder die Richtlinie verschärft werden); Anzahl und Alter der Branches; Aktualität der Indizes; Prüfung der Record-Kette; Kontingente.
- Kapazität: Branches haben eine TTL und Kontingente; der Papierkorb hat eine Aufbewahrungsfrist; abgeleitete Daten haben ein Budget.
Der Leitstand
Die Oberfläche für Menschen kann eine Webseite, eine CLI oder ein Chatbot sein. Sie ist nicht zwingend: L0 bis L1 können vollständig mit einer CLI und einer vorhandenen Git-Plattform laufen.
- Aktivitätsverlauf: nach Ausführung aggregiert: wer was getan hat und was gelesen wurde.
- Gate-Posteingang: Aktionen, die auf Freigabe warten, als Gate Cards dargestellt.
- Rollenverzeichnis: Home, Leases, Budgets und letzte Ausführungen jeder Rolle.
- Gedächtnis-Browser: Notizen und Quellen, die Quarantäne ungeprüfter Notizen, Wartungsvorschläge.
- Branches und PRs: nicht gemergte Branches und der Papierkorb.
- Vergessen-Konsole: Anfragen, eine Lineage-Vorschau und Berichte.
Menschen können auch direkt über SMB oder WebDAV nachsehen: /humans/<user>/Agent Activity/ ist eine schreibgeschützte Aktivitätsansicht aus gewöhnlichen Dateien.
Diese Seite zitieren
Stabile Adressen und ein Zitiervorschlag für Menschen, Suchmaschinen und Agenten.
- Kanonische URL
- https://agentnas.com/de/architecture/
- Markdown-Version
- https://agentnas.com/de/architecture/index.md
- Zitiervorschlag
- Agent NAS project. “Architektur.” agentnas.com, 2026-11-11. https://agentnas.com/de/architecture/