Zum Inhalt springen

Konzepte

Das Domänenmodell von kumbuka ist bewusst klein gehalten. Drei Ideen tragen es: der Gedächtniseintrag, der Scope, in dem er lebt, und der Autor, der ihn geschrieben hat.

Eine Einheit gemerkten Wissens. Ein Eintrag hat:

FeldBedeutung
idEin stabiler Surrogat-Schlüssel.
scopeDer Scope, zu dem der Eintrag gehört (siehe unten).
typeEiner der sechs festen Typen (siehe unten).
keyOptional, in Kleinbuchstaben, dot/kebab-namespaced — die Adresse, über die der Assistent einen Eintrag nachschlägt, z. B. db.system-of-record.
contentDie Aussage selbst, als reiner Text.
authorEin Mensch (dessen authentifizierte Identität) oder der Assistent (agent). Serverseitig abgeleitet — siehe Autorschaft.
created_at / updated_atZeitstempel.

Ein Eintrag ist eine einzelne, gut lesbare Aussage — kein Dokument. Beschränke ihn auf eine Regel, Entscheidung oder Definition.

Die Taxonomie ist bewusst klein gehalten, damit das Gedächtnis lesbar bleibt. Es gibt genau sechs Typen, und sie ändern sich nicht:

TypWofür
decisionEine getroffene Entscheidung, auf die sich das Team festgelegt hat.
conventionEine geteilte Standardvorgehensweise.
constraintEine harte Grenze, die nicht überschritten werden darf.
open_questionEtwas Ungeklärtes; braucht einen Verantwortlichen und eine Antwort.
glossaryEin Begriff, so definiert, dass alle dasselbe meinen.
statusDer aktuelle Stand von etwas in Bewegung.

Ein Scope ist ein Container von Einträgen mit einer Zugriffs-Art (kind). Er hat einen Surrogat-Primärschlüssel, einen eindeutigen und unveränderlichen Slug (die Adresse, die Assistent und UI verwenden), einen Anzeigenamen, eine Art, eine Beschreibung und ein archived-Flag (schreibgeschützt).

ArtSichtbarkeitHinweise
globalTeamweitGenau einer pro Organisation — die stets aktive Baseline, die der Assistent zuerst liest. Kann nicht erstellt oder entfernt werden.
projectTeam-geteiltViele; unterteilen das geteilte Gedächtnis in Räume (z. B. billing-platform). Mitglieder lesen/schreiben; Admins verwalten.
privateNur EigentümerEiner pro Mitglied. Nur durch seinen Eigentümer über die MCP-Oberfläche erreichbar. Erscheint nie in der Konsole oder einer admin-/teamseitigen API.

Der einzelne global-Scope ist fest. project-Scopes werden erstellt, um das geteilte Gedächtnis zu organisieren; wer sie erstellen darf, ist eine Team-Richtlinie (siehe Konfiguration). private steht jedem Mitglied jederzeit direkt zur Verfügung und ist nie das Standard-Schreibziel des Teams.

Der Slug eines Scopes ist auch über Umbenennungen hinweg unveränderlich, sodass die Adresse, die ein Assistent speichert, gültig bleibt.

Der Autor eines Eintrags ist entweder ein Mensch oder der Assistent (agent), und die Herkunft wird serverseitig aus dem Schreibkanal abgeleitet — niemals aus einem vom Client gelieferten Flag:

  • Schreibvorgänge über die Konsole werden dem angemeldeten Menschen zugeschrieben.
  • Schreibvorgänge über die MCP-Oberfläche werden als „über Assistent” markiert (source = mcp), wobei weiterhin das echte menschliche Subjekt hinter der Sitzung erfasst wird.

Es gibt keinen separaten Login für den Assistenten, und kein Client kann einen anderen Autor angeben als den Kanal, über den er geschrieben hat. Das „agent”-Abzeichen der Konsole bedeutet einfach, dass der Eintrag über MCP eingegangen ist.

Der Assistent interagiert mit diesen Konzepten über fünf MCP-Tools (memory_remember, memory_recall, memory_forget, memory_scopes, memory_load_context). Wo ein neuer Eintrag landet, wenn kein Scope genannt wird, regelt die Standard-Schreib-Scope-Richtlinie des Teams. Siehe MCP-Tools und Konfiguration.