Определения инструментов и накопленные блоки tool_result занимают ваше контекстное окно. Долго работающие агенты с большим количеством инструментов или множеством ходов могут исчерпать доступный контекст до завершения задачи. Четыре подхода решают эту проблему на разных этапах конвейера.
Каждый подход направлен на свой источник нагрузки на контекст. Выберите тот, который соответствует тому, на что расходуются ваши токены.
| Подход | Что сокращает | Когда подходит | Подробнее |
|---|---|---|---|
| Поиск инструментов | Определения инструментов, загружаемые заранее | Большие наборы инструментов (20+), когда большинство инструментов не нужны на каждом ходу | Инструмент поиска инструментов |
| Программный вызов инструментов | Циклы обмена tool_result | Цепочки вызовов инструментов, которые можно выполнить как единый скрипт | Программный вызов инструментов |
| Кэширование подсказок | Стоимость токенов повторяющихся определений инструментов | Стабильные наборы инструментов во множестве запросов | Использование инструментов с кэшированием подсказок |
| Редактирование контекста | Старые блоки tool_result в истории | Длинные разговоры, в которых ранние результаты больше не актуальны | Редактирование контекста |
Поиск инструментов не загружает определения инструментов в контекстное окно, пока Claude не запросит их. Вместо отправки 50 схем инструментов заранее вы отправляете один инструмент tool_search и позволяете Claude находить остальные по мере необходимости. Это обменивает небольшое увеличение задержки (один дополнительный ход для поиска инструмента) на значительное сокращение базового использования контекста.
Программный вызов инструментов сворачивает последовательность вызовов инструментов в единый блок кода, который Claude пишет, а песочница выполнения кода Anthropic запускает. Вместо пяти циклов обмена tool_use и tool_result Claude выдаёт один скрипт, который вызывает все пять функций внутри песочницы. Промежуточные результаты никогда не попадают в историю разговора.
Кэширование подсказок не уменьшает количество токенов в контексте, но снижает стоимость их использования в последующих запросах. Если ваши определения инструментов стабильны, закэшируйте их один раз и повторно используйте кэшированный префикс в тысячах запросов. Это правильный выбор, когда набор инструментов большой, но фиксированный.
Редактирование контекста удаляет старые блоки tool_result из истории разговора после того, как они выполнили свою функцию. Длинный цикл работы агента может породить сотни промежуточных результатов, которые были полезны в своё время, но теперь являются балластом. Редактирование контекста позволяет удалить их без перезапуска разговора.
Эти подходы сочетаются друг с другом. Долго работающий агент может использовать поиск инструментов, чтобы держать набор инструментов компактным, кэширование подсказок — чтобы амортизировать стоимость оставшихся определений, и редактирование контекста — чтобы удалять устаревшие результаты по мере роста разговора. Каждый подход решает свою часть проблемы, поэтому их совместное использование не вызывает конфликтов.
Разумная отправная точка для агента с высокой нагрузкой:
Загружайте определения инструментов по запросу, а не заранее.
Сворачивайте цепочки вызовов инструментов в единый исполняемый скрипт.
Кэшируйте определения инструментов между запросами, чтобы снизить стоимость токенов.
Удаляйте устаревшие результаты инструментов из длительных разговоров.
Was this page helpful?