Loading...
    • Guida per sviluppatori
    • Riferimento API
    • MCP
    • Risorse
    • Note sulla versione
    Search...
    ⌘K
    Primi passi
    Introduzione a ClaudeAvvio rapido
    Modelli e prezzi
    Panoramica dei modelliScelta di un modelloNovità in Claude 4.6Guida alla migrazioneDeprecazioni dei modelliPrezzi
    Crea con Claude
    Panoramica delle funzioniUtilizzo dell'API MessagesGestione dei motivi di arrestoBest practice per i prompt
    Capacità del modello
    Extended thinkingAdaptive thinkingEffortFast mode (anteprima di ricerca)Output strutturatiCitazioniStreaming dei messaggiElaborazione batchSupporto PDFRisultati di ricercaSupporto multilingueEmbeddingsVision
    Strumenti
    PanoramicaCome implementare l'uso degli strumentiStrumento di ricerca webStrumento di recupero webStrumento di esecuzione del codiceStrumento di memoriaStrumento BashStrumento Computer useStrumento editor di testo
    Infrastruttura degli strumenti
    Ricerca strumentiChiamata programmatica degli strumentiStreaming granulare degli strumenti
    Gestione del contesto
    Finestre di contestoCompattazioneModifica del contestoPrompt cachingConteggio dei token
    File e risorse
    API Files
    Agent Skills
    PanoramicaAvvio rapidoBest practiceSkills per l'aziendaUtilizzo di Skills con l'API
    Agent SDK
    PanoramicaAvvio rapidoTypeScript SDKTypeScript V2 (anteprima)Python SDKGuida alla migrazione
    MCP nell'API
    Connettore MCPServer MCP remoti
    Claude su piattaforme di terze parti
    Amazon BedrockMicrosoft FoundryVertex AI
    Prompt engineering
    PanoramicaGeneratore di promptUsa modelli di promptMiglioratore di promptSii chiaro e direttoUsa esempi (multishot prompting)Lascia che Claude pensi (CoT)Usa tag XMLDai a Claude un ruolo (prompt di sistema)Concatena prompt complessiSuggerimenti per il contesto lungoSuggerimenti per extended thinking
    Test e valutazione
    Definisci criteri di successoSviluppa casi di testUtilizzo dello strumento di valutazioneRiduzione della latenza
    Rafforza i guardrail
    Riduci le allucinazioniAumenta la coerenza dell'outputMitiga i jailbreakStreaming dei rifiutiRiduci la perdita di promptMantieni Claude nel personaggio
    Amministrazione e monitoraggio
    Panoramica dell'API AdminResidenza dei datiWorkspaceAPI di utilizzo e costiAPI Claude Code AnalyticsZero Data Retention
    Console
    Log in
    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
    • Catalog
    • 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
    • Catalog
    • 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
    Gestione del contesto

    Modifica del contesto

    Gestisci automaticamente il contesto della conversazione man mano che cresce con la modifica del contesto.

    Was this page helpful?

    • Panoramica
    • Strategie lato server
    • Cancellazione dei risultati degli strumenti
    • Cancellazione dei blocchi di pensiero
    • La modifica del contesto avviene lato server
    • Modifica del contesto e caching dei prompt
    • Modelli supportati
    • Utilizzo della cancellazione dei risultati degli strumenti
    • Configurazione avanzata
    • Utilizzo della cancellazione dei blocchi di pensiero
    • Opzioni di configurazione per la cancellazione dei blocchi di pensiero
    • Combinazione di strategie
    • Opzioni di configurazione per la cancellazione dei risultati degli strumenti
    • Risposta della modifica del contesto
    • Conteggio dei token
    • Utilizzo con lo strumento Memory
    • Compattazione lato client (SDK)
    • Come funziona la compattazione
    • Utilizzo della compattazione
    • Opzioni di configurazione
    • Prompt di riepilogo predefinito
    • Limitazioni
    • Monitoraggio della compattazione
    • Quando utilizzare la compattazione

    Panoramica

    Per la maggior parte dei casi d'uso, la compattazione lato server è la strategia principale per gestire il contesto nelle conversazioni di lunga durata. Le strategie in questa pagina sono utili per scenari specifici in cui hai bisogno di un controllo più granulare su quale contenuto cancellare.

    La modifica del contesto ti consente di cancellare selettivamente contenuti specifici dalla cronologia della conversazione man mano che cresce. Questo ti aiuta a ottimizzare i costi e a rimanere entro i limiti della finestra di contesto. Questa pagina copre:

    • Cancellazione dei risultati degli strumenti - Ideale per flussi di lavoro agentici con uso intensivo di strumenti dove i vecchi risultati degli strumenti non sono più necessari
    • Cancellazione dei blocchi di pensiero - Per gestire i blocchi di pensiero quando si utilizza il pensiero esteso, con opzioni per preservare il pensiero recente per la continuità del contesto
    • Compattazione SDK lato client - Un'alternativa basata su SDK per la gestione del contesto basata su riepilogo (la compattazione lato server è generalmente preferita)
    ApproccioDove viene eseguitoStrategieCome funziona
    Lato serverAPICancellazione dei risultati degli strumenti (clear_tool_uses_20250919)
    Cancellazione dei blocchi di pensiero (clear_thinking_20251015)
    Applicato prima che il prompt raggiunga Claude. Cancella contenuti specifici dalla cronologia della conversazione. Ogni strategia può essere configurata indipendentemente.
    Lato clientSDKCompattazioneDisponibile negli SDK Python e TypeScript quando si utilizza tool_runner. Genera un riepilogo e sostituisce la cronologia completa della conversazione. Vedi Compattazione lato client di seguito.

    Strategie lato server

    La modifica del contesto è attualmente in beta con supporto per la cancellazione dei risultati degli strumenti e la cancellazione dei blocchi di pensiero. Per abilitarla, utilizza l'intestazione beta context-management-2025-06-27 nelle tue richieste API.

    Condividi il feedback su questa funzione tramite il modulo di feedback.

    Cancellazione dei risultati degli strumenti

    La strategia clear_tool_uses_20250919 cancella i risultati degli strumenti quando il contesto della conversazione cresce oltre la soglia configurata. Questo è particolarmente utile per flussi di lavoro agentici con uso intensivo di strumenti. I vecchi risultati degli strumenti (come contenuti di file o risultati di ricerca) non sono più necessari una volta che Claude li ha elaborati.

    Quando attivata, l'API cancella automaticamente i risultati degli strumenti più vecchi in ordine cronologico. Ogni risultato cancellato viene sostituito con testo segnaposto in modo che Claude sappia che è stato rimosso. Per impostazione predefinita, vengono cancellati solo i risultati degli strumenti. Puoi facoltativamente cancellare sia i risultati degli strumenti che le chiamate degli strumenti (i parametri di utilizzo dello strumento) impostando clear_tool_inputs su true.

    Cancellazione dei blocchi di pensiero

    La strategia clear_thinking_20251015 gestisce i blocchi thinking nelle conversazioni quando il pensiero esteso è abilitato. Questa strategia ti dà il controllo sulla preservazione del pensiero: puoi scegliere di mantenere più blocchi di pensiero per mantenere la continuità del ragionamento, o cancellarli più aggressivamente per risparmiare spazio di contesto.

    Comportamento predefinito: Quando il pensiero esteso è abilitato senza configurare la strategia clear_thinking_20251015, l'API mantiene automaticamente solo i blocchi di pensiero dall'ultimo turno dell'assistente (equivalente a keep: {type: "thinking_turns", value: 1}).

    Per massimizzare i cache hit, preserva tutti i blocchi di pensiero impostando keep: "all".

    Un turno di conversazione dell'assistente può includere più blocchi di contenuto (ad es. quando si utilizzano strumenti) e più blocchi di pensiero (ad es. con pensiero intercalato).

    La modifica del contesto avviene lato server

    La modifica del contesto viene applicata lato server prima che il prompt raggiunga Claude. La tua applicazione client mantiene la cronologia completa e non modificata della conversazione. Non è necessario sincronizzare lo stato del tuo client con la versione modificata. Continua a gestire la tua cronologia completa della conversazione localmente come faresti normalmente.

    Modifica del contesto e caching dei prompt

    L'interazione della modifica del contesto con il caching dei prompt varia a seconda della strategia:

    • Cancellazione dei risultati degli strumenti: Invalida i prefissi dei prompt memorizzati nella cache quando il contenuto viene cancellato. Per tenerne conto, cancella abbastanza token per rendere l'invalidazione della cache utile. Utilizza il parametro clear_at_least per garantire che un numero minimo di token venga cancellato ogni volta. Dovrai sostenere i costi di scrittura della cache ogni volta che il contenuto viene cancellato, ma le richieste successive possono riutilizzare il prefisso appena memorizzato nella cache.

    • Cancellazione dei blocchi di pensiero: Quando i blocchi di pensiero sono mantenuti nel contesto (non cancellati), la cache dei prompt viene preservata, abilitando i cache hit e riducendo i costi dei token di input. Quando i blocchi di pensiero sono cancellati, la cache viene invalidata nel punto in cui avviene la cancellazione. Configura il parametro keep in base al fatto che tu voglia dare priorità alle prestazioni della cache o alla disponibilità della finestra di contesto.

    Modelli supportati

    La modifica del contesto è disponibile su:

    • Claude Opus 4.6 (claude-opus-4-6)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)
    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)

    Utilizzo della cancellazione dei risultati degli strumenti

    Il modo più semplice per abilitare la cancellazione dei risultati degli strumenti è specificare solo il tipo di strategia. Tutte le altre opzioni di configurazione utilizzano i loro valori predefiniti:

    Configurazione avanzata

    Puoi personalizzare il comportamento della cancellazione dei risultati degli strumenti con parametri aggiuntivi:

    Utilizzo della cancellazione dei blocchi di pensiero

    Abilita la cancellazione dei blocchi di pensiero per gestire il contesto e il caching dei prompt in modo efficace quando il pensiero esteso è abilitato:

    Opzioni di configurazione per la cancellazione dei blocchi di pensiero

    La strategia clear_thinking_20251015 supporta la seguente configurazione:

    Opzione di configurazionePredefinitoDescrizione
    keep{type: "thinking_turns", value: 1}Definisce quanti turni recenti dell'assistente con blocchi di pensiero preservare. Utilizza {type: "thinking_turns", value: N} dove N deve essere > 0 per mantenere gli ultimi N turni, o "all" per mantenere tutti i blocchi di pensiero.

    Configurazioni di esempio:

    // Keep thinking blocks from the last 3 assistant turns
    {
      "type": "clear_thinking_20251015",
      "keep": {
        "type": "thinking_turns",
        "value": 3
      }
    }
    
    // Keep all thinking blocks (maximizes cache hits)
    {
      "type": "clear_thinking_20251015",
      "keep": "all"
    }

    Combinazione di strategie

    Puoi utilizzare sia la cancellazione dei blocchi di pensiero che la cancellazione dei risultati degli strumenti insieme:

    Quando si utilizzano più strategie, la strategia clear_thinking_20251015 deve essere elencata per prima nell'array edits.

    Opzioni di configurazione per la cancellazione dei risultati degli strumenti

    Opzione di configurazionePredefinitoDescrizione
    trigger100.000 token di inputDefinisce quando la strategia di modifica del contesto si attiva. Una volta che il prompt supera questa soglia, la cancellazione inizierà. Puoi specificare questo valore in input_tokens o tool_uses.
    keep3 utilizzi di strumentiDefinisce quante coppie recenti di utilizzo/risultato dello strumento mantenere dopo che si verifica la cancellazione. L'API rimuove prima le interazioni degli strumenti più vecchie, preservando le più recenti.
    clear_at_leastNessunoGarantisce che un numero minimo di token venga cancellato ogni volta che la strategia si attiva. Se l'API non riesce a cancellare almeno l'importo specificato, la strategia non verrà applicata. Questo aiuta a determinare se la cancellazione del contesto vale la pena di interrompere la cache dei prompt.
    exclude_toolsNessunoElenco dei nomi degli strumenti i cui utilizzi e risultati non dovrebbero mai essere cancellati. Utile per preservare il contesto importante.

    Risposta della modifica del contesto

    Puoi vedere quali modifiche del contesto sono state applicate alla tua richiesta utilizzando il campo di risposta context_management, insieme a statistiche utili sul contenuto e sui token di input cancellati.

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

    Per le risposte in streaming, le modifiche del contesto saranno incluse nell'evento finale message_delta:

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

    Conteggio dei token

    L'endpoint di conteggio dei token supporta la gestione del contesto, permettendoti di visualizzare in anteprima quanti token il tuo prompt utilizzerà dopo che la modifica del contesto è stata applicata.

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

    La risposta mostra sia il conteggio finale dei token dopo che la gestione del contesto è stata applicata (input_tokens) che il conteggio originale dei token prima che si verificasse qualsiasi cancellazione (original_input_tokens).

    Utilizzo con lo strumento Memory

    La modifica del contesto può essere combinata con lo strumento memory. Quando il contesto della tua conversazione si avvicina alla soglia di cancellazione configurata, Claude riceve un avviso automatico per preservare le informazioni importanti. Questo consente a Claude di salvare i risultati degli strumenti o il contesto nei suoi file di memoria prima che vengano cancellati dalla cronologia della conversazione.

    Questa combinazione ti consente di:

    • Preservare il contesto importante: Claude può scrivere informazioni essenziali dai risultati degli strumenti nei file di memoria prima che quei risultati vengano cancellati
    • Mantenere flussi di lavoro di lunga durata: Abilita flussi di lavoro agentici che altrimenti supererebbero i limiti di contesto scaricando le informazioni nell'archiviazione persistente
    • Accedere alle informazioni su richiesta: Claude può cercare informazioni precedentemente cancellate dai file di memoria quando necessario, piuttosto che mantenere tutto nella finestra di contesto attiva

    Ad esempio, in un flusso di lavoro di modifica dei file dove Claude esegue molte operazioni, Claude può riassumere i cambiamenti completati nei file di memoria man mano che il contesto cresce. Quando i risultati degli strumenti vengono cancellati, Claude mantiene l'accesso a quell'informazione attraverso il suo sistema di memoria e può continuare a lavorare in modo efficace.

    Per utilizzare entrambe le funzioni insieme, abilitale nella tua richiesta API:

    Compattazione lato client (SDK)

    La compattazione lato server è consigliata rispetto alla compattazione SDK. La compattazione lato server gestisce la gestione del contesto automaticamente con minore complessità di integrazione, migliore calcolo dell'utilizzo dei token e nessuna limitazione lato client. Utilizza la compattazione SDK solo se hai specificamente bisogno del controllo lato client sul processo di riepilogo.

    La compattazione è disponibile negli SDK Python e TypeScript quando si utilizza il metodo tool_runner.

    La compattazione è una funzione SDK che gestisce automaticamente il contesto della conversazione generando riepiloghi quando l'utilizzo dei token cresce troppo. A differenza delle strategie di modifica del contesto lato server che cancellano il contenuto, la compattazione istruisce Claude a riassumere la cronologia della conversazione, quindi sostituisce la cronologia completa con quel riepilogo. Questo consente a Claude di continuare a lavorare su attività di lunga durata che altrimenti supererebbero la finestra di contesto.

    Come funziona la compattazione

    Quando la compattazione è abilitata, l'SDK monitora l'utilizzo dei token dopo ogni risposta del modello:

    1. Controllo della soglia: L'SDK calcola i token totali come input_tokens + cache_creation_input_tokens + cache_read_input_tokens + output_tokens.
    2. Generazione del riepilogo: Quando la soglia viene superata, un prompt di riepilogo viene iniettato come turno dell'utente e Claude genera un riepilogo strutturato avvolto in tag <summary></summary>.
    3. Sostituzione del contesto: L'SDK estrae il riepilogo e sostituisce l'intera cronologia dei messaggi con esso.
    4. Continuazione: La conversazione riprende dal riepilogo, con Claude che continua da dove aveva lasciato.

    Utilizzo della compattazione

    Aggiungi compaction_control alla tua chiamata tool_runner:

    Cosa accade durante la compattazione

    Man mano che la conversazione cresce, la cronologia dei messaggi si accumula:

    Prima della compattazione (avvicinandosi a 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 ...
    ]

    Quando i token superano la soglia, l'SDK inietta una richiesta di riepilogo e Claude genera un riepilogo. L'intera cronologia viene quindi sostituita:

    Dopo la compattazione (tornato a ~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 continua a lavorare da questo riepilogo come se fosse la cronologia della conversazione originale.

    Opzioni di configurazione

    ParametroTipoObbligatorioPredefinitoDescrizione
    enabledbooleanSì-Se abilitare la compattazione automatica
    context_token_thresholdnumberNo100.000Conteggio dei token al quale la compattazione si attiva
    modelstringNoStesso del modello principaleModello da utilizzare per generare i riepiloghi
    summary_promptstringNoVedi sottoPrompt personalizzato per la generazione del riepilogo

    Scelta di una soglia di token

    La soglia determina quando si verifica la compattazione. Una soglia più bassa significa compattazioni più frequenti con finestre di contesto più piccole. Una soglia più alta consente più contesto ma rischia di raggiungere i limiti.

    # 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
    }

    Utilizzo di un modello diverso per i riepiloghi

    Puoi utilizzare un modello più veloce o più economico per generare i riepiloghi:

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

    Prompt di riepilogo personalizzati

    Puoi fornire un prompt personalizzato per esigenze specifiche del dominio. Il tuo prompt dovrebbe istruire Claude a avvolgere il suo riepilogo in tag <summary></summary>.

    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."""
    }

    Prompt di riepilogo predefinito

    Il prompt di riepilogo integrato istruisce Claude a creare un riepilogo di continuazione strutturato che include:

    1. Panoramica dell'attività: La richiesta principale dell'utente, i criteri di successo e i vincoli.
    2. Stato attuale: Cosa è stato completato, file modificati e artefatti prodotti.
    3. Scoperte importanti: Vincoli tecnici, decisioni prese, errori risolti e approcci falliti.
    4. Passaggi successivi: Azioni specifiche necessarie, ostacoli e ordine di priorità.
    5. Contesto da preservare: Preferenze dell'utente, dettagli specifici del dominio e impegni presi.

    Questa struttura consente a Claude di riprendere il lavoro in modo efficiente senza perdere contesto importante o ripetere errori.

    Limitazioni

    Strumenti lato server

    La compattazione richiede una considerazione speciale quando si utilizzano strumenti lato server come web search o web fetch.

    Quando si utilizzano strumenti lato server, l'SDK potrebbe calcolare in modo errato l'utilizzo dei token, causando l'attivazione della compattazione al momento sbagliato.

    Ad esempio, dopo un'operazione di ricerca web, la risposta dell'API potrebbe mostrare:

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

    L'SDK calcola l'utilizzo totale come 63.000 + 270.000 = 333.000 token. Tuttavia, il valore cache_read_input_tokens include letture accumulate da più chiamate API interne effettuate dallo strumento lato server, non dal tuo contesto di conversazione effettivo. La tua lunghezza di contesto reale potrebbe essere solo i 63.000 input_tokens, ma l'SDK vede 333k e attiva la compattazione prematuramente.

    Soluzioni alternative:

    • Utilizza l'endpoint token counting per ottenere la lunghezza di contesto accurata
    • Evita la compattazione quando utilizzi estensivamente strumenti lato server

    Casi limite di utilizzo degli strumenti

    Quando la compattazione viene attivata mentre una risposta di utilizzo dello strumento è in sospeso, l'SDK rimuove il blocco di utilizzo dello strumento dalla cronologia dei messaggi prima di generare il riepilogo. Claude emetterà nuovamente la chiamata dello strumento dopo la ripresa dal riepilogo se ancora necessaria.

    Monitoraggio della compattazione

    Abilita la registrazione per tracciare quando si verifica la compattazione:

    import logging
    
    logging.basicConfig(level=logging.INFO)
    logging.getLogger("anthropic.lib.tools").setLevel(logging.INFO)
    
    # I log mostreranno:
    # INFO: Token usage 105000 has exceeded the threshold of 100000. Performing compaction.
    # INFO: Compaction complete. New token usage: 2500

    Quando utilizzare la compattazione

    Buoni casi d'uso:

    • Attività di agenti a lunga esecuzione che elaborano molti file o fonti di dati
    • Flussi di lavoro di ricerca che accumulano grandi quantità di informazioni
    • Attività multi-step con progressi chiari e misurabili
    • Attività che producono artefatti (file, report) che persistono al di fuori della conversazione

    Casi d'uso meno ideali:

    • Attività che richiedono il ricordo preciso dei dettagli della conversazione iniziale
    • Flussi di lavoro che utilizzano estensivamente strumenti lato server
    • Attività che devono mantenere lo stato esatto su molte variabili
    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-opus-4-6",
            "max_tokens": 4096,
            "messages": [
                {
                    "role": "user",
                    "content": "Search for recent developments in AI"
                }
            ],
            "tools": [
                {
                    "type": "web_search_20250305",
                    "name": "web_search"
                }
            ],
            "context_management": {
                "edits": [
                    {"type": "clear_tool_uses_20250919"}
                ]
            }
        }'
    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-opus-4-6",
            "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
                }
            ],
            "context_management": {
                "edits": [
                    {
                        "type": "clear_tool_uses_20250919",
                        "trigger": {
                            "type": "input_tokens",
                            "value": 30000
                        },
                        "keep": {
                            "type": "tool_uses",
                            "value": 3
                        },
                        "clear_at_least": {
                            "type": "input_tokens",
                            "value": 5000
                        },
                        "exclude_tools": ["web_search"]
                    }
                ]
            }
        }'
    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-opus-4-6",
            "max_tokens": 1024,
            "messages": [...],
            "thinking": {
                "type": "enabled",
                "budget_tokens": 10000
            },
            "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=1024,
        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_inputsfalseControlla se i parametri della chiamata dello strumento vengono cancellati insieme ai risultati dello strumento. Per impostazione predefinita, vengono cancellati solo i risultati dello strumento mentre le chiamate originali dello strumento di Claude rimangono visibili.
    curl https://api.anthropic.com/v1/messages/count_tokens \
        --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-opus-4-6",
            "messages": [
                {
                    "role": "user",
                    "content": "Continue our conversation..."
                }
            ],
            "tools": [...],
            "context_management": {
                "edits": [
                    {
                        "type": "clear_tool_uses_20250919",
                        "trigger": {
                            "type": "input_tokens",
                            "value": 30000
                        },
                        "keep": {
                            "type": "tool_uses",
                            "value": 5
                        }
                    }
                ]
            }
        }'
    response = client.beta.messages.create(
        model="claude-opus-4-6",
        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"}
            ]
        }
    )
    import anthropic
    
    client = anthropic.Anthropic()
    
    runner = client.beta.messages.tool_runner(
        model="claude-opus-4-6",
        max_tokens=4096,
        tools=[...],
        messages=[
            {
                "role": "user",
                "content": "Analyze all the files in this directory and write a summary report."
            }
        ],
        compaction_control={
            "enabled": True,
            "context_token_threshold": 100000
        }
    )
    
    for message in runner:
        print(f"Tokens used: {message.usage.input_tokens}")
    
    final = runner.until_done()