Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.6Руководство миграцииУстаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIОбработка причин остановкиЛучшие практики промптирования
    Возможности модели
    Extended thinkingAdaptive thinkingУсилиеБыстрый режим (preview)Структурированные выходные данныеЦитированияПотоковая передача сообщенийПакетная обработкаПоддержка PDFРезультаты поискаМногоязычная поддержкаEmbeddingsЗрение
    Инструменты
    ОбзорКак реализовать использование инструментовИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент памятиИнструмент BashИнструмент управления компьютеромИнструмент текстового редактора
    Инфраструктура инструментов
    Поиск инструментовПрограммный вызов инструментовПотоковая передача инструментов с детализацией
    Управление контекстом
    Контекстные окнаСжатиеРедактирование контекстаКэширование промптовПодсчет токенов
    Файлы и ресурсы
    Files API
    Agent Skills
    ОбзорБыстрый стартЛучшие практикиSkills для предприятийИспользование Skills с API
    Agent SDK
    ОбзорБыстрый стартTypeScript SDKTypeScript V2 (preview)Python SDKРуководство миграции
    MCP в API
    MCP коннекторУдаленные MCP серверы
    Claude на платформах третьих сторон
    Amazon BedrockMicrosoft FoundryVertex AI
    Инженерия промптов
    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясны и прямолинейныИспользуйте примеры (многошаговое промптирование)Дайте Claude думать (CoT)Используйте XML тегиДайте Claude роль (системные промпты)Цепочка сложных промптовСоветы для длинного контекстаСоветы для Extended thinking
    Тестирование и оценка
    Определение критериев успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки
    Укрепление защиты
    Снижение галлюцинацийУвеличение согласованности выходных данныхСмягчение jailbreaksПотоковая передача отказовСнижение утечки промптаДержите Claude в образе
    Администрирование и мониторинг
    Обзор Admin APIРезидентность данныхРабочие пространстваUsage and Cost APIClaude Code Analytics APIZero 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
    Управление контекстом

    Редактирование контекста

    Автоматически управляйте контекстом разговора по мере его роста с помощью редактирования контекста.

    Обзор

    Для большинства случаев использования компактирование на стороне сервера является основной стратегией управления контекстом в долгоживущих разговорах. Стратегии на этой странице полезны для конкретных сценариев, когда вам нужен более точный контроль над тем, какой контент очищается.

    Редактирование контекста позволяет вам выборочно очищать определённый контент из истории разговора по мере её роста. Это помогает оптимизировать затраты и оставаться в пределах лимитов контекстного окна. На этой странице рассматриваются:

    • Очистка результатов инструментов - лучше всего подходит для агентских рабочих процессов с интенсивным использованием инструментов, где старые результаты инструментов больше не нужны
    • Очистка блоков мышления - для управления блоками мышления при использовании расширенного мышления с опциями сохранения недавнего мышления для непрерывности контекста
    • Компактирование SDK на стороне клиента - альтернатива на основе SDK для управления контекстом на основе резюме (компактирование на стороне сервера обычно предпочтительнее)
    ПодходГде выполняетсяСтратегииКак это работает
    На стороне сервераAPIОчистка результатов инструментов (clear_tool_uses_20250919)
    Очистка блоков мышления (clear_thinking_20251015)
    Применяется до того, как запрос достигнет Claude. Очищает определённый контент из истории разговора. Каждая стратегия может быть настроена независимо.
    На стороне клиентаSDKКомпактированиеДоступно в Python и TypeScript SDKs при использовании tool_runner. Генерирует резюме и заменяет полную историю разговора. См. Компактирование на стороне клиента ниже.

    Стратегии на стороне сервера

    Редактирование контекста в настоящее время находится в бета-версии с поддержкой очистки результатов инструментов и очистки блоков мышления. Чтобы включить его, используйте заголовок бета-версии context-management-2025-06-27 в ваших запросах API.

    Поделитесь отзывом об этой функции через форму обратной связи.

    Очистка результатов инструментов

    Стратегия clear_tool_uses_20250919 очищает результаты инструментов, когда контекст разговора растёт сверх вашего настроенного порога. Это особенно полезно для агентских рабочих процессов с интенсивным использованием инструментов. Старые результаты инструментов (такие как содержимое файлов или результаты поиска) больше не нужны после того, как Claude их обработал.

    При активации API автоматически очищает самые старые результаты инструментов в хронологическом порядке. Каждый очищенный результат заменяется текстом-заполнителем, чтобы Claude знал, что он был удалён. По умолчанию очищаются только результаты инструментов. Вы можете дополнительно очистить как результаты инструментов, так и вызовы инструментов (параметры использования инструмента), установив clear_tool_inputs в true.

    Очистка блоков мышления

    Стратегия clear_thinking_20251015 управляет блоками thinking в разговорах, когда включено расширенное мышление. Эта стратегия даёт вам контроль над сохранением мышления: вы можете выбрать сохранение большего количества блоков мышления для поддержания непрерывности рассуждений или очищать их более агрессивно, чтобы сэкономить пространство контекста.

    Поведение по умолчанию: Когда расширенное мышление включено без настройки стратегии clear_thinking_20251015, API автоматически сохраняет только блоки мышления из последнего хода ассистента (эквивалентно keep: {type: "thinking_turns", value: 1}).

    Чтобы максимизировать попадания в кэш, сохраните все блоки мышления, установив keep: "all".

    Ход разговора ассистента может включать несколько блоков контента (например, при использовании инструментов) и несколько блоков мышления (например, с чередующимся мышлением).

    Редактирование контекста происходит на стороне сервера

    Редактирование контекста применяется на стороне сервера до того, как запрос достигнет Claude. Ваше клиентское приложение сохраняет полную, неизменённую историю разговора. Вам не нужно синхронизировать состояние вашего клиента с отредактированной версией. Продолжайте управлять полной историей разговора локально, как обычно.

    Редактирование контекста и кэширование запросов

    Взаимодействие редактирования контекста с кэшированием запросов варьируется в зависимости от стратегии:

    • Очистка результатов инструментов: Инвалидирует кэшированные префиксы запросов при очистке контента. Чтобы учесть это, очищайте достаточно токенов, чтобы инвалидация кэша была целесообразной. Используйте параметр clear_at_least для обеспечения минимального количества очищаемых токенов каждый раз. Вы будете нести расходы на запись в кэш каждый раз при очистке контента, но последующие запросы могут повторно использовать вновь кэшированный префикс.

    • Очистка блоков мышления: Когда блоки мышления сохраняются в контексте (не очищаются), кэш запроса сохраняется, что позволяет попадать в кэш и снижает затраты на входные токены. Когда блоки мышления очищаются, кэш инвалидируется в точке, где происходит очистка. Настройте параметр keep в зависимости от того, хотите ли вы приоритизировать производительность кэша или доступность контекстного окна.

    Поддерживаемые модели

    Редактирование контекста доступно на:

    • 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)

    Использование очистки результатов инструментов

    Самый простой способ включить очистку результатов инструментов — указать только тип стратегии. Все остальные параметры конфигурации используют значения по умолчанию:

    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
                        }
                    }
                ]
            }
        }'

    Параметры конфигурации для очистки блоков мышления

    Стратегия clear_thinking_20251015 поддерживает следующую конфигурацию:

    Параметр конфигурацииПо умолчаниюОписание
    keep{type: "thinking_turns", value: 1}Определяет, сколько последних ходов ассистента с блоками мышления сохранять. Используйте {type: "thinking_turns", value: N}, где N должно быть > 0, чтобы сохранить последние N ходов, или "all", чтобы сохранить все блоки мышления.

    Примеры конфигураций:

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

    Комбинирование стратегий

    Вы можете использовать очистку блоков мышления и очистку результатов инструментов вместе:

    При использовании нескольких стратегий стратегия clear_thinking_20251015 должна быть указана первой в массиве edits.

    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
                    }
                }
            ]
        }
    )

    Параметры конфигурации для очистки результатов инструментов

    Параметр конфигурацииПо умолчаниюОписание
    trigger100 000 входных токеновОпределяет, когда активируется стратегия редактирования контекста. Как только запрос превышает этот порог, начнётся очистка. Вы можете указать это значение либо в input_tokens, либо в tool_uses.
    keep3 использования инструментовОпределяет, сколько последних пар использования/результата инструмента сохранять после очистки. API удаляет самые старые взаимодействия с инструментами в первую очередь, сохраняя самые последние.
    clear_at_leastНетОбеспечивает минимальное количество токенов, которые очищаются каждый раз при активации стратегии. Если API не может очистить по крайней мере указанное количество, стратегия не будет применена. Это помогает определить, стоит ли разрывать кэш запроса при очистке контекста.
    exclude_toolsНетСписок имён инструментов, использования и результаты которых никогда не должны очищаться. Полезно для сохранения важного контекста.
    clear_tool_inputsfalseКонтролирует, очищаются ли параметры вызова инструмента вместе с результатами инструментов. По умолчанию очищаются только результаты инструментов, а исходные вызовы инструментов Claude остаются видимыми.

    Ответ редактирования контекста

    Вы можете увидеть, какие редактирования контекста были применены к вашему запросу, используя поле ответа context_management, а также полезную статистику об очищенном контенте и входных токенах.

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

    Для потоковых ответов редактирования контекста будут включены в финальное событие message_delta:

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

    Подсчёт токенов

    Конечная точка подсчёта токенов поддерживает управление контекстом, позволяя вам предварительно просмотреть, сколько токенов будет использовать ваш запрос после применения редактирования контекста.

    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
    {
        "input_tokens": 25000,
        "context_management": {
            "original_input_tokens": 70000
        }
    }

    Ответ показывает как финальный подсчёт токенов после применения управления контекстом (input_tokens), так и исходный подсчёт токенов до любой очистки (original_input_tokens).

    Использование с инструментом Memory

    Редактирование контекста можно комбинировать с инструментом памяти. Когда контекст вашего разговора приближается к настроенному порогу очистки, Claude получает автоматическое предупреждение о сохранении важной информации. Это позволяет Claude сохранять результаты инструментов или контекст в файлы памяти перед их очисткой из истории разговора.

    Эта комбинация позволяет вам:

    • Сохранять важный контекст: Claude может записывать важную информацию из результатов инструментов в файлы памяти перед очисткой этих результатов
    • Поддерживать долгоживущие рабочие процессы: Включить агентские рабочие процессы, которые иначе превысили бы лимиты контекста, путём выгрузки информации в постоянное хранилище
    • Получать доступ к информации по требованию: Claude может искать ранее очищенную информацию из файлов памяти при необходимости, вместо того чтобы хранить всё в активном контекстном окне

    Например, в рабочем процессе редактирования файлов, где Claude выполняет много операций, Claude может суммировать завершённые изменения в файлы памяти по мере роста контекста. Когда результаты инструментов очищаются, Claude сохраняет доступ к этой информации через свою систему памяти и может продолжать работать эффективно.

    Чтобы использовать обе функции вместе, включите их в ваш запрос API:

    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"}
            ]
        }
    )

    Компактирование на стороне клиента (SDK)

    Компактирование на стороне сервера рекомендуется вместо компактирования SDK. Компактирование на стороне сервера автоматически обрабатывает управление контекстом с меньшей сложностью интеграции, лучшим расчётом использования токенов и без ограничений на стороне клиента. Используйте компактирование SDK только если вам специально нужен контроль на стороне клиента над процессом суммирования.

    Компактирование доступно в Python и TypeScript SDKs при использовании метода tool_runner.

    Компактирование — это функция SDK, которая автоматически управляет контекстом разговора путём генерирования резюме при чрезмерном росте использования токенов. В отличие от стратегий редактирования контекста на стороне сервера, которые очищают контент, компактирование инструктирует Claude суммировать историю разговора, а затем заменяет полную историю этим резюме. Это позволяет Claude продолжать работу над долгоживущими задачами, которые иначе превысили бы контекстное окно.

    Как работает компактирование

    Когда компактирование включено, SDK отслеживает использование токенов после каждого ответа модели:

    1. Проверка порога: SDK вычисляет общие токены как input_tokens + cache_creation_input_tokens + cache_read_input_tokens + output_tokens.
    2. Генерирование резюме: Когда порог превышен, запрос резюме вводится как ход пользователя, и Claude генерирует структурированное резюме, обёрнутое в теги <summary></summary>.
    3. Замена контекста: SDK извлекает резюме и заменяет всю историю сообщений им.
    4. Продолжение: Разговор возобновляется с резюме, с Claude продолжая с того места, где он остановился.

    Использование компактирования

    Добавьте compaction_control к вашему вызову tool_runner:

    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()

    Что происходит во время компактирования

    По мере роста разговора история сообщений накапливается:

    Перед компактированием (приближение к 100k токенам):

    [
      { "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 ...
    ]

    Когда токены превышают порог, SDK вводит запрос резюме и Claude генерирует резюме. Вся история затем заменяется:

    После компактирования (возврат к ~2-3k токенам):

    [
      {
        "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 продолжает работу с этого резюме, как если бы это была исходная история разговора.

    Параметры конфигурации

    ПараметрТипОбязательныйПо умолчаниюОписание
    enabledbooleanДа-Включить ли автоматическое компактирование
    context_token_thresholdnumberНет100 000Подсчёт токенов, при котором срабатывает компактирование
    modelstringНетТа же модель, что и основнаяМодель для использования при генерировании резюме
    summary_promptstringНетСм. нижеПользовательский запрос для генерирования резюме

    Выбор порога токенов

    Порог определяет, когда происходит компактирование. Более низкий порог означает более частые компактирования с меньшими контекстными окнами. Более высокий порог позволяет больше контекста, но рискует достичь лимитов.

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

    Использование другой модели для резюме

    Вы можете использовать более быструю или дешёвую модель для генерирования резюме:

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

    Пользовательские запросы резюме

    Вы можете предоставить пользовательский запрос для специфичных для домена потребностей. Ваш запрос должен инструктировать Claude обёртывать его резюме в теги <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."""
    }

    Стандартный запрос для создания резюме

    Встроенный запрос для создания резюме инструктирует Claude создать структурированное резюме продолжения, включающее:

    1. Обзор задачи: Основной запрос пользователя, критерии успеха и ограничения.
    2. Текущее состояние: Что было завершено, какие файлы были изменены и какие артефакты были созданы.
    3. Важные открытия: Технические ограничения, принятые решения, разрешённые ошибки и неудачные подходы.
    4. Следующие шаги: Конкретные действия, необходимые для выполнения, блокирующие факторы и порядок приоритизации.
    5. Контекст для сохранения: Предпочтения пользователя, специфичные для области детали и сделанные обещания.

    Эта структура позволяет Claude эффективно возобновить работу без потери важного контекста или повторения ошибок.

    Ограничения

    Серверные инструменты

    Компактирование требует особого внимания при использовании серверных инструментов, таких как веб-поиск или веб-выборка.

    При использовании серверных инструментов SDK может неправильно рассчитать использование токенов, что приведёт к срабатыванию компактирования в неправильный момент.

    Например, после операции веб-поиска ответ API может показать:

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

    SDK рассчитывает общее использование как 63 000 + 270 000 = 333 000 токенов. Однако значение cache_read_input_tokens включает накопленные чтения из нескольких внутренних вызовов API, сделанных серверным инструментом, а не ваш фактический контекст разговора. Ваша реальная длина контекста может быть только 63 000 input_tokens, но SDK видит 333k и преждевременно срабатывает компактирование.

    Обходные решения:

    • Используйте конечную точку подсчёта токенов для получения точной длины контекста
    • Избегайте компактирования при интенсивном использовании серверных инструментов

    Граничные случаи использования инструментов

    Когда компактирование срабатывает во время ожидания ответа на использование инструмента, SDK удаляет блок использования инструмента из истории сообщений перед созданием резюме. Claude повторно выдаст вызов инструмента после возобновления работы из резюме, если это всё ещё необходимо.

    Мониторинг компактирования

    Включите логирование для отслеживания срабатывания компактирования:

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

    Когда использовать компактирование

    Хорошие варианты использования:

    • Долгосрочные задачи агента, которые обрабатывают много файлов или источников данных
    • Рабочие процессы исследования, которые накапливают большие объёмы информации
    • Многошаговые задачи с чёткими, измеримыми результатами
    • Задачи, которые создают артефакты (файлы, отчёты), сохраняющиеся вне разговора

    Менее идеальные варианты использования:

    • Задачи, требующие точного воспоминания ранних деталей разговора
    • Рабочие процессы, интенсивно использующие серверные инструменты
    • Задачи, которые должны поддерживать точное состояние во многих переменных

    Was this page helpful?

    • Обзор
    • Стратегии на стороне сервера
    • Очистка результатов инструментов
    • Очистка блоков мышления
    • Редактирование контекста происходит на стороне сервера
    • Редактирование контекста и кэширование запросов
    • Поддерживаемые модели
    • Использование очистки результатов инструментов
    • Расширенная конфигурация
    • Использование очистки блоков мышления
    • Параметры конфигурации для очистки блоков мышления
    • Комбинирование стратегий
    • Параметры конфигурации для очистки результатов инструментов
    • Ответ редактирования контекста
    • Подсчёт токенов
    • Использование с инструментом Memory
    • Компактирование на стороне клиента (SDK)
    • Как работает компактирование
    • Использование компактирования
    • Параметры конфигурации
    • Стандартный запрос для создания резюме
    • Ограничения
    • Мониторинг компактирования
    • Когда использовать компактирование