Loading...
  • Erstellen
  • Admin
  • Modelle & Preise
  • Client-SDKs
  • API-Referenz
Search...
⌘K
Log in
Kontextbearbeitung
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Erstellen/Kontextverwaltung

Kontextbearbeitung

Verwalten Sie automatisch den Gesprächskontext, während er mit Kontextbearbeitung wächst.

Was this page helpful?

  • Übersicht
  • Serverseitige Strategien
  • Werkzeugergebnis-Löschen
  • Thinking-Block-Löschen
  • Kontextbearbeitung erfolgt serverseitig
  • Kontextbearbeitung und Prompt-Caching
  • Unterstützte Modelle
  • Werkzeugergebnis-Löschen Verwendung
  • Erweiterte Konfiguration
  • Verwendung von Thinking-Block-Clearing
  • Konfigurationsoptionen für das Clearing von Thinking-Blöcken
  • Kombinieren von Strategien
  • Konfigurationsoptionen für das Clearing von Tool-Ergebnissen
  • Antwort zur Kontextbearbeitung
  • Token-Zählung
  • Verwendung mit dem Memory Tool
  • Client-seitige Komprimierung (SDK)
  • Wie die Komprimierung funktioniert
  • Verwendung der Komprimierung
  • Konfigurationsoptionen
  • Standard-Zusammenfassungsaufforderung
  • Einschränkungen
  • Überwachung der Komprimierung
  • Wann sollte Komprimierung verwendet werden

This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

Übersicht

Für die meisten Anwendungsfälle ist serverseitige Komprimierung die primäre Strategie zur Verwaltung des Kontexts in langfristigen Gesprächen. Die Strategien auf dieser Seite sind nützlich für spezifische Szenarien, in denen Sie eine präzisere Kontrolle darüber benötigen, welche Inhalte gelöscht werden.

Die Kontextbearbeitung ermöglicht es Ihnen, selektiv spezifische Inhalte aus der Gesprächshistorie zu löschen, während sie wächst. Über die Optimierung von Kosten und die Einhaltung von Grenzen hinaus geht es darum, aktiv zu kuratieren, was Claude sieht: Kontext ist eine endliche Ressource mit abnehmenden Erträgen, und irrelevante Inhalte beeinträchtigen den Fokus des Modells. Die Kontextbearbeitung gibt Ihnen eine präzise Laufzeitkontrolle über diese Kuration. Für die breiteren Prinzipien hinter der Kontextverwaltung siehe Effektive Kontextentwicklung. Diese Seite behandelt:

  • Werkzeugergebnis-Löschen - Am besten für agentenbasierte Workflows mit intensiver Werkzeugnutzung, bei denen alte Werkzeugergebnisse nicht mehr benötigt werden
  • Thinking-Block-Löschen - Zur Verwaltung von Thinking-Blöcken bei Verwendung von Extended Thinking, mit Optionen zum Beibehalten von aktuellem Thinking für Kontextkontinuität
  • Client-seitige SDK-Komprimierung - Eine SDK-basierte Alternative für zusammenfassungsbasierte Kontextverwaltung (serverseitige Komprimierung wird allgemein bevorzugt)
AnsatzWo es läuftStrategienWie es funktioniert
ServerseitigAPIWerkzeugergebnis-Löschen (clear_tool_uses_20250919)
Thinking-Block-Löschen (clear_thinking_20251015)
Wird angewendet, bevor der Prompt Claude erreicht. Löscht spezifische Inhalte aus der Gesprächshistorie. Jede Strategie kann unabhängig konfiguriert werden.
Client-seitigSDKKomprimierungVerfügbar in Python, TypeScript und Ruby SDKs bei Verwendung von tool_runner. Generiert eine Zusammenfassung und ersetzt die vollständige Gesprächshistorie. Siehe Client-seitige Komprimierung unten.

Serverseitige Strategien

Die Kontextbearbeitung befindet sich in der Beta-Phase mit Unterstützung für Werkzeugergebnis-Löschen und Thinking-Block-Löschen. Um sie zu aktivieren, verwenden Sie den Beta-Header context-management-2025-06-27 in Ihren API-Anfragen.

