Rückblick-Denkspeicher für OpenCode, Cursor und andere Coding-Agenten

Projektgedächtnis, das über Sitzungen hinweg besteht.

Inhaltsverzeichnis

Jede Coding-Agent-Session beginnt ohne Kontext. Die Benennungsregel vom letzten Dienstag und die Analyse des Fehlers befanden sich im Chat – und der Chat ist weg. Die nächste Session beginnt mit einer leeren Leinwand, und Sie erklären alles erneut.

Die unten aufgeführten Befehle entsprechen Version 0.8.4 von @vectorize-io/hindsight-coding-agents, veröffentlicht am 30.10.2026, welches von @vectorize-io/hindsight-all ^0.10.2 abhängt. Das Paketverhalten, die Cloud-Tarife und Memory Defense auf dieser Seite wurden am 03.11.2026 überprüft. Andere Möglichkeiten, Fakten über mehrere Sitzungen hinweg beizubehalten, finden Sie auf den Seiten zu [KI-System-Speicher](https://www.glukhov.org/de/ai-systems/memory/ „Hub für dauerhaftes Wissen und Gedächtnis in KI-Systemen – Anbieter für Agentenspeicher, Wissensgraphen und Schreibpfad-Steuerungen.“).

![Eigenes Self-Hosting-Setup zu Hause mit Schreibtisch, Laptop, Serverrack und französischer Tür](/img/selfhosting-servers-at-home.jpg „Eigenes Self-Hosting-Setup zu Hause mit Schreibtisch, Laptop, Serverrack und französischer Tür“)

Ein Coding-Agent kann das Repository lesen, Tests ausführen und den Code ändern. Er sieht trotzdem keine Entscheidung, die nie in der Datei gelandet ist, die er gerade geöffnet hat. Nehmen wir an, der Exportfehler wurde letztes Jahr untersucht: Übliches CSV-Quoting wurde versucht und zurückgerollt, weil das empfängende ERP führende Nullen entfernt, und das einzige funktionierende Format ist die Excel-Textformel-Form.

Die Coding-Agents-Dokumentation von Hindsight richtet sich an genau diese Art von Entscheidung, die in einer Commit-Nachricht oder einem früheren Chat lebt. Das Plugin kopiert aktuelle Commit-Nachrichten in einen Speicherbank (Memory Bank), schreibt die Sitzung beim Arbeiten zurück und bewahrt fünf Seiten auf, damit die nächste Session von dort aus starten kann. OpenCode, der Cursor CLI, Claude Code und die anderen in dem Paket aufgeführten Tools teilen sich diese Bank für ein Repository.

Was das Coding-Agents-Plugin ist

Eine ältere Installation sollte weiter mit dem Server kommunizieren, den Sie bereits ausgewählt haben. hindsight-claude-code, hindsight-cursor-cli und hindsight-codex sind die Pakete, die dieses ersetzt. Wenn ~/.hindsight/claude-code.json oder ~/.hindsight/codex.json noch auf der Festplatte liegt, kopiert install die API-URL und das Token aus dieser Datei, und eine leere URL bedeutet weiterhin den lokalen Daemon. Das zu installierende Tool wird zuerst gelesen, sodass eine Codex-Installation den Codex-Server beibehält, selbst wenn eine alte Claude-Datei daneben liegt. Cursor CLI, Copilot CLI, OpenCode und Cline haben nie eine Endpunkt-Datei geschrieben, daher haben diese Installationen keinen Server zum Kopieren.

Alte Recall- und Retain-Einstellungen wie bankMission, retainMission und dynamicBankGranularity bleiben unverändert. Die Coding-Agents-Dokumentation besagt, dass sie eine Pipeline beschreiben, die durch dieses Paket ersetzt wurde, und eine Neubewertung wäre reine Spekulation. Stattdessen erhalten Sie eine Bank pro Repository, coding-agent::{gitProject}, geteilt von jedem Tool, das diesen Checkout öffnet. Um wieder jedem Tool seine eigene Bank zuzuweisen, setzen Sie die Vorlage, die die Dokumentation als passend zu den alten Namen beschreibt:

{ "bankIdTemplate": "{harness}::{gitProject}" }

Die Ausführung von npx @vectorize-io/hindsight-coding-agents install ohne Toolnamen gibt die Liste aus und schreibt nichts. install all ist der Befehl, der jedes erkannte Tool verdrahtet. update ersetzt die Kopie unter ~/.hindsight/coding-agents und lässt die eigene Konfigurationsdatei jedes Tools unberührt. autoUpdate führt diesen Austausch einmal pro Tag im Hintergrund durch; eine Veröffentlichung, die einen neuen Hook hinzufügt, benötigt jedoch weiterhin install, da die Hintergrundaktualisierung diese Konfigurationsdateien nicht bearbeitet. Wenn Hindsight eine Option unter mehreren Backends ist, stellt der [Vergleich der Agentenspeicher-Anbieter](https://www.glukhov.org/de/ai-systems/memory/agent-memory-providers/ „Vergleich von Hermes- und OpenClaw-Speicherbackends – Mnemosyne, Honcho, Mem0, Hindsight und lokale Optionen – nach Erfassungsrichtlinie, Abhängigkeiten und Self-Hosting.“) ihn Honcho, Mem0 und Mnemosyne gegenüber.

Wählen Sie aus, wo der Speicher lebt

Die Bank muss an einem bestimmten Ort existieren, bevor eine Session eine Entscheidung speichern kann. An einem Terminal fragt install einmal: Hindsight Cloud, ein Server, den Sie bereits betreiben, oder ein Daemon auf demselben Computer wie der Coding-Agent. Ein Skript übergeht --server. Ein späterer install-Befehl fragt nicht erneut und lässt einen bereits benannten Server unberührt, es sei denn, Sie übergeben --server, um ihn zu ändern.

Modus Was läuft Was Sie bereitstellen Was den Computer verlässt
cloud Hindsight Cloud. Standard-API-Basis https://api.hindsight.vectorize.io Ein API-Token Prompts, von dem Plugin erfasste Git-Texte und extrahierte Erinnerungen, an diese API gesendet
self-hosted Ein Hindsight-Server, den Sie bereits betreiben Seine URL, konventionell http://localhost:8888 An diese URL gesendet. Eine localhost-URL bleibt auf dem Rechner
daemon Ein lokaler hindsight-embed, den das Plugin bei 127.0.0.1:9077 startet uv auf PATH, und ein LLM für die Faktenextraktion Bankdaten bleiben auf dem Rechner. Die Extraktion ruft weiterhin dasjenige LLM auf, das dem Daemon zugewiesen ist
npx @vectorize-io/hindsight-coding-agents install opencode --server daemon
npx @vectorize-io/hindsight-coding-agents install opencode --server self-hosted --api-url http://localhost:8888
npx @vectorize-io/hindsight-coding-agents install opencode --server cloud --api-token YOUR_TOKEN
flowchart LR A[Coding agent] --> P[coding-agents plugin] P --> B["Bank coding-agent::{gitProject}"] P --> M{serverMode} M --> C[Hindsight Cloud] M --> S[Self-hosted API :8888] M --> D["hindsight-embed 127.0.0.1:9077"]

Der Daemon bindet 127.0.0.1:9077 und lässt Port 8888 für einen Hindsight-Server frei, den Sie selbst betreiben. Wenn bereits etwas auf 9077 lauscht, verwendet das Plugin diesen Prozess für jedes Coding-Tool und jedes Repository, und das Schließen einer Sitzung lässt ihn laufen. Der erste Start lädt hindsight-embed herunter und lädt Modelle im Hintergrund, da ein Hook nicht so lange warten darf. Bis der Port antwortet, hat diese Sitzung eine oder zwei Runden lang kein Gedächtnis, ebenso wie ein unerreichbarer Cloud- oder Self-Hosted-Server eine Session ohne Gedächtnis lässt.

Linux und Windows installieren litellm, das die API mitzieht, aus Wheels. macOS kompiliert es, weil es kein macOS-Wheel gibt, und die Kompilierung benötigt eine aktuelle Rust-Toolchain von rustup. Das Umwandeln eines Transkripts in Erinnerungen benötigt weiterhin ein Chat-Modell: HINDSIGHT_API_LLM_PROVIDER, wenn Sie es gesetzt haben, andernfalls der erste Schlüssel unter OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY und GROQ_API_KEY, andernfalls die Claude Code CLI. Jede HINDSIGHT_API_*-Variable wird an den Daemon weitergeleitet. Das Embedding-Modell, der Reranker, ein lokaler OpenAI-kompatibler Server und ein Bank-Backup finden Sie in [Hindsight für Hermes Agent](https://www.glukhov.org/de/ai-systems/hermes/hindsight-for-hermes-local-llms/ „Hindsight für Hermes mit Docker und PostgreSQL bereitstellen. Lokale Embeddings und Reranker auswählen, Auto-Retain steuern und die Bank sichern.“). Wenn serverMode auf self-hosted gesetzt ist, ist --api-url die Basis-URL dieses Servers.

Die Preisliste von Vectorize beschreibt die Self-Hosted-Ausgabe als MIT-lizenziert, ohne Sitzgebühren und ohne Token-Gebühren. Cloud berechnet jede Operation. Die Sätze finden Sie im letzten Abschnitt.

OpenCode verdrahten

OpenCode muss installiert sein, bevor das Plugin sich daran andocken kann. Die [OpenCode-Schnellstartanleitung](https://www.glukhov.org/de/ai-devtools/opencode/ „OpenCode installieren, einen Modell-Anbieter verbinden und die CLI sowie die benutzerlevel-Konfiguration nutzen, die das Plugin schreibt.“) deckt diese Installation ab. Dann richten Sie das Plugin auf den Daemon aus:

npx @vectorize-io/hindsight-coding-agents install opencode --server daemon

Der Installationsassistent schreibt einen Plugin-Pfad in die Benutzerdatei ~/.config/opencode/opencode.json, gerichtet auf ~/.hindsight/coding-agents. Das ist separat von einer Projekt-opencode.jsonc. OpenCode lädt hindsight_*-Werkzeuge von diesem Pfad und benötigt keinen MCP-Server. OpenCode 2 (npm @opencode/cli, Installationsziel opencode2) liest dieselbe Datei. Die Installation entweder CLIs verdrahtet beide, und die Deinstallation entweder entfernt den Eintrag. OpenCode v1 lehnt die Datei ab, wenn sie den plugins-Schlüssel von v2 enthält, daher schreibt der Installationsassistent einen einzelnen Pfad und jede CLI lädt ihren eigenen Einstiegspunkt aus dem Paket.

Bei OpenCode 2 läuft die nur-lesende Untersuchung des Repositories unter einem anderen installierten Tool, weil ein v2-Plugin den nur-lesenden Agenten nicht definieren kann, den diese Untersuchung benötigt, und die „seeded“-Meldung geht ins Plugin-Log, weil ein v2-Plugin kein Toast anzeigen kann. Recall, die hindsight_*-Werkzeuge und das Zurückschreiben der Sitzung funktionieren wie bei v1.

OpenCode liest ~/.hindsight/coding-agent.json, wenn der Arbeitsbereich geladen wird, sodass eine Änderung an dieser Datei erst nach einem Neustart von OpenCode wirksam wird. Ein neues apiToken ist die Ausnahme bei jedem Tool: Der Client liest es erneut, wenn der Server eine Anfrage ablehnt, sodass ein Schlüsselwechsel diesen Neustart nicht erfordert.

Um zu sehen, ob die Bank tatsächlich eine Entscheidung aufbewahrt hat, nutzen Sie zwei Sitzungen in einem Repository, bei dem Sie etwas speichern möchten:

  1. Starten Sie dort OpenCode und benennen Sie eine einmalige Entscheidung, z. B. einen öffentlichen Fehlercode, den Sie nicht geändert haben möchten.
  2. Beenden Sie die Sitzung. OpenCode schreibt das Transkript während der Sitzung und spült die letzte Antwort, wenn sie inaktiv ist.
  3. Starten Sie eine neue Sitzung im selben Verzeichnis und fragen Sie nach diesem Code und nach dem Ort, an dem er entschieden wurde.
  4. Bitten Sie den Agenten, hindsight_sync_status aufzurufen. "synced": true bedeutet, dass die initialisierte Erinnerung abgefragt werden kann. Dasselbe Ergebnis meldet, wie aktuell die Git-Kopie ist und wie viele Untersuchungs-Dokumente gelandet sind (surveyDocs, von 0 bis 4).

Wenn die zweite Sitzung keine Erinnerung an den Code hat, suchen Sie in ~/.hindsight/coding-agents-logs/. plugin.log ist der lesbare Verlauf, diag.jsonl protokolliert jedes Reflect und jede Seitenabfrage, und usage.jsonl protokolliert, welche hindsight_*-Werkzeuge die Runde aufgerufen hat. npx @vectorize-io/hindsight-coding-agents stats fasst diese Nutzungsdatei pro Agent zusammen. Wenn ein Reflect eine Time-out hat oder einen 5xx zurückgibt, protokolliert diag.jsonl eine Suche in den Wissensseiten und, wenn keine Seite übereinstimmt, einen einfachen Recall von Beobachtungen. Der Agent antwortet trotzdem. Wenn diese Fallbacks ebenfalls fehlschlagen, hat diese Runde nichts aus der Bank vor sich.

Cursor und die anderen Agenten verdrahten

Cursor tritt über seine CLI der gleichen Bank bei. Der Installationsassistent schreibt Hooks und MCP unter ~/.cursor:

npx @vectorize-io/hindsight-coding-agents install cursor-cli --server daemon

Das schreibt Hooks in ~/.cursor/hooks.json, einen MCP-Server in ~/.cursor/mcp.json und einen Begleit-Skill. Jeder Hook ist ein kurzlebiger Prozess, daher gilt eine Änderung an coding-agent.json beim nächsten Prompt. Der MCP-Prozess liest die Datei beim Start, daher sehen die hindsight_*-Werkzeuge die Änderung in der nächsten Sitzung.

[Claude Code](https://www.glukhov.org/de/ai-devtools/claude-code/ „Claude Code installieren und die settings.json-Priorität lesen, bevor der Hindsight-Installationsassistent benutzerlevel-Hooks hinzufügt.“) erhält dieselbe Hook- und MCP-Verdrahtung in Claudes Dateien. install claude-code fügt drei Hooks zu ~/.claude/settings.json hinzu, registriert MCP für Ihren Benutzer über claude mcp add und installiert ~/.claude/skills/hindsight-coding-agent. Dieser Skill ist es, was Claude liest, wenn Sie es bitten, etwas in Hindsight zu speichern. Codex CLI (install codex) schreibt drei Hooks in ~/.codex/hooks.json und einen [mcp_servers]-Block in config.toml, und diese Hooks laufen nur, wenn codex_hooks true ist.

Tool Installationsziel Verdrahtung Wie der Agent den Speicher erreicht
OpenCode opencode ~/.config/opencode/opencode.json Native Werkzeuge, kein MCP
OpenCode 2 opencode2 Gleiche Datei wie OpenCode Native Werkzeuge, kein MCP
Cursor CLI cursor-cli ~/.cursor/hooks.json, ~/.cursor/mcp.json, Begleit-Skill Hooks plus MCP
Claude Code claude-code Drei Hooks in ~/.claude/settings.json, MCP auf Benutzerebene, Skill unter ~/.claude/skills/ Hooks plus MCP
Codex CLI codex ~/.codex/hooks.json, [mcp_servers] in config.toml Hooks plus MCP
pi pi Erweiterung in ~/.pi/agent/settings.json, Skill unter ~/.pi/agent/skills Native Werkzeuge, kein MCP

Kilo, Copilot CLI, Cline, Devin CLI und die anderen Namen auf der Coding-Agents-Seite nutzen denselben install <name>-Befehl, und sie teilen sich die Bank desjenigen Repositories, das Sie öffnen. Devin CLI wird auf Node älter als 22.5 nicht installiert, weil seine Hooks die Sitzungsdatenbank über node:sqlite lesen. pi und Prime Agent müssen diesen install-Befehl ebenfalls verwenden. pi install npm:@vectorize-io/hindsight-coding-agents bleibt unverdrahtet: Beide Tools lesen einen pi-Schlüssel in package.json, und dieser Schlüssel kann auf nur einen Eintrag zeigen.

Um Claude Code daran zu hindern, in die Bank zu schreiben, während OpenCode es weiterhin tut, setzen Sie disabled für dieses Tool:

{
  "serverMode": "daemon",
  "harnesses": {
    "claude-code": { "disabled": true }
  }
}

Claude Code speichert dann nichts, ruft nichts ab und erhält keine Hindsight-Werkzeuge. retainSessions auf false gesetzt, für jedes Tool oder für eines davon, stoppt das Speichern von Transkripten und das Importieren alter. Recall, Git-Verlauf und die Speicherwerkzeuge funktionieren weiterhin, sodass Sie weiterhin fragen können, was bereits gespeichert ist.

Banks pro Repository und Wissensseiten

OpenCode und der Cursor CLI auf einem Checkout sollten dasselbe Projekt erinnern. Der Bankname, der das tut, ist coding-agent::{gitProject}. {gitProject} ist der Verzeichnisname des Haupt-Git-Checkouts, aus git rev-parse --git-common-dir, sodass ein verknüpfter Worktree dieselbe Bank wie dieser Checkout verwendet. Ein Verzeichnis, das kein Git-Repository ist, nimmt den Namen des Verzeichnisses an, in dem die Sitzung gestartet wurde.

Ein Verzeichnis, das eine andere Bank verwenden soll, wird in mapPathToBank aufgeführt. Sie geben einen absoluten Pfad an, der am längsten übereinstimmende Pfad gewinnt, und das Auflisten des Repository-Wurzelelements deckt jedes Unterverzeichnis darunter ab. Diese Map überschreibt alles andere, einschließlich einer festen bankId. Setzen Sie bankId, wenn jedes geöffnete Verzeichnis in eine von Ihnen benannte Bank schreiben soll. dynamicBankId auf false gesetzt, hält die Auflösung auf dieser statischen Bank anstelle von bankIdTemplate.

Wenn der Agent mit cd in ein Verzeichnis wechselt, das zu einer anderen Bank gehört, werden Runden von dort an in der neuen Bank gespeichert. Bereits gespeicherte Runden bleiben dort, wo sie geschrieben wurden. Jeder Wechsel ist eine Warnung in plugin.log.

Das erste Mal, wenn Sie ein Repository öffnen, hat diese Bank keine der vergangenen Entscheidungen des Projekts. Die Sitzung kopiert aktuelle Commit-Nachrichten hinein, wobei eine Wahl, die nur in Git existiert, zu etwas wird, an das sich die nächste Sitzung erinnern kann. Die Kopie ist standardmäßig aktiv (autoSeed). Ein volles Schreiben dieses Dokuments behält die neuesten Commits bei, zwischen der Hälfte von seedLimit und seedLimit (300). Das Fenster verschiebt sich in Schritten der Hälfte, und das Log sagt, wie viele ältere Commits es verworfen hat.

gitIngest wählt aus, wie viel von diesem Git-Verlauf gespeichert wird, sowohl für die erste Kopie als auch für Commits, die Sie später machen. "message" speichert Commit-Nachrichten und aktualisiert das Dokument, wenn HEAD einen Commit enthält, den das Dokument nicht hat. "full" speichert zusätzlich den Diff jedes Commits, neueste zuerst. "none" lässt Git außer Acht. Ein späterer Commit fügt seine eigene Nachricht hinzu. Das gesamte Dokument wird erneut geschrieben, immer noch innerhalb dieses seedLimit-Fensters, wenn der gespeicherte Commit kein Vorläufer von HEAD mehr ist, wenn mehr als seedLimit Commits neu sind oder wenn der Server nicht sicher anhängen kann.

Commit-Nachrichten zeigen nicht, wie der Code jetzt aufgebaut ist, daher kann dieselbe erste Sitzung auch den Baum durchlaufen. Dieser Durchlauf ist codebaseSurvey, standardmäßig aktiv. Das verwendete Coding-Tool führt ihn aus, wenn seine CLI einen nur-lesenden Agenten beherbergen kann; andernfalls führt ein anderes installiertes Tool ihn aus.

Bei Claude Code ist der Durchlauf claude -p, und surveyBudgetUsd (Standard 2) stoppt die Ausgaben. Andere Tools verwenden das Modell, auf das sie bereits ausgerichtet sind, innerhalb ihrer eigenen nur-lesenden Sandbox. Nach 20 neuen Commits (surveyRefreshCommits) wird der Durchlauf erneut ausgeführt. Setzen Sie dies auf 0, und es läuft nur auf einer Bank, die noch nie untersucht wurde.

Hinweis: Der Durchlauf startet einen separaten Coding-Agenten, z. B. headless OpenCode. Diese Aufrufe gehen an das Modell dieses Agenten, daher verlangsamt HINDSIGHT_API_LLM_MAX_CONCURRENT auf "1" eingestellt, sie nicht. Wenn das Modell ein self-gehosteter Server ist, der bereits Ihre Sitzung beantwortet, ist die Untersuchung ein zweiter vollständiger Durchlauf auf demselben Server. Setzen Sie codebaseSurvey auf false, wenn der Server es nicht verkraftet.

Die nächste Session startet von fünf Seiten aus anstatt jedes gespeicherte Fakt erneut zu lesen. Jede Seite wird aus einer Wissens-Ebene synthetisiert, sodass sie nur die Fakten liest, die der Extraktor an diese Ebene geroutet hat.

Seite Was sie beantwortet Tag
Komponenten-Map Hauptkomponenten, ihre Verantwortlichkeiten und wie sie voneinander abhängen knowledge:component
Kernkonzepte Domänenabstraktionen und der Wortschatz, den ein Entwickler kennen muss knowledge:concept
Konventionen und Muster Wie dieses Projekt testet, Fehler behandelt, benennt, Code strukturiert und Änderungen vornimmt knowledge:convention
Wichtige Entscheidungen und Begründungen Bedeutsame technische Entscheidungen und warum das Projekt es so macht knowledge:decision
Initiativen und Erweiterungen Wichtige Initiativen über die Zeit, mit Links zu erfassten Initiativ-Seiten knowledge:feature-work

Eine geteilte Minute würde alle fünf Seiten auf einmal auslösen, auf demselben Worker-Pool, der neue Erinnerungen speichert, und eine einspeisende Sitzung wartet hinter diesem Stapel. Der Standard-Zeitplan verteilt sie. pageTriggerCron ist H * * * *: Jede Seite erhält ihre eigene Minute, gehasht aus der Bank-ID und dem Seitennamen, und ein Tick ohne etwas Neues wird übersprungen. pageTriggerType auf auto-refresh gesetzt, schreibt eine Seite nach jeder Konsolidierung neu, die neues Material produziert hat. Die Dokumentation nennt das den aktuellsten und teuersten Zeitplan, eine Modell-Synthese pro Seite pro Konsolidierung. manual lässt eine Seite so, wie sie ist, bis Sie sie aktualisieren.

Eine eingebaute Seite, die Sie nicht aktualisiert haben möchten, ist false unter pages. Die bereits gespeicherte Kopie bleibt, bis Sie sie in der Control Plane löschen. source_query ersetzt die Frage, die diese Seite stellt, und das Plugin hängt die Klausel an, die die Entscheidungen einer Abhängigkeit von der Seite fernhält. Eine eigene Seite geht unter customPages und benötigt ihre eigene source_query. Ein unbekannter Name unter pages wird ignoriert, mit einer Warnung in plugin.log, sodass ein Tippfehler keine zweite leere Seite erzeugt. Der Agent zu bitten, eine Initiative zu erfassen, schreibt eine separate Seite, eine pro Initiative, über hindsight_capture_initiative.

Das Löschen der Bank auf dem Server löscht den Speicher dieses Repositories. Die nächste Session kopiert den Git-Verlauf und durchläuft den Baum erneut. Die Deinstallation des Plugins lässt die Bank dort, wo sie ist.

Geltungsbereich und Datenschutz-Steuerelemente

Das Öffnen eines Repositories erstellt eine Bank dafür, wodurch ein Client-Baum gespeichert werden kann, ohne dass Sie danach fragen. optInOnly beschränkt den Speicher auf Verzeichnisse, die Sie benennen. Überall anders erstellt das Plugin keine Bank, speichert nichts und kopiert keinen Git-Verlauf, und das Coding-Tool verhält sich so, als wäre das Plugin nicht installiert.

{
  "optInOnly": true,
  "optInPaths": ["~/prj", "~/oss"]
}

Jeder Eintrag ist ein Verzeichnispräfix, ~ wird expandiert, und jedes Repository darunter erhält weiterhin seine eigene coding-agent::{gitProject}-Bank. Ein Pfad in mapPathToBank ist ebenfalls erlaubt, weil Sie dieses Verzeichnis bereits benannt haben. Ein einzelner bankId erlaubt nichts: Er benennt eine Bank, kein Verzeichnis, daher bleiben mit optInOnly aktiv benannte Verzeichnisse draußen. Das Plugin liest keine Konfiguration aus dem Repository. Der Grund der Dokumentation ist, dass ein geklontes Repository nicht in der Lage sein darf, den Speicher zu aktivieren. Welches Verzeichnis welche Bank verwendet, bleibt in mapPathToBank. Welches Tool an oder aus ist, bleibt in harnesses. Sobald die Bank-ID bekannt ist, gehen weitere Regeln für dieses eine Repository in banks:

{
  "banks": {
    "coding-agent::secret-client": { "disabled": true }
  }
}

npx @vectorize-io/hindsight-coding-agents uninstall cursor-cli entfernt die Cursor-Hooks, den MCP-Eintrag und den Skill, die der Installationsassistent hinzugefügt hat. uninstall all tut dies für jedes verdrahtete Tool. Eine bereits existierende Datei wird vor der Bearbeitung durch den Installationsassistenten in eine .hindsight-backup daneben kopiert. Die Bank, die Datenbank des Daemons und ~/.hindsight/coding-agent.json bleiben.

Ein in einen Chat eingefügtes Token sollte keine Erinnerung werden. Memory Defense ist ein 45-Muster-Scan von Text, bevor er gespeichert wird, und bleibt aus, bis diese Bank eine Richtlinie hat. redact ersetzt einen Treffer durch einen Marker wie [REDACTED:github_token] und speichert den Rest. block wirft den übereinstimmenden Eintrag weg und gibt 422 zurück, wenn jeder Eintrag in der Anfrage übereingestimmt hat. Die Richtlinie gilt für spätere Speicherungen auf dieser Bank. Bereits gespeicherte Erinnerungen bleiben unverändert. Diese zwei Aktionen sind die Open-Source-Regel sensitive_data.

Wer den Scan aktivieren darf, ist an zwei Stellen unterschiedlich beschrieben. Der Enterprise-Post vom 03.09.2026 besagt, dass der grundlegende Scanner auf allen Plänen aktiv ist und dass die zusätzlichen Detektoren – ein Katalog von 220 oder mehr Mustern, Base64-Re-Scans, Prompt-Injection-Checks und ein LLM-Filter – Enterprise sind. Der Preisvergleich markiert Memory Defense als nur Enterprise, mit leeren Zellen für Self-Hosted und Cloud. Prüfen Sie diese Zeile auf der aktuellen Preisliste, bevor Sie darauf vertrauen, dass eine Cloud-Bank Geheimnisse entfernt.

manageBankConfig standardmäßig true, was dem Plugin erlaubt, die Bankeinstellungen zu schreiben, die seine Einspeisung benötigt, und alle Felder, die Sie in defaultBankConfig setzen. Es schreibt ein Feld nur dort, wo die Bank noch keines definiert hat, sodass ein Wert, den Sie in der Control Plane gesetzt haben, bleibt. Der Extraktionsmodus auf den eigenen Strategien des Plugins ist die Ausnahme: Er folgt retainExtractionMode in jeder Sitzung. retainContext, mit jedem Sitzungs-Zurück schreiben gesendet, sagt der Extraktion, wer den Satz gesagt hat. Der Standard benennt beide Sprecher und bittet darum, den eigenen „fixed“ oder „passes“ des Agenten als Anspruch des Agenten und nicht als Tatsache zu speichern. Wenn ein Schlussfolgerung gespeichert wird, als hätte sie jemand beobachtet, finden Sie die Wege, die die nächste Sitzung speisen, in [Selbstverstärkende Speicher-Schleifen](https://www.glukhov.org/de/ai-systems/memory/self-reinforcing-memory-loops/ „Wie gespeicherte Modell-Inferenzen zu zukünftigem Beweis werden und welche Schreibpfad-Steuerungen diese Schleife begrenzen.“).

Einstellungen für die tägliche Entwicklung

Jedes Coding-Tool liest dieselbe Datei, ~/.hindsight/coding-agent.json, daher gilt eine einmal gesetzte Begrenzung für OpenCode und Cursor. HINDSIGHT_CONFIG verschiebt diese Datei. Er erstellt nicht eine zweite. Für jede Einstellung verliert ein eingebautes Standardwert gegenüber einer Umgebungsvariablen (HINDSIGHT_API_URL, HINDSIGHT_API_TOKEN oder HINDSIGHT_<FELD> für andere Einzelwerte), was verliert gegenüber dem Kopf der Datei, dann gegenüber harnesses.<name>, dann gegenüber paths.<präfix>, dann gegenüber banks.<id>. Ein in der Datei geschriebener Wert bleibt, wenn Sie später dieselbe Umgebungsvariable setzen. retainTags und optInPaths können eine kommatgetrennte Variable sein. mapPathToBank, harnesses, paths, banks, retainMetadata und recallOptions werden nur aus der Datei gelesen.

Wenn eine Sitzung langsam, teuer oder das falsche Repository erinnert, ist die Änderung eines dieser Felder. Die Standardwerte sind aus der Coding-Agents-Referenz.

Feld Standard Wann es ändern
serverMode cloud daemon für eine lokale Bank, self-hosted für einen Server, den Sie betreiben
autoInject "reflect" "pages" oder "recall" überspringen die Session-Start-Synthese. "none" injiziert nichts; der Agent sucht Seiten und reflektiert, wenn sie zu flach sind
reflectTimeoutMs 20000 Das automatische Session-Reflect. Bei Tools, die Hooks verwenden, setzt der Installationsassistent eine 30-Sekunden-Prompt-Hook-Timeout, daher benötigt ein Wert über etwa 20 Sekunden auch das Erhöhen des timeout dieses Hooks
reflectBudget "high" Budget für das agenten-aufgerufene hindsight_reflect-Werkzeug. Das automatische Session-Reflect verwendet immer "low" und ignoriert dies
recallOptions Beobachtungen, niedriges Budget, max_tokens 2000 Schlüssel für Schlüssel zusammengeführt. Eine Bank mit deaktivierter Konsolidierung erzeugt keine Beobachtungen, und der Standard-Recall kommt leer zurück – setzen Sie dort "types": ["world", "experience"]
retainExtractionMode "concise" "verbose" zieht mehr Details. Die Referenz sagt, dass dies das Vielfache an Token kostet, weil jeder Stop die Sitzung zurück schreibt. "chunks" speichert Text ohne Extraktion
retainTags / retainMetadata nicht gesetzt Auf einer geteilten Bank, project:{gitProject} stempeln, damit Recalls filtern können. Die Bank-ID beantwortet bereits „welches Repo“, wenn jedes Repo seine eigene Bank hat
bankIdTemplate coding-agent::{gitProject} {harness}::{gitProject} trennt Agenten. mapPathToBank sendet einen Verzeichnisbaum an eine benannte Bank
codebaseSurvey true false, wenn die Untersuchung und Ihre Sitzung ein self-gehostetes Modell teilen. surveyBudgetUsd (Standard 2) begrenzt nur das Claude-Rezept
pageTriggerType "cron" "auto-refresh" folgt jeder Konsolidierung. "manual" lässt Seiten dort, wo sie sind
maxParallelRetains 10 Senken Sie es, wenn die API 429 zurückgibt. Die Referenz sagt, die API drosselt Bursts

Ein lokaler Daemon, der nur Repositorys unter ~/prj erinnert, Commit-Nachrichten speichert, die Repo-Untersuchung ausschaltet und neue Banks bittet, Geheimnisse zu redigieren, sieht so aus:

{
  "serverMode": "daemon",
  "optInOnly": true,
  "optInPaths": ["~/prj"],
  "gitIngest": "message",
  // codebaseSurvey startet einen anderen Coding-Agenten. HINDSIGHT_API_LLM_MAX_CONCURRENT begrenzt es nicht.
  "codebaseSurvey": false,
  "retainExtractionMode": "concise",
  "autoInject": "reflect",
  "defaultBankConfig": {
    "memory_defense": {
      "enabled": true,
      "rules": [{ "on": "sensitive_data", "action": "redact" }]
    }
  }
}

defaultBankConfig füllt memory_defense nur auf einer Bank, die es noch nicht hat, und tut nichts, wenn manageBankConfig false ist. hindsight_diagnose zeigt die Datei, wie sie jetzt ist, und die Werte, die der laufende Client tatsächlich geladen hat.

Was es kostet, und wann eine Datei ausreicht

Eine Sitzung kann beim Start drei Dinge ausgeben: ein Reflect mit niedrigem Budget auf den ersten Prompt, eine Kopie aktueller Commit-Nachrichten, begrenzt durch seedLimit, und den Baum-Durchlauf. Wenn retainSessions aktiv bleibt, wird das Transkript gespeichert, während die Sitzung läuft. Die fünf Seiten aktualisieren sich auf ihrer eigenen Minute der Stunde, wenn sich etwas geändert hat. gitIngest auf "full" gesetzt, speichert Diffs neben Nachrichten.

Die Preis-FAQ von Vectorize listet Cloud-Sätze ohne feste monatliche Gebühr und ohne Sitzpreis. Die FAQ sagt, dass neue Konten kostenlose Gutschriften erhalten, und veröffentlicht den Gutschriftsbetrag nicht.

Operation Preis
Retain 10,00 $ pro Million Token
Recall 0,75 $ pro Million Token
Reflect 0,05 $ pro Aufruf
Iris Extract 7,50 $ pro Million Token
Mental Model Retrieve 0,25 $ pro Million Token
Mental Model Refresh 0,05 $ pro Aufruf
Speicher nach 30 Tagen 0,25 $ pro Million Token pro Monat

Erinnerungen sind die ersten 30 Tage kostenlos zu speichern. Die Cloud-Übersicht sagt, dass das Erstellen oder Aktualisieren von Wissensseiten pro Aufruf berechnet wird, und die FAQ veröffentlicht keine separate Wissensseiten-Zeile. Ein Daemon oder ein Self-Hosted-Server incuriert diese Cloud-Sätze nicht. Die Extraktion gibt weiterhin aus, was das LLM des Daemons kostet, einschließlich eines Cloud-API-Schlüssels, wenn das der Schlüssel ist, den install fand.

Desselbe Dokumentationsseite berichtet einen AMB sdebench-Lauf: 61 Repository-Aufgaben, drei Läufe jeweils, mit und ohne Speicher. Jeder Lauf löste 60–61 von 61, egal mit oder ohne. Was sich bewegt, sind Korrekturen pro Aufgabe und Kosten pro Aufgabe. Die Seite sagt, dass die Korrekturzahlen Labels reproduzieren, die AMB auf seinem eigenen Chart druckt, und dass Kosten aus derselben pro-Lauf-Tabelle abgeleitet sind.

Agent Korrekturen pro Aufgabe Kosten pro Aufgabe
Claude Code 0,85 → 0,36 0,445 $ → 0,338 $
Codex CLI 1,34 → 0,47 0,577 $ → 0,276 $
opencode 1,20 → 0,80 0,634 $ → 0,553 $

Kein Speicher ist die linke Zahl. Diese drei Agenten sind die ganze Tabelle, die die Seite druckt.

Eine Regel, die Sie neben dem Code überprüft haben möchten, gehört in AGENTS.md oder CLAUDE.md. Diese Datei ist im Repository, wenn der Daemon down ist, und das Speichern speichert nicht den Chat. Die Bank trägt eine Entscheidung, die nie dort geschrieben wurde und die die nächste Sitzung weiterhin falsch macht. Auf Hermes ist ein lokaler SQLite-Speicher mit eigenen Retain-Schaltern [Mnemosyne](https://www.glukhov.org/de/ai-systems/hermes/mnemosyne-memory/ „Mnemosyne als lokalen Hermes-Speicheranbieter installieren, Recall und Retention konfigurieren und den SQLite-Speicher inspizieren.“).

Quellen

  • Coding Agents – Installationsziele, coding-agent.json-Felder, Bank-Benennung, Wissensseiten, Daemon-Modus und die sdebench-Tabelle. npm-Paket @vectorize-io/hindsight-coding-agents 0.8.4, veröffentlicht am 30.10.2026.
  • Preise – Cloud-Operationssätze, der kostenlose-Self-Hosted-Anspruch und die Plan-Matrix-Zeile für Memory Defense.
  • Memory Defense – pro-Bank-sensitive_data-Richtlinie, redact und block, 45 Muster, aus bis eine Bank-Richtlinie gesetzt ist. Vorhandene Erinnerungen bleiben ungescannt.
  • Enterprise-Features, 03.09.2026 – grundlegender Scanner beschrieben als alle Pläne; zusätzliche Detektoren beschrieben als Enterprise.

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.