Das Memory-Tool ermöglicht Claude, Informationen über Gespräche hinweg durch ein Memory-Dateiverzeichnis zu speichern und abzurufen. Claude kann Dateien erstellen, lesen, aktualisieren und löschen, die zwischen Sitzungen bestehen bleiben, sodass es Wissen über die Zeit aufbauen kann, ohne alles im Kontextfenster zu behalten.
Das Memory-Tool funktioniert clientseitig – Sie kontrollieren, wo und wie die Daten durch Ihre eigene Infrastruktur gespeichert werden.
Das Memory-Tool befindet sich derzeit in der Beta-Phase. Um es zu aktivieren, verwenden Sie den Beta-Header context-management-2025-06-27 in Ihren API-Anfragen.
Bitte teilen Sie Ihr Feedback zu dieser Funktion über unser Feedback-Formular mit.
Wenn aktiviert, prüft Claude automatisch sein Memory-Verzeichnis, bevor Aufgaben gestartet werden. Claude kann Dateien im Verzeichnis /memories erstellen, lesen, aktualisieren und löschen, um zu speichern, was es während der Arbeit lernt, und dann diese Erinnerungen in zukünftigen Gesprächen referenzieren, um ähnliche Aufgaben effektiver zu bewältigen oder dort weiterzumachen, wo es aufgehört hat.
Da dies ein clientseitiges Tool ist, führt Claude Tool-Aufrufe durch, um Memory-Operationen durchzuführen, und Ihre Anwendung führt diese Operationen lokal aus. Dies gibt Ihnen vollständige Kontrolle darüber, wo und wie der Memory gespeichert wird. Aus Sicherheitsgründen sollten Sie alle Memory-Operationen auf das Verzeichnis beschränken.
/memoriesWenn Sie Claude bitten, bei einer Aufgabe zu helfen, prüft Claude automatisch zuerst sein Memory-Verzeichnis. So sieht eine typische Interaktion aus:
1. Benutzeranfrage:
"Help me respond to this customer service ticket."2. Claude prüft das Memory-Verzeichnis:
"I'll help you respond to the customer service ticket. Let me check my memory for any previous context."Claude ruft das Memory-Tool auf:
{
"type": "tool_use",
"id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
"name": "memory",
"input": {
"command": "view",
"path": "/memories"
}
}3. Ihre Anwendung gibt den Verzeichnisinhalt zurück:
{
"type": "tool_result",
"tool_use_id": "toolu_01C4D5E6F7G8H9I0J1K2L3M4",
"content": "Directory: /memories\n- customer_service_guidelines.xml\n- refund_policies.xml"
}4. Claude liest relevante Dateien:
{
"type": "tool_use",
"id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
"name": "memory",
"input": {
"command": "view",
"path": "/memories/customer_service_guidelines.xml"
}
}5. Ihre Anwendung gibt den Dateiinhalt zurück:
{
"type": "tool_result",
"tool_use_id": "toolu_01D5E6F7G8H9I0J1K2L3M4N5",
"content": "<guidelines>\n<addressing_customers>\n- Always address customers by their first name\n- Use empathetic language\n..."
}6. Claude nutzt die Memory, um zu helfen:
"Based on your customer service guidelines, I can help you craft a response. Please share the ticket details..."Das Memory-Tool ist verfügbar auf:
claude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-haiku-4-5-20251001)claude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514)Um das Memory-Tool zu verwenden:
context-management-2025-06-27 in Ihre API-Anfragen einUm Memory-Tool-Operationen in Ihrer Anwendung zu verarbeiten, müssen Sie Handler für jeden Memory-Befehl implementieren. Unsere SDKs bieten Memory-Tool-Helfer, die die Tool-Schnittstelle verarbeiten – Sie können BetaAbstractMemoryTool (Python) unterklassifizieren oder betaMemoryTool (TypeScript) verwenden, um Ihr eigenes Memory-Backend zu implementieren (dateibasiert, Datenbank, Cloud-Speicher, verschlüsselte Dateien usw.).
Für funktionierende Beispiele siehe:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--header "anthropic-beta: context-management-2025-06-27" \
--data '{
"model": "claude-sonnet-4-5",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": "I'\''m working on a Python web scraper that keeps crashing with a timeout error. Here'\''s the problematic function:\n\n```python\ndef fetch_page(url, retries=3):\n for i in range(retries):\n try:\n response = requests.get(url, timeout=5)\n return response.text\n except requests.exceptions.Timeout:\n if i == retries - 1:\n raise\n time.sleep(1)\n```\n\nPlease help me debug this."
}
],
"tools": [{
"type": "memory_20250818",
"name": "memory"
}]
}'Ihre clientseitige Implementierung muss diese Memory-Tool-Befehle verarbeiten:
Zeigt Verzeichnisinhalte oder Dateiinhalte mit optionalen Zeilenbereichen an:
{
"command": "view",
"path": "/memories",
"view_range": [1, 10] // Optional: bestimmte Zeilen anzeigen
}Erstellt oder überschreibt eine Datei:
{
"command": "create",
"path": "/memories/notes.txt",
"file_text": "Meeting notes:\n- Discussed project timeline\n- Next steps defined\n"
}Ersetzt Text in einer Datei:
{
"command": "str_replace",
"path": "/memories/preferences.txt",
"old_str": "Favorite color: blue",
"new_str": "Favorite color: green"
}Fügt Text in einer bestimmten Zeile ein:
{
"command": "insert",
"path": "/memories/todo.txt",
"insert_line": 2,
"insert_text": "- Review memory tool documentation\n"
}Löscht eine Datei oder ein Verzeichnis:
{
"command": "delete",
"path": "/memories/old_file.txt"
}Benennt eine Datei/ein Verzeichnis um oder verschiebt sie:
{
"command": "rename",
"old_path": "/memories/draft.txt",
"new_path": "/memories/final.txt"
}Wir fügen automatisch diese Anweisung zum System-Prompt hinzu, wenn das Memory-Tool enthalten ist:
IMPORTANT: ALWAYS VIEW YOUR MEMORY DIRECTORY BEFORE DOING ANYTHING ELSE.
MEMORY PROTOCOL:
1. Use the `view` command of your `memory` tool to check for earlier progress.
2. ... (work on the task) ...
- As you make progress, record status / progress / thoughts etc in your memory.
ASSUME INTERRUPTION: Your context window might be reset at any moment, so you risk losing any progress that is not recorded in your memory directory.Wenn Sie beobachten, dass Claude ungeordnete Memory-Dateien erstellt, können Sie diese Anweisung einfügen:
Hinweis: Versuchen Sie beim Bearbeiten Ihres Memory-Ordners, seinen Inhalt immer aktuell, kohärent und organisiert zu halten. Sie können Dateien umbenennen oder löschen, die nicht mehr relevant sind. Erstellen Sie keine neuen Dateien, wenn nicht notwendig.
Sie können auch steuern, was Claude in Memory schreibt, z. B. „Schreiben Sie nur Informationen relevant zu <topic> in Ihr Memory-System."
Hier sind wichtige Sicherheitsbedenken bei der Implementierung Ihres Memory-Speichers:
Claude wird normalerweise ablehnen, sensible Informationen in Memory-Dateien zu schreiben. Sie möchten jedoch möglicherweise eine strengere Validierung implementieren, die potenziell sensible Informationen entfernt.
Erwägen Sie, Memory-Dateigrößen zu verfolgen und zu verhindern, dass Dateien zu groß werden. Erwägen Sie, eine maximale Anzahl von Zeichen hinzuzufügen, die der Memory-Lesbefehl zurückgeben kann, und lassen Sie Claude durch Inhalte paginieren.
Erwägen Sie, Memory-Dateien regelmäßig zu löschen, auf die über einen längeren Zeitraum nicht zugegriffen wurde.
Böswillige Pfadeingaben könnten versuchen, auf Dateien außerhalb des Verzeichnisses /memories zuzugreifen. Ihre Implementierung MUSS alle Pfade validieren, um Directory-Traversal-Angriffe zu verhindern.
Erwägen Sie diese Schutzmaßnahmen:
/memories beginnen../, ..\\ oder andere Traversal-Muster enthalten%2e%2e%2f)pathlib.Path.resolve() und relative_to())Das Memory-Tool verwendet die gleichen Fehlerbehandlungsmuster wie das Text-Editor-Tool. Häufige Fehler sind Datei nicht gefunden, Berechtigungsfehler und ungültige Pfade.
Das Memory-Tool kann mit Context Editing kombiniert werden, das automatisch alte Tool-Ergebnisse löscht, wenn der Gesprächskontext einen konfigurierten Schwellenwert überschreitet. Diese Kombination ermöglicht langfristige agentengesteuerte Workflows, die sonst die Kontextlimits überschreiten würden.
Wenn Context Editing aktiviert ist und Ihr Gespräch sich dem Lösch-Schwellenwert nähert, erhält Claude automatisch eine Warnbenachrichtigung. Dies veranlasst Claude, wichtige Informationen aus Tool-Ergebnissen in Memory-Dateien zu speichern, bevor diese Ergebnisse aus dem Kontextfenster gelöscht werden.
Nach dem Löschen von Tool-Ergebnissen kann Claude die gespeicherten Informationen aus Memory-Dateien abrufen, wenn nötig, und behandelt Memory effektiv als Erweiterung seines Arbeitskontexts. Dies ermöglicht Claude:
Betrachten Sie ein Code-Refactoring-Projekt mit vielen Dateioperationen:
/memories/refactoring_progress.xml)Um beide Funktionen zusammen zu verwenden:
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=4096,
messages=[...],
tools=[
{
"type": "memory_20250818",
"name": "memory"
},
# Your other tools
],
betas=["context-management-2025-06-27"],
context_management={
"edits": [
{
"type": "clear_tool_uses_20250919",
"trigger": {
"type": "input_tokens",
"value": 100000
},
"keep": {
"type": "tool_uses",
"value": 3
}
}
]
}
)Sie können auch Memory-Tool-Aufrufe von der Löschung ausschließen, um sicherzustellen, dass Claude immer Zugriff auf aktuelle Memory-Operationen hat:
context_management={
"edits": [
{
"type": "clear_tool_uses_20250919",
"exclude_tools": ["memory"]
}
]
}