Teilen Sie Feedback zu dieser Funktion über das Feedback-Formular.

Werkzeugergebnis-Löschen

Die Strategie clear_tool_uses_20250919 löscht Werkzeugergebnisse, wenn der Gesprächskontext über Ihren konfigurierten Schwellenwert hinauswächst. Dies ist besonders nützlich für agentenbasierte Workflows mit intensiver Werkzeugnutzung. Ältere Werkzeugergebnisse (wie Dateiinhalte oder Suchergebnisse) werden nicht mehr benötigt, sobald Claude sie verarbeitet hat.

Wenn aktiviert, löscht die API automatisch die ältesten Werkzeugergebnisse in chronologischer Reihenfolge. Die API ersetzt jedes gelöschte Ergebnis durch Platzhaltertext, damit Claude weiß, dass es entfernt wurde. Standardmäßig werden nur Werkzeugergebnisse gelöscht. Sie können optional sowohl Werkzeugergebnisse als auch Werkzeugaufrufe (die Werkzeugnutzungsparameter) löschen, indem Sie clear_tool_inputs auf true setzen.

Thinking-Block-Löschen

Die Strategie clear_thinking_20251015 verwaltet thinking-Blöcke in Gesprächen, wenn Extended Thinking aktiviert ist. Diese Strategie gibt Ihnen Kontrolle über die Thinking-Beibehaltung: Sie können wählen, mehr Thinking-Blöcke zu behalten, um die Reasoning-Kontinuität zu wahren, oder sie aggressiver zu löschen, um Kontextraum zu sparen.

Standardverhalten: Wenn Extended Thinking ohne Konfiguration der Strategie clear_thinking_20251015 aktiviert ist, behält die API automatisch nur die Thinking-Blöcke aus dem letzten Assistent-Turn bei (entspricht keep: {type: "thinking_turns", value: 1}).

Um Cache-Treffer zu maximieren, behalten Sie alle Thinking-Blöcke bei, indem Sie keep: "all" setzen.

Ein Assistent-Gesprächs-Turn kann mehrere Inhaltsblöcke enthalten (z. B. bei Werkzeugnutzung) und mehrere Thinking-Blöcke (z. B. mit verschachteltem Thinking).

Kontextbearbeitung erfolgt serverseitig

Die Kontextbearbeitung wird serverseitig angewendet, bevor der Prompt Claude erreicht. Ihre Client-Anwendung behält die vollständige, unmodifizierte Gesprächshistorie. Sie müssen Ihren Client-Status nicht mit der bearbeiteten Version synchronisieren. Verwalten Sie Ihre vollständige Gesprächshistorie weiterhin lokal wie gewohnt.

Kontextbearbeitung und Prompt-Caching

Die Interaktion der Kontextbearbeitung mit Prompt-Caching variiert je nach Strategie:

  • Werkzeugergebnis-Löschen: Invalidiert zwischengespeicherte Prompt-Präfixe, wenn Inhalte gelöscht werden. Um dies zu berücksichtigen, löschen Sie genug Token, um die Cache-Invalidierung lohnenswert zu machen. Verwenden Sie den Parameter clear_at_least, um sicherzustellen, dass jedes Mal eine Mindestanzahl von Token gelöscht wird. Sie entstehen Cache-Schreibkosten jedes Mal, wenn Inhalte gelöscht werden, aber nachfolgende Anfragen können das neu zwischengespeicherte Präfix wiederverwenden.

  • Thinking-Block-Löschen: Wenn Thinking-Blöcke im Kontext behalten werden (nicht gelöscht), wird der Prompt-Cache beibehalten, was Cache-Treffer ermöglicht und Eingabe-Token-Kosten reduziert. Wenn Thinking-Blöcke gelöscht werden, wird der Cache an dem Punkt invalidiert, an dem das Löschen erfolgt. Konfigurieren Sie den Parameter keep basierend darauf, ob Sie die Cache-Leistung oder die Kontextfenster-Verfügbarkeit priorisieren möchten.

