Skip to content

Tiefenkonfiguration-Detaillierung: Passen Sie Ihre Speicher-Engine an ​

Was Sie nach dieser Lektion können ​

  • Benutzerdefinierte Auslösewörter: Lassen Sie den Agenten Ihre spezifischen Befehle verstehen (z. B. "Notieren", "markieren").
  • Speicherkapazität anpassen: Kontrollieren Sie die Anzahl der in den Kontext injizierten Speicher und gleichen Sie Token-Verbrauch mit Informationsgehalt aus.
  • Komprimierungsstrategie optimieren: Passen Sie den Auslösezeitpunkt der präemptiven Komprimierung je nach Projektgröße an.
  • Multi-Umgebungsverwaltung: Wechseln Sie flexibel zwischen API-Keys über Umgebungsvariablen.

Position der Konfigurationsdatei ​

opencode-supermemory sucht in der folgenden Reihenfolge nach Konfigurationsdateien, beim ersten Fund abbrechend:

  1. ~/.config/opencode/supermemory.jsonc (empfohlen, unterstützt Kommentare)
  2. ~/.config/opencode/supermemory.json

Warum .jsonc empfohlen?

Das .jsonc-Format ermöglicht das Schreiben von Kommentaren (//) in JSON, was sehr gut geeignet ist, um den Zweck von Konfigurationselementen zu erklären.

Detaillierte Kernkonfiguration ​

Das folgende ist ein vollständiges Konfigurationsbeispiel, das alle verfügbaren Optionen und ihre Standardwerte enthält.

Grundkonfiguration ​

jsonc
// ~/.config/opencode/supermemory.jsonc
{
  // Supermemory API Key
  // Priorität: Konfigurationsdatei > Umgebungsvariable SUPERMEMORY_API_KEY
  "apiKey": "your-api-key-here",

  // Ähnlichkeitsschwelle für semantische Suche (0.0 - 1.0)
  // Höhere Werte: präzisere Ergebnisse, aber weniger; niedrigere Werte: streuere Ergebnisse
  "similarityThreshold": 0.6
}

Kontextinjektionssteuerung ​

Diese Einstellungen bestimmen, wie viele Speicher der Agent beim Start einer Sitzung automatisch liest und in den Prompt injiziert.

jsonc
{
  // Ob das Benutzerprofil injiziert werden soll
  // Auf false gesetzt, um Tokens zu sparen, aber der Agent könnte Ihre grundlegenden Präferenzen vergessen
  "injectProfile": true,

  // Maximale Anzahl der injizierten Benutzerprofileinträge
  "maxProfileItems": 5,

  // Maximale Anzahl der injizierten benutzerspezifischen Speicher (User Scope)
  // Dies sind allgemeine Speicher, die über alle Projekte geteilt werden
  "maxMemories": 5,

  // Maximale Anzahl der injizierten projektspezifischen Speicher (Project Scope)
  // Dies sind Speicher, die spezifisch für das aktuelle Projekt sind
  "maxProjectMemories": 10
}

Benutzerdefinierte Auslösewörter ​

Sie können benutzerdefinierte reguläre Ausdrücke hinzufügen, damit der Agent spezifische Anweisungen erkennt und automatisch Speicher speichert.

jsonc
{
  // Liste der benutzerdefinierten Auslösewörter (unterstützt reguläre Ausdrücke)
  // Diese Wörter werden mit den integrierten Standardauslösewörtern zusammengeführt
  "keywordPatterns": [
    "记一下",           // einfacher Abgleich
    "mark\\s+this",     // Regex-Abgleich: mark this
    "重要[::]",         // stimmt mit "Wichtig:" oder "Wichtig:" überein
    "TODO\\(memory\\)"  // stimmt mit spezifischem Marker überein
  ]
}
Integrierte Standardauslösewörter anzeigen

Das Plugin enthält die folgenden Auslösewörter, die ohne Konfiguration verwendet werden können:

  • remember, memorize
  • save this, note this
  • keep in mind, don't forget
  • learn this, store this
  • record this, make a note
  • take note, jot down
  • commit to memory
  • remember that
  • never forget, always remember

Präemptive Komprimierung (Preemptive Compaction) ​

Wenn der Sitzungskontext zu lang ist, löst das Plugin automatisch den Komprimierungsmechanismus aus.

jsonc
{
  // Komprimierungsauslöseschwellenwert (0.0 - 1.0)
  // Wird ausgelöst, wenn die Token-Nutzungsrate diesen Prozentsatz überschreitet
  // Standard 0.80 (80%)
  "compactionThreshold": 0.80
}

Empfehlung für Schwellenwerteinstellung

  • Nicht zu hoch einstellen (z. B. > 0.95): Kann dazu führen, dass das Kontextfenster erschöpft wird, bevor die Komprimierung abgeschlossen ist.
  • Nicht zu niedrig einstellen (z. B. < 0.50): Führt zu häufiger Komprimierung, unterbricht den Fluss und verschwendet Tokens.
  • Empfohlener Wert: Zwischen 0.70 - 0.85.

Unterstützung für Umgebungsvariablen ​

Zusätzlich zur Konfigurationsdatei können Sie auch Umgebungsvariablen verwenden, um sensible Informationen zu verwalten oder das Standardverhalten zu überschreiben.

UmgebungsvariableBeschreibungPriorität
SUPERMEMORY_API_KEYSupermemory API-SchlüsselNiedriger als Konfigurationsdatei
USER oder USERNAMEBezeichner, der zur Generierung des User-Scope-Hash verwendet wirdSystemstandard

Verwendungsszenario: Multi-Umgebungswechsel ​

Wenn Sie verschiedene Supermemory-Konten für Unternehmens- und persönliche Projekte verwenden, können Sie Umgebungsvariablen nutzen:

bash
# Legen Sie den Standard-Key in .zshrc oder .bashrc fest
export SUPERMEMORY_API_KEY="key_personal"

# Überschreiben Sie den Key temporär im Unternehmensprojektverzeichnis
export SUPERMEMORY_API_KEY="key_work" && opencode
powershell
# Umgebungsvariable festlegen
$env:SUPERMEMORY_API_KEY="key_work"
opencode

Führen Sie es mit mir aus: Passen Sie Ihre benutzerdefinierte Konfiguration an ​

Lassen Sie uns eine optimierte Konfiguration erstellen, die für die meisten Entwickler geeignet ist.

Schritt 1: Konfigurationsdatei erstellen ​

Wenn die Datei nicht existiert, erstellen Sie sie.

bash
mkdir -p ~/.config/opencode
touch ~/.config/opencode/supermemory.jsonc

Schritt 2: Optimierungskonfiguration schreiben ​

Kopieren Sie den folgenden Inhalt in supermemory.jsonc. Diese Konfiguration erhöht das Gewicht der Projektspeicher und fügt chinesische Auslösewörter hinzu.

jsonc
{
  // Ähnlichkeitsschwellenwert beibehalten
  "similarityThreshold": 0.6,

  // Projektspeicheranzahl erhöhen, allgemeine Speicher reduzieren, besser für tiefe Entwicklung
  "maxMemories": 3,
  "maxProjectMemories": 15,

  // Chinesische Auslösewörter für Gewohnheiten hinzufügen
  "keywordPatterns": [
    "记一下",
    "记住",
    "保存记忆",
    "别忘了"
  ],

  // Komprimierung etwas früher auslösen, um mehr Sicherheitsplatz zu reservieren
  "compactionThreshold": 0.75
}

Schritt 3: Konfiguration verifizieren ​

Starten Sie OpenCode neu und versuchen Sie im Dialog, die neu definierten Auslösewörter zu verwenden:

Benutzereingabe:
记一下:Die API-Basis-URL dieses Projekts ist /api/v2

Systemantwort (erwartet):
(Agent ruft das supermemory-Tool auf, um den Speicher zu speichern)
Speicher gespeichert: Die API-Basis-URL dieses Projekts ist /api/v2

Häufige Fragen ​

F: Muss ich nach Änderung der Konfiguration neu starten? ​

A: Ja. Das Plugin lädt die Konfiguration beim Start. Nach dem Ändern von supermemory.jsonc müssen Sie OpenCode neu starten, damit die Änderungen wirksam werden.

F: Unterstützt keywordPatterns chinesische Regex? ​

A: Ja. Die unterliegende Ebene verwendet new RegExp() von JavaScript und unterstützt vollständig Unicode-Zeichen.

F: Was passiert, wenn das Format der Konfigurationsdatei falsch ist? ​

A: Das Plugin greift auf die Standardwerte zurück. Wenn das JSON-Format ungültig ist (z. B. überflüssige Kommas), fängt das Plugin den Fehler ab und verwendet die integrierten DEFAULTS, was nicht zum Absturz von OpenCode führt.

Vorschau auf die nächste Lektion ​

In der nächsten Lektion lernen wir Privatsphäre und Datensicherheit.

Sie werden lernen:

  • Automatischer Mechanismus zur Maskierung sensibler Daten
  • Verwenden Sie das &lt;private&gt;-Tag, um die Privatsphäre zu schützen
  • Sicherheitsgrenzen für Datenspeicherung

Anhang: Quellcode-Referenz ​

FunktionDateipfadZeilennummer
Konfigurationsschnittstellendefinitionsrc/config.ts12-23
Standardwertdefinitionsrc/config.ts44-54
Standardauslösewörtersrc/config.ts25-42
Konfigurationsdatei ladensrc/config.ts73-86
Umgebungsvariable lesensrc/config.ts90