Kanji
・Cloud Engineer / Freelance ・Geboren 1993 ・Aus Ehime / Wohnhaft in Shibuya, Tokio ・5 Jahre AWS-Erfahrung Profildetails
Inhaltsverzeichnis
Bei der täglichen Zusammenarbeit mit autonomen KI-Coding-Agenten (Google Antigravity, Anthropic Claude Code und AWS Kiro) stieß ich immer wieder auf denselben Engpass: „die Degradierung des Langzeitgedächtnisses und die massive Verschwendung von Kontextfenster-Tokens.“
Anfangs dachte ich – wie viele Entwickler –, dass die Bereitstellung einer Vektordatenbank wie LanceDB oder Chroma und das bloße Speichern vergangener Entscheidungen und Terminalausgaben das Problem lösen würden. Doch sobald die Wissensbasis mehrere hundert Einträge überstieg, traten in der Praxis gravierende Fehler auf:
In diesem Artikel stelle ich die vollständige Architektur unseres Gen-3-Langzeitgedächtnisses vor: Git-verwaltetes Markdown SSOT (Single Source of Truth) kombiniert mit Hybrid GraphRAG (LanceDB + SQLite FTS5 Trigram BM25 + rekursive WikiLink-CTE-Graph-Traversierung + lokaler Cross-Encoder-Reranker) .
Zudem zeige ich, wie englische System-Prompts und -Regeln den Token-Verbrauch um rund 40--50 % halbieren , während mehrsprachige Embeddings eine nahtlose zweisprachige Abfrage aus natürlicher Sprache ermöglichen – untermauert durch 554-Chunk-Benchmarks auf einem Apple M5 Mac.
Die Speicherarchitekturen von KI-Agenten haben drei Generationen durchlaufen:
.md
memory_save
Wenn Agenten unstrukturierte Zusammenfassungen direkt in Binärdateien schreiben, können Entwickler diese in Git-PRs nicht reviewen. Veraltete Workarounds überleben unsichtbar und verunreinigen künftige Coding-Loops.
Vektoren eignen sich für thematische Nähe, scheitern aber bei exakten Bezeichnern wie port: 30001 oder AUTH_TIMEOUT_504 . Ab 500 Dokumenten spülen irrelevante Logs nach oben und drängen kritische Konfigurationen ab.
port: 30001
AUTH_TIMEOUT_504
Technisches Wissen ist relational: Ein Incident ( incident-passkey-timeout.md ) begründet eine Architekturentscheidung ( adr-port-lock.md ), die wiederum eine feste Systemregel ( rule-auth.md ) vorgibt. Vektortabellen trennen diese Kanten vollständig.
incident-passkey-timeout.md
adr-port-lock.md
rule-auth.md
Wegen ungenauer Bi-Encoder-Scores werden 10 bis 15 Chunks (4.000--6.000 Tokens) in den Prompt geladen. Das treibt Kosten in die Höhe und lässt das Modell den eigentlichen Befehl aus den Augen verlieren.
Eine der wirkungsvollsten Optimierungen ist das Verfassen interner Regeln und Prompts in englischer Sprache :
BPE-Tokenizer führender Modelle (Claude 3.5, GPT-4o, Gemini 1.5) basieren primär auf englischen Vokabularen.
[Vergleich der Tokenizer-Effizienz: Japanisch vs. Englisch] ● Japanisch: 「エージェント長期記憶の運用ルールとナレッジ昇格ゲート」 ➔ ca. 28 Zeichen / 22 bis 26 Tokens (0,8 bis 1,5 Tokens pro Zeichen) ● Englisch: "Operational rules for Agent Memory Hub and knowledge promotion barrier" ➔ 74 Zeichen / 11 Tokens (1,1 bis 1,2 Tokens pro ganzes Wort)
Für identische Spezifikationen benötigen englische Formulierungen 40 % bis 55 % weniger Tokens als Japanisch .
┌─────────────────────────────────────────────────────────────┐ │ Menschlicher Entwickler (Japanischer Chat) │ │ „Erkläre mir den Fix für den Passkey-Auth-Timeout.“ │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ KI-Agenten-Orchestrator │ │ - Ausgabe an Benutzer: Natürliches Japanisch │ │ - Internes Thinking: Englisch / knappes Japanisch │ │ - Regeln & SSOT-Dokumente: Englisch (~50% Token-Ersparnis) │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Mehrsprachiges Embedding (multilingual-e5-small) │ │ Mappt die Abfrage sprachübergreifend direkt auf englische │ │ ADR- und Incident-Dokumente ohne Übersetzungsverzögerung │ └─────────────────────────────────────────────────────────────┘
Durch Xenova/multilingual-e5-small findet eine Abfrage zielsicher englische ADRs. Der Agent denkt auf Basis kompakter englischer Regeln und antwortet in der gewünschten Sprache des Nutzers.
Xenova/multilingual-e5-small
AND
UI
DB
LIKE
R R F _ S c o r e ( d ) = r a c 1 60 + R a n k v e c ( d ) + r a c 1 60 + R a n k b m 25 ( d ) RRF\_Score(d) = rac{1}{60 + Rank_{vec}(d)} + rac{1}{60 + Rank_{bm25}(d)}
Kombiniert Vektor- und Stichwortränge stabil und erzeugt Top-15 Kandidaten.
WITH RECURSIVE graph_cte(source, target, depth) AS ( SELECT source_file, target_link, 1 FROM graph_edges WHERE source_file IN ('incident-20261014-passkey-timeout') UNION SELECT e.source_file, e.target_link, g.depth + 1 FROM graph_edges e JOIN graph_cte g ON e.source_file = g.target WHERE g.depth < 2 ) SELECT DISTINCT source, target, depth FROM graph_cte;
Findet verlinkte Dokumente (z. B. [[adr-20261015-agent-memory-hub-gen3]] ) in nur 0,19 ms.
[[adr-20261015-agent-memory-hub-gen3]]
Alle 15 bis 20 Paare werden an hotchpotch/japanese-reranker-xsmall-v2 (ONNX INT8 arm64, 37 MB) übergeben. Nur die Top 3 bis 5 Chunks fließen in den Prompt.
hotchpotch/japanese-reranker-xsmall-v2
┌─────────────────────────────────────────────────────────────┐ │ ① Ephemerer Scratch: brain/<conversation-id>/ │ │ - Denkspuren & Terminalausgaben │ │ - Temporäre Debug-Skripte (/scratch/) │ │ - Entwürfe (implementation_plan.md) │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ② Knowledge Promotion Barrier (Sitzungsende / Review) │ │ [Kriterien] │ │ - Nur flüchtiges Protokoll? ➔ Verwerfen │ │ - Dauerhafte Architekturentscheidung? ➔ Nach docs/adrs/ │ │ - Vorfall-Lehre? ➔ Nach docs/incidents/ │ └──────────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ ③ Permanentes Markdown SSOT (Git-Vault) │ │ - docs/adrs/adr-YYYYMMDD-xxx.md │ │ - docs/incidents/incident-YYYYMMDD-xxx.md │ │ - docs/rules/rule-xxx.md │ │ * Bei Git-Commit in 0,2s automatisch nach SQLite/LanceDB │ └─────────────────────────────────────────────────────────────┘
Messungen an 554 produktiven Chunks auf einem Apple M5 Mac (32 GB RAM):
Rules for promoting temporary scratch memory to long-term SSOT
rules/rule-agent-memory.md#1
port 30001 passkey authentication
incidents/incident-20261014-passkey-timeout.md#2
WebAuthn passkey timeout root cause and permanent remediation
incidents/incident-20261014-passkey-timeout.md#0
DB schema and UI design
incident
adr
rule
bge-reranker-v2-m3
bge-reranker-v2-m3 (588 MB) benötigte auf dem M5 2.480 ms für 15 Chunks bei 2,6 GB RAM . Unser finales Modell hotchpotch/japanese-reranker-xsmall-v2 : - Modellgröße : 37 MB ( 1/15 der Größe ) - Inferenz : 213 ms ( 11,6-mal schneller ) - RAM : 648 MB
Erfolgreiches Langzeitgedächtnis für KI-Agenten basiert auf drei Säulen: 1. SSOT in Git-Markdown statt in proprietären Binär-Datenbanken. 2. Kombiniertes Filtering : FTS5 BM25, WikiLink-Graph und lokaler Cross-Encoder auf 3--5 Chunks. 3. Englische Regeln : Halbiert den Tokenbedarf bei voller mehrsprachiger Abfragefähigkeit.
Erhalten Sie das vollständige Konfigurationspaket: universelle AGENTS.md, deterministische hooks.json und Git-Sicherheitsleitplanken für Antigravity, Kiro, Claude Code und Codex.
Angetrieben von autonomen KI-Pipelines und Frontier-LLMs. Tägliches quantitatives Markt-Scoring und Makro-Signale.
Praxisnahe Beratung für KI-Coding-Agenten, hybride Speicherarchitekturen sowie AWS- & Google Cloud-Modernisierung.