Unterstützte Modelle

Die Kontextbearbeitung ist auf allen unterstützten Claude-Modellen verfügbar.

Werkzeugergebnis-Löschen Verwendung

Die einfachste Möglichkeit, das Werkzeugergebnis-Löschen zu aktivieren, besteht darin, nur den Strategietyp anzugeben. Alle anderen Konfigurationsoptionen verwenden ihre Standardwerte:

Erweiterte Konfiguration

Sie können das Verhalten des Werkzeugergebnis-Löschens mit zusätzlichen Parametern anpassen:

Verwendung von Thinking-Block-Clearing

Aktivieren Sie das Clearing von Thinking-Blöcken, um den Kontext und das Prompt-Caching effektiv zu verwalten, wenn erweitertes Denken aktiviert ist:

Konfigurationsoptionen für das Clearing von Thinking-Blöcken

Die Strategie clear_thinking_20251015 unterstützt die folgende Konfiguration:

KonfigurationsoptionStandardBeschreibung
keep{type: "thinking_turns", value: 1}Definiert, wie viele aktuelle Assistent-Turns mit Thinking-Blöcken beibehalten werden sollen. Verwenden Sie {type: "thinking_turns", value: N}, wobei N > 0 sein muss, um die letzten N Turns zu behalten, oder "all", um alle Thinking-Blöcke zu behalten.

Beispielkonfigurationen:

Thinking-Blöcke aus den letzten 3 Assistent-Turns beibehalten:

{
  "type": "clear_thinking_20251015",
  "keep": {
    "type": "thinking_turns",
    "value": 3
  }
}

Alle Thinking-Blöcke beibehalten (maximiert Cache-Treffer):

{
  "type": "clear_thinking_20251015",
  "keep": "all"
}

Kombinieren von Strategien

Sie können das Clearing von Thinking-Blöcken und das Clearing von Tool-Ergebnissen zusammen verwenden:

Wenn Sie mehrere Strategien verwenden, muss die Strategie clear_thinking_20251015 zuerst im Array edits aufgelistet werden.

Konfigurationsoptionen für das Clearing von Tool-Ergebnissen

KonfigurationsoptionStandardBeschreibung
trigger100.000 Input-TokenDefiniert, wann die Kontextbearbeitungsstrategie aktiviert wird. Sobald der Prompt diesen Schwellenwert überschreitet, beginnt das Clearing. Sie können diesen Wert entweder in input_tokens oder tool_uses angeben.
keep3 Tool-VerwendungenDefiniert, wie viele aktuelle Tool-Use/Result-Paare nach dem Clearing beibehalten werden sollen. Die API entfernt zuerst die ältesten Tool-Interaktionen und behält die neuesten bei.
clear_at_leastKeineStellt sicher, dass jedes Mal, wenn die Strategie aktiviert wird, mindestens eine bestimmte Anzahl von Token gelöscht wird. Wenn die API nicht mindestens die angegebene Menge löschen kann, wird die Strategie nicht angewendet. Dies hilft zu bestimmen, ob das Clearing des Kontexts das Unterbrechen Ihres Prompt-Cache wert ist.
exclude_toolsKeineListe von Tool-Namen, deren Tool-Verwendungen und Ergebnisse niemals gelöscht werden sollten. Nützlich zum Beibehalten wichtiger Kontexte.

Antwort zur Kontextbearbeitung

Sie können sehen, welche Kontextbearbeitungen auf Ihre Anfrage angewendet wurden, indem Sie das Antwortfeld context_management verwenden, zusammen mit hilfreichen Statistiken über den gelöschten Inhalt und die Input-Token.

Output
{
  "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
  "type": "message",
  "role": "assistant",
  "content": [
    // ...
  ],
  "usage": {
    // ...
  },
  "context_management": {
    "applied_edits": [
      // Bei Verwendung von `clear_thinking_20251015`
      {
        "type": "clear_thinking_20251015",
        "cleared_thinking_turns": 3,
        "cleared_input_tokens": 15000
      },
      // Bei Verwendung von `clear_tool_uses_20250919`
      {
        "type": "clear_tool_uses_20250919",
        "cleared_tool_uses": 8,
        "cleared_input_tokens": 50000
      }
    ]
  }
}

