Memory-Tools
Selu stellt eingebaute Memory-Tools bereit, die Agenten ohne einen Capability-Container aufrufen können. Sie werden direkt vom Orchestrator verarbeitet und unterliegen wie alle anderen Tools der Tool-Policy.
Es gibt drei verschiedene Gedächtniskonzepte. Das Verständnis der Grenzen hilft dir, Agenten-Prompts und Capability-Prompts zu schreiben, die Gedächtnis korrekt nutzen.
Die drei Gedächtnisgrenzen
Abschnitt betitelt „Die drei Gedächtnisgrenzen“| Konzept | Tool(s) | Geltungsbereich | Automatisch injiziert? |
|---|---|---|---|
| Nutzerprofil („Über dich”) | — | Alle Agenten, alle Sessions | Ja — immer |
| Gemeinsame Notizen | memory_remember, memory_search | Alle Agenten, ein Nutzer | Nein — Agent muss suchen |
| Agenten-Lektionen | Automatisch von Selu verwaltet | Ein Agent, ein Nutzer | Ja — nur aktive Lektionen |
Nutzerprofil
Abschnitt betitelt „Nutzerprofil“Das Nutzerprofil wird vom Nutzer auf der Seite „Persönlichkeit” bearbeitet. Es wird zu Beginn jedes Turns in den Kontext jedes Agenten injiziert. Agenten können es nicht direkt beschreiben.
Gemeinsame Notizen
Abschnitt betitelt „Gemeinsame Notizen“Gemeinsame Notizen sind nutzerbezogen und durchsuchbar. Jeder Agent kann eine Notiz speichern, und jeder Agent kann sie später finden. Der speichernde Agent wird als Herkunft erfasst, hat aber keinen Einfluss auf den Zugriff.
Wann gemeinsame Notizen verwenden:
- Dauerhafte Fakten, die für mehrere Agenten relevant sind (z. B. „Nutzer bevorzugt metrische Einheiten”, „Haupt-E-Mail-Adresse des Nutzers”)
- Kontext, der über ein einzelnes Gespräch hinaus bestehen soll
Wann nicht verwenden:
- Einmalige Gesprächsdetails
- Temporären Zustand (stattdessen
store_setverwenden) - Geheimnisse oder Zugangsdaten
Agenten-Lektionen
Abschnitt betitelt „Agenten-Lektionen“Lektionen erfassen Verhaltenshinweise für einen bestimmten Agenten. Sie werden automatisch durch Selus Reflexionsprozess generiert — Agenten rufen kein Tool auf, um sie zu erstellen. Aktive Lektionen werden automatisch in den Kontext des Agenten injiziert.
Tool-Referenz
Abschnitt betitelt „Tool-Referenz“memory_search
Abschnitt betitelt „memory_search“Durchsucht die gemeinsamen Notizen des Nutzers nach relevantem Kontext.
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
query | string | ja | Natürlichsprachliche Suchanfrage, die die gesuchten Informationen beschreibt |
Gibt zurück: Eine nach Relevanz sortierte Liste passender Notizen.
Wann aufrufen: Zu Beginn eines Turns, wenn stabiler vergangener Kontext wahrscheinlich relevant ist — zum Beispiel wenn der Nutzer nach etwas fragt, das er möglicherweise schon besprochen hat, oder wenn du eine Präferenz oder einen Fakt abrufen musst.
Wann nicht aufrufen: Bei jedem einzelnen Turn unabhängig von der Relevanz. Unnötiges Suchen erhöht die Latenz und erzeugt Rauschen.
# In deiner agent.md oder capability prompt.md:# Verwende memory_search, wenn die Frage des Nutzers wahrscheinlich mit# etwas zusammenhängt, das er dir zuvor mitgeteilt hat — Präferenzen,# wiederkehrende Themen, persönliche Fakten.# Suche nicht bei jeder Nachricht; urteile situativ.memory_remember
Abschnitt betitelt „memory_remember“Speichert eine Notiz in den gemeinsamen Notizen des Nutzers.
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
content | string | ja | Der zu speichernde Fakt oder Kontext, in natürlicher Sprache formuliert |
Gibt zurück: Bestätigung, dass die Notiz gespeichert wurde.
Wann aufrufen: Wenn der Nutzer einen dauerhaften, wiederverwendbaren Fakt mitteilt — etwas, das bei zukünftigen Gesprächen oder für andere Agenten nützlich sein wird. Beispiele: eine geäußerte Präferenz, ein wiederkehrendes Ziel, ein stabiler persönlicher Fakt.
Wann nicht aufrufen:
- Für temporäre oder einmalige Informationen
- Für Geheimnisse, Passwörter oder Tokens
- Für veränderlichen Zustand, der sich häufig ändert (stattdessen
store_setverwenden) - Für Dinge, die der Nutzer nicht explizit mitgeteilt hat oder die nur aus dem aktuellen Turn offensichtlich sind
set_reminder
Abschnitt betitelt „set_reminder“Plant eine einmalige Erinnerung für den Nutzer zu einem bestimmten zukünftigen Zeitpunkt.
| Parameter | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
prompt | string | ja | Was der Agent tun oder sagen soll, wenn die Erinnerung ausgelöst wird |
when | string | ja | Natürlichsprachlicher Zeitausdruck (z. B. „morgen um 9 Uhr”, „in 20 Minuten”, „nächsten Freitag Morgen”) |
Gibt zurück: Bestätigung mit dem geparsten Auslösezeitpunkt.
Wann aufrufen: Wenn der Nutzer im Gespräch darum bittet, an etwas erinnert zu werden. Rufe set_reminder direkt auf, anstatt den Nutzer zur Verwendung des /remind-Befehls aufzufordern.
Standard-Tool-Policy: Allow
# Wenn der Nutzer sagt „Erinnere mich in zwei Stunden, das Deployment zu prüfen",# rufe set_reminder auf mit:# prompt = "Deployment-Status prüfen"# when = "in zwei Stunden"# Verweise den Nutzer nicht auf /remind — erledige es direkt.Lektions-Lebenszyklus
Abschnitt betitelt „Lektions-Lebenszyklus“Lektionen werden nicht durch Tool-Aufrufe erstellt — sie entstehen aus Selus Reflexionsprozess nach Gesprächen.
So funktioniert es:
- Nach einem Gespräch führt Selu eine fünfstufige Reflexion über die Interaktion durch.
- Wenn die Reflexion ein Verhaltensmuster erkennt, wird ein Lektionskandidat mit einer Beobachtung erstellt.
- Lektionen mit mindestens zwei unterstützenden Beobachtungen und einer Konfidenz von 0,85 oder höher werden automatisch aktiviert.
- Bis zu zehn aktive Lektionen können gleichzeitig für einen Agenten gelten.
- Lektionen unterhalb des Konfidenz-Schwellenwerts erscheinen als Vorschläge, die der Nutzer manuell aktivieren kann.
Nutzer können Lektionen auf der Detailseite des Agenten aktivieren, pausieren oder entfernen.
Tool-Policies
Abschnitt betitelt „Tool-Policies“Alle Memory-Tools unterliegen der Tool-Policy und erscheinen auf der Berechtigungsseite des Agenten. Standard-Policies:
| Tool | Standard-Policy |
|---|---|
memory_search | Allow |
memory_remember | Allow |
set_reminder | Allow |
Nutzer können diese auf Ask (Genehmigung vor jedem Aufruf erforderlich) oder Block (Tool wird nicht ausgeführt) ändern.