Bei Streaming-Antworten werden die Kontextbearbeitungen im finalen message_delta-Event enthalten sein:

Streaming Response
{
  "type": "message_delta",
  "delta": {
    "stop_reason": "end_turn",
    "stop_sequence": null
  },
  "usage": {
    "output_tokens": 1024
  },
  "context_management": {
    "applied_edits": [
      // ...
    ]
  }
}

Token-Zählung

Der Endpunkt zur Token-Zählung unterstützt Kontextmanagement, sodass Sie eine Vorschau erhalten können, wie viele Token Ihr Prompt nach Anwendung der Kontextbearbeitung verwendet.

Output
{
  "input_tokens": 25000,
  "context_management": {
    "original_input_tokens": 70000
  }
}

Die Antwort zeigt sowohl die endgültige Token-Anzahl nach Anwendung des Kontextmanagements (input_tokens) als auch die ursprüngliche Token-Anzahl vor dem Clearing (original_input_tokens).

Verwendung mit dem Memory Tool

Die Kontextbearbeitung kann mit dem Memory Tool kombiniert werden. Wenn sich Ihr Gesprächskontext dem konfigurierten Löschschwellenwert nähert, erhält Claude eine automatische Warnung, um wichtige Informationen zu bewahren. Dies ermöglicht Claude, Tool-Ergebnisse oder Kontext in seinen Memory-Dateien zu speichern, bevor sie aus dem Gesprächsverlauf gelöscht werden.

Diese Kombination ermöglicht es Ihnen:

  • Wichtigen Kontext bewahren: Claude kann wichtige Informationen aus Tool-Ergebnissen in Memory-Dateien schreiben, bevor diese Ergebnisse gelöscht werden
  • Langfristige Workflows beibehalten: Ermöglichen Sie agentenbasierte Workflows, die sonst die Kontextgrenzen überschreiten würden, indem Sie Informationen in persistenten Speicher auslagern
  • Auf Anfrage auf Informationen zugreifen: Claude kann zuvor gelöschte Informationen aus Memory-Dateien nachschlagen, wenn nötig, anstatt alles im aktiven Kontextfenster zu behalten

Beispielsweise kann Claude in einem Dateibearbeitungs-Workflow, in dem Claude viele Operationen durchführt, abgeschlossene Änderungen in Memory-Dateien zusammenfassen, während der Kontext wächst. Wenn Tool-Ergebnisse gelöscht werden, behält Claude Zugriff auf diese Informationen durch sein Memory-System und kann effektiv weiterarbeiten.

Um beide Funktionen zusammen zu verwenden, aktivieren Sie sie in Ihrer API-Anfrage:

Für die vollständige Memory Tool-Referenz einschließlich Befehle und Beispiele siehe Memory Tool.

Client-seitige Komprimierung (SDK)

Anthropic empfiehlt Server-seitige Komprimierung gegenüber SDK-Komprimierung. Server-seitige Komprimierung verwaltet die Kontextverwaltung automatisch mit weniger Integrationskomplexität, besserer Token-Nutzungsberechnung und ohne Client-seitige Einschränkungen. Verwenden Sie SDK-Komprimierung nur, wenn Sie speziell Client-seitige Kontrolle über den Zusammenfassungsprozess benötigen.

Die Komprimierung ist in den Python-, TypeScript- und Ruby-SDKs verfügbar, wenn die tool_runner-Methode verwendet wird.

Die Komprimierung ist eine SDK-Funktion, die den Gesprächskontext automatisch verwaltet, indem Zusammenfassungen generiert werden, wenn die Token-Nutzung zu groß wird. Im Gegensatz zu Server-seitigen Kontextbearbeitungsstrategien, die Inhalte löschen, weist die Komprimierung Claude an, den Gesprächsverlauf zusammenzufassen, und ersetzt dann den vollständigen Verlauf durch diese Zusammenfassung. Dies ermöglicht Claude, an langfristigen Aufgaben zu arbeiten, die sonst das Kontextfenster überschreiten würden.

Wie die Komprimierung funktioniert

Wenn die Komprimierung aktiviert ist, überwacht das SDK die Token-Nutzung nach jeder Modellreaktion:

  1. Schwellenwertprüfung: Das SDK berechnet die Gesamttoken als input_tokens + cache_creation_input_tokens + cache_read_input_tokens + output_tokens.
  2. Zusammenfassungsgenerierung: Wenn der Schwellenwert überschritten wird, wird eine Zusammenfassungsaufforderung als Benutzerzug eingefügt, und Claude generiert eine strukturierte Zusammenfassung, die in <summary></summary>-Tags eingeschlossen ist.
  3. Kontextersetzung: Das SDK extrahiert die Zusammenfassung und ersetzt den gesamten Nachrichtenverlauf damit.
  4. Fortsetzung: Das Gespräch wird von der Zusammenfassung aus fortgesetzt, wobei Claude dort weitermacht, wo es aufgehört hat.

Verwendung der Komprimierung

Fügen Sie compaction_control zu Ihrem tool_runner-Aufruf hinzu, um die automatische Zusammenfassung zu aktivieren, wenn die Token-Nutzung den Schwellenwert überschreitet.

Was während der Komprimierung geschieht

Wenn das Gespräch wächst, sammelt sich der Nachrichtenverlauf an:

Vor der Komprimierung (nähert sich 100k Token):

[
  { "role": "user", "content": "Analyze all files and write a report..." },
  { "role": "assistant", "content": "I'll help. Let me start by reading..." },
  {
    "role": "user",
    "content": [{ "type": "tool_result", "tool_use_id": "...", "content": "..." }]
  },
  { "role": "assistant", "content": "Based on file1.txt, I see..." },
  {
    "role": "user",
    "content": [{ "type": "tool_result", "tool_use_id": "...", "content": "..." }]
  },
  { "role": "assistant", "content": "After analyzing file2.txt..." }
  // ... 50 more exchanges like this ...
]

Wenn Token den Schwellenwert überschreiten, fügt das SDK eine Zusammenfassungsanfrage ein und Claude generiert eine Zusammenfassung. Der gesamte Verlauf wird dann ersetzt:

Nach der Komprimierung (zurück zu ~2-3k Token):

[
  {
    "role": "assistant",
    "content": "# Task Overview\nThe user requested analysis of directory files to produce a summary report...\n\n# Current State\nAnalyzed 52 files across 3 subdirectories. Key findings documented in report.md...\n\n# Important Discoveries\n- Configuration files use YAML format\n- Found 3 deprecated dependencies\n- Test coverage at 67%\n\n# Next Steps\n1. Analyze remaining files in /src/legacy\n2. Complete final report sections...\n\n# Context to Preserve\nUser prefers markdown format with executive summary first..."
  }
]

Claude setzt die Arbeit von dieser Zusammenfassung aus fort, als wäre es der ursprüngliche Gesprächsverlauf.

Konfigurationsoptionen

ParameterTypErforderlichStandardBeschreibung
enabledbooleanJa-Ob automatische Komprimierung aktiviert werden soll
context_token_thresholdnumberNein100.000Token-Anzahl, bei der die Komprimierung ausgelöst wird
modelstringNeinGleiches wie HauptmodellModell zur Verwendung für die Zusammenfassungsgenerierung
summary_promptstringNeinSiehe untenBenutzerdefinierte Aufforderung für die Zusammenfassungsgenerierung

Auswahl eines Token-Schwellenwerts

Der Schwellenwert bestimmt, wann die Komprimierung erfolgt. Ein niedrigerer Schwellenwert bedeutet häufigere Komprimierungen mit kleineren Kontextfenstern. Ein höherer Schwellenwert ermöglicht mehr Kontext, riskiert aber, Grenzen zu erreichen.

# More frequent compaction for memory-constrained scenarios
compaction_control = {"enabled": True, "context_token_threshold": 50000}

# Less frequent compaction when you need more context
compaction_control = {"enabled": True, "context_token_threshold": 150000}

Verwendung eines anderen Modells für Zusammenfassungen

Sie können ein schnelleres oder günstigeres Modell für die Zusammenfassungsgenerierung verwenden:

compaction_control = {
    "enabled": True,
    "context_token_threshold": 100000,
    "model": "claude-haiku-4-5",
}

Benutzerdefinierte Zusammenfassungsaufforderungen

Sie können eine benutzerdefinierte Aufforderung für domänenspezifische Anforderungen bereitstellen. Ihre Aufforderung sollte Claude anweisen, seine Zusammenfassung in <summary></summary>-Tags einzuschließen.

compaction_control = {
    "enabled": True,
    "context_token_threshold": 100000,
    "summary_prompt": """Summarize the research conducted so far, including:
- Sources consulted and key findings
- Questions answered and remaining unknowns
- Recommended next steps

Wrap your summary in <summary></summary> tags.""",
}

Standard-Zusammenfassungsaufforderung

Die integrierte Zusammenfassungsaufforderung weist Claude an, eine strukturierte Fortsetzungszusammenfassung zu erstellen, die Folgendes enthält:

  1. Aufgabenübersicht: Die Kernbitte des Benutzers, Erfolgskriterien und Einschränkungen.
  2. Aktueller Status: Was abgeschlossen wurde, welche Dateien geändert wurden und welche Artefakte produziert wurden.
  3. Wichtige Erkenntnisse: Technische Einschränkungen, getroffene Entscheidungen, behobene Fehler und fehlgeschlagene Ansätze.
  4. Nächste Schritte: Spezifische erforderliche Maßnahmen, Blocker und Prioritätsreihenfolge.
  5. Zu bewahrende Kontext: Benutzerpräferenzen, domänenspezifische Details und eingegangene Verpflichtungen.

Diese Struktur ermöglicht Claude, die Arbeit effizient fortzusetzen, ohne wichtigen Kontext zu verlieren oder Fehler zu wiederholen.

Einschränkungen

Server-seitige Tools

Die Komprimierung erfordert besondere Überlegung bei der Verwendung von Server-seitigen Tools wie Web Search oder Web Fetch.

Bei der Verwendung von Server-seitigen Tools kann das SDK die Token-Nutzung möglicherweise falsch berechnen, was dazu führt, dass die Komprimierung zum falschen Zeitpunkt ausgelöst wird.

Beispielsweise könnte die API-Antwort nach einer Web-Search-Operation Folgendes anzeigen:

Output
{
  "usage": {
    "input_tokens": 63000,
    "cache_read_input_tokens": 270000,
    "output_tokens": 1400
  }
}

Das SDK berechnet die Gesamtnutzung als 63.000 + 270.000 = 333.000 Token. Der cache_read_input_tokens-Wert umfasst jedoch akkumulierte Lesevorgänge aus mehreren internen API-Aufrufen, die vom Server-seitigen Tool durchgeführt werden, nicht Ihren tatsächlichen Gesprächskontext. Ihr echter Kontextlänge könnte nur die 63.000 input_tokens sein, aber das SDK sieht 333k und löst die Komprimierung vorzeitig aus.

Workarounds:

  • Verwenden Sie den Token-Zählungs-Endpunkt, um die genaue Kontextlänge zu erhalten
  • Vermeiden Sie Komprimierung bei umfangreicher Verwendung von Server-seitigen Tools

Tool-Use-Grenzfälle

Wenn das SDK die Komprimierung auslöst, während eine Tool-Use-Antwort ausstehend ist, entfernt es den Tool-Use-Block aus dem Nachrichtenverlauf, bevor die Zusammenfassung generiert wird. Claude gibt den Tool-Aufruf nach der Wiederaufnahme von der Zusammenfassung aus erneut aus, falls noch erforderlich.

Überwachung der Komprimierung

Das Verständnis, wann die Komprimierung ausgelöst wird, hilft Ihnen, Schwellenwerte zu optimieren und das erwartete Verhalten zu überprüfen.

Wann sollte Komprimierung verwendet werden

Gute Anwendungsfälle:

  • Langfristige Agent-Aufgaben, die viele Dateien oder Datenquellen verarbeiten
  • Forschungs-Workflows, die große Mengen an Informationen sammeln
  • Mehrstufige Aufgaben mit klarem, messbarem Fortschritt
  • Aufgaben, die Artefakte (Dateien, Berichte) produzieren, die außerhalb des Gesprächs bestehen bleiben

Weniger ideale Anwendungsfälle:

  • Aufgaben, die genaue Erinnerung an frühe Gesprächsdetails erfordern
  • Workflows, die Server-seitige Tools umfangreich nutzen
  • Aufgaben, die genauen Status über viele Variablen hinweg beibehalten müssen
response = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Search for recent developments in AI"}],
    tools=[{"type": "web_search_20250305", "name": "web_search"}],
    betas=["context-management-2025-06-27"],
    context_management={"edits": [{"type": "clear_tool_uses_20250919"}]},
)
response = client.beta.messages.create(
    model="claude-opus-4-7",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Create a simple command line calculator app using Python",
        }
    ],
    tools=[
        {
            "type": "text_editor_20250728",
            "name": "str_replace_based_edit_tool",
            "max_characters": 10000,
        },
        {"type": "web_search_20250305", "name": "web_search", "max_uses": 3},
    ],
    betas=["context-management-2025-06-27"],
    context_management={
        "edits": [
            {
                "type": "clear_tool_uses_20250919",
                # Trigger clearing when threshold is exceeded
                "trigger": {"type": "input_tokens", "value": 30000},
                # Number of tool uses to keep after clearing
                "keep": {"type": "tool_uses", "value": 3},
                # Optional: Clear at least this many tokens
                "clear_at_least": {"type": "input_tokens", "value": 5000},
                # Exclude these tools from being cleared
                "exclude_tools": ["web_search"],
            }
        ]
    },
)
response = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    messages=[...],
    thinking={"type": "enabled", "budget_tokens": 10000},
    betas=["context-management-2025-06-27"],
    context_management={
        "edits": [
            {
                "type": "clear_thinking_20251015",
                "keep": {"type": "thinking_turns", "value": 2},
            }
        ]
    },
)
response = client.beta.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    messages=[...],
    thinking={"type": "enabled", "budget_tokens": 10000},
    tools=[...],
    betas=["context-management-2025-06-27"],
    context_management={
        "edits": [
            {
                "type": "clear_thinking_20251015",
                "keep": {"type": "thinking_turns", "value": 2},
            },
            {
                "type": "clear_tool_uses_20250919",
                "trigger": {"type": "input_tokens", "value": 50000},
                "keep": {"type": "tool_uses", "value": 5},
            },
        ]
    },
)
clear_tool_inputsfalseSteuert, ob die Tool-Call-Parameter zusammen mit den Tool-Ergebnissen gelöscht werden. Standardmäßig werden nur die Tool-Ergebnisse gelöscht, während Claudes ursprüngliche Tool-Aufrufe sichtbar bleiben.
response = client.beta.messages.count_tokens(
    model="claude-opus-4-7",
    messages=[{"role": "user", "content": "Continue our conversation..."}],
    tools=[...],  # Your tool definitions
    betas=["context-management-2025-06-27"],
    context_management={
        "edits": [
            {
                "type": "clear_tool_uses_20250919",
                "trigger": {"type": "input_tokens", "value": 30000},
                "keep": {"type": "tool_uses", "value": 5},
            }
        ]
    },
)

print(f"Original tokens: {response.context_management['original_input_tokens']}")
print(f"After clearing: {response.input_tokens}")
print(
    f"Savings: {response.context_management['original_input_tokens'] - response.input_tokens} tokens"
)
response = client.beta.messages.create(
    model="claude-opus-4-7",
    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"}]},
)