Як прискорити Claude Code та зменшити витрати
Надсилання всього контексту у кожному кроці збільшує ціну. Використовуйте /context та команди очищення, щоб оптимізувати сесії та економити токени.
Як запобігти уповільненню та зростанню витрат під час тривалих сесій Claude Code
Тривалі сесії Claude Code стають повільними та дорогими, оскільки кожен крок повторно надсилає весь контекст, а цей контекст постійно зростає. Рішення полягає в дотриманні правил гігієни у певному порядку. Виконайте /context, щоб побачити вміст вікна; видаліть елементи, за які ви платите під час кожного запиту. Використовуйте /clear між непов'язаними завданнями та /compact з інструкцією всередині одного тривалого завдання. Працюйте безперервними циклами, оскільки очищення кешу промптів перетворює дешеве читання на повний повторний запис усього сказаного.
Причини нарахування коштів пояснені в лічильнику токенів під час сесії агента.
Прочитайте /context перед внесенням будь-яких змін
Не намагайтеся вгадати вміст вікна. Claude Code надасть ці дані.
/context [all] відображає поточне використання контексту у вигляді кольорової сітки з пропозиціями щодо оптимізації для інструментів з великим обсягом контексту та надмірним споживанням пам'яті; all розгортає деталізацію по кожному елементу у повноекранному режимі. Розглядайте результат як п'ять категорій.
- The system prompt. Власні інструкції Claude Code. Фіксовані на весь сеанс.
- Tool definitions. Схема кожного інструменту, який може викликати агент, включаючи всі підключені MCP (Model Context Protocol) сервери.
- Memory files.
CLAUDE.mdта автоматична пам'ять, що завантажуються на початку сеансу. - Files and tool results. Кожен прочитаний файл та весь вивід ваших команд.
- Message history. Ваші запити та відповіді системи.
Перші три пункти є фіксованими витратами на кожен запит протягом усього сеансу. Останні два зростають. Зменште фіксовані витрати один раз на початку; постійно контролюйте зростаючу частину.
Два рядки вказують на переповнення вікна:
Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.Перший — це жорстке обмеження, при якому запит буде відхилено; відповідна помилка API звучить як Prompt is too long. Другий — це вікно стиснення, яке може бути меншим за реальне вікно контексту моделі (наприклад, для моделі з 1 million token). Запити після цього вікна все ще виконуються, тому воно є попередженням, а не відмовою.
На платних тарифах /usage додає другу частину, маркуючи такі дії, як довгий контекст або промахи кешу (cache misses), та пов'язуючи нещодавнє використання з окремими навичками, субагентами та MCP серверами.
CLAUDE.md — це постійний податок, тому тримайте його лаконічним
Ваш CLAUDE.md завантажується в контекст на початку сесії та залишається там. Якщо він містить детальний процедурний план розгортання, ці токени витрачаються навіть під час виправлення помилки в тестовому файлі. Рекомендація Anthropic: включайте лише необхідне та тримайте файл обсягом до 200 рядків.
Перенесіть процедури в skills. Skill завантажується лише під час виклику, тому робочий процес, який ви запускаєте двічі на тиждень, не витрачає ресурси в інші дні. Skills мають власний ліміт після компакції: тіла (bodies) повторно впорскуються з обмеженням 5,000 токенів на один skill та 25,000 токенів загалом; найстаріші видаляються першими. При урізанні (truncation) зберігається початок файлу, тому розміщуйте найважливіші інструкції на початку SKILL.md.
Те, що залишається після компакції, визначає місце розташування інструкції.
- System prompt та стиль виводу не змінюються, оскільки вони не є частиною історії повідомлень.
- Проєктний
CLAUDE.md, нерозподілені (unscoped) правила та auto memory повторно зчитуються з диска. - Правило з frontmatter
paths:втрачається, доки відповідний файл не буде прочитано знову. - Вкладений
CLAUDE.mdу підкаталозі втрачається, доки файл у цьому підкаталозі не буде прочитано знову. - Hooks не змінюються, оскільки hook виконується як код і ніколи не потрапляє в контекст.
Отже, правило, від якого ви залежите, має бути у проєктному CLAUDE.md: Claude Code спочатку очищує старі виводи інструментів (tool outputs), а потім виконує суммаризацію, тому інструкції з початку розмови можуть бути втрачені. Редагуйте пам'ять за допомогою /memory. Claude Code зберігає копію, завантажену на початку сесії, тому урізання в середині сесії зберігає prompt cache і не застосовується до наступного /clear, /compact або перезапуску.
/clear між завданнями, /compact всередині одного
Ці команди здаються взаємозамінними, але мають різну вартість.
/clear [name] створює новий діалог з порожнім контекстом. Вона не надсилає запит, тому не витрачає кошти. Передайте назву, щоб позначити попередній діалог у виборі /resume; /reset та /new є їхніми аліасами. Використовуйте цю команду одразу після переходу до іншого завдання. Інакше старе завдання буде надсилатися повторно, що призведе до повторного нарахування оплати за кожне повідомлення в новому завданні.
/compact [instructions] звільняє контекст, продовжуючи той самий діалог: вона створює резюме поточної історії та замінює її. Використовуйте її під час виконання одного тривалого завдання, де потрібна спадкоємність.
Завжди надавайте /compact інструкцію. Команда /compact без інструкцій використовує стандартний промпт, який не знає, яка частина роботи ще потребує завершення. Команда з інструкцією зберігає контекст:
/compact focus on the auth bug fix
/compact keep only the plan and the diffЯкщо ви виконуєте компакцію з однією і тією ж метою, додайте постійну інструкцію в CLAUDE.md вашого проєкту під заголовком # Compact instructions. У новій сесії /compact виведе Not enough messages to compact., що означає відсутність історії.
Тут часто виникає плутанина з вартістю. Запит на резюме використовує ваш префікс, тому він зчитує існуючий кеш замість повторної обробки історії; більша частина часу витрачається на генерацію резюме. Компакція великого контексту все одно є великим запитом, оскільки діалог, який резюмується, є вхідними даними. Наступний крок після компакції не є повільним: він перебудовує кеш для набагато коротшого промпту.
Існують дві дешевші команди. /rewind [description] повертає код і діалог до контрольної точки; для шляху, який ви хочете повністю скасувати, вона ефективніша за компакцію, оскільки обрізає контекст до префікса, який вже закешовано. /recap додає резюме як результат виконання команди замість заміни історії, тому закешований префікс залишається незмінним.
Повторювана автоматична компакція виводить наступне:
Autocompact is thrashing: the context refilled to the limit...Компакція пройшла успішно, але вивід файлу або інструменту кілька разів поспіль знову заповнив вікно, тому Claude Code припинив спроби. Відновіть роботу, прочитавши занадто великий файл діапазонами рядків, запустивши /compact з фокусом, що ігнорує великий вивід, передавши це завдання субагенту або використавши /clear, якщо попередній діалог завершено.
MCP сервери створюють постійні витрати ресурсів
Кожен підключений MCP сервер збільшує обсяг даних для кожного запиту протягом усієї сесії. Ви витрачаєте ресурси незалежно від того, чи викликаєте ви цей інструмент.
Claude Code оптимізує цей процес. За замовчуванням визначення MCP інструментів відкладені, тому до контексту потрапляють лише назви інструментів, доки Claude не використає конкретний інструмент. Виконайте /context, щоб побачити реальну вартість ваших серверів, та /mcp disable <name>, щоб видалити сервер, який не знадобиться сьогодні. Якщо ви запускаєте власні MCP сервери на VPS, ці ж розрахунки обмежують кількість інструментів, які має надавати один сервер.
Виконуйте ці дії на початку сесії. Хоча визначення залишаються відкладеними, підключення або відключення сервера лише додає дані до розмови, а кеш зберігається. Якщо визначення завантажуються у префікс (через вимкнений пошук інструментів або виняток сервера з відкладеного завантаження), подібна зміна змусить систему перечитувати все під час наступного запиту.
Фільтрація надлишкового виводу інструментів перед поданням у контекст
Результат роботи інструмента є вхідними даними, які повторно надсилаються на кожному наступному кроці. Тестовий запуск, що генерує 20,000 токенів виводу, не є одноразовою витратою: ви платите за нього знову на кожному кроці, поки він не вийде за межі вікна контексту.
Фільтруйте дані на джерелі. Використання hook, який залишає лише помилки перед тим, як Claude побачить результат, перетворює масив виводу на кілька сотень токенів — як на поточному кроці, так і при кожному повторному надсиланні.
npm test 2>&1 | grep -E "FAIL|Error:" | head -40Hook-и ніколи не потрапляють у контекст, оскільки вони виконуються як код. Використовуйте цей підхід для будь-якого інструмента, чий вивід перевищує межі екрана. Ця ж логіка застосовується до файлів обсягом 3,000 рядків: запитуйте лише потрібний діапазон рядків, оскільки після завантаження весь файл залишається у вікні контексту.
Визначте область зчитування агента та делегуйте трудомісткі завдання
Промпт із зазначеною назвою файлу та симптомом зчитує саме цей файл. Запит на загальне упорядкування проєкту змушує агента зчитувати все, що він вважатиме релевантним, і кожен такий файл залишається у вікні контексту.
Делегуйте об'ємні завдання субагенту. Тестування та обробка логів споживають багато контексту; субагент зберігає ці вихідні дані у власному вікні та повертає лише резюме. Компроміс: субагент створює власний кеш, який не має збігів при першому виклику, і використовує 5-хвилинний час життя кешу навіть за наявності підписки. Делегування надійно захищає ваш основний контекст. Це не завжди зменшує загальну кількість токенів.
Кэш-таймер: працюйте короткими сесіями
Кэш-кеш запитів робить повторне надсилання дешевшим: 0.1x від базової швидкості читання префікса проти 1.25x для запису, або 2x для запису при терміні дії в одну годину. Кожне використання оновлює запис без додаткових витрат, тому відлік часу починається з моменту останнього використання.
Тривалість дії залежить від способу автентифікації. Тому твердження «ваш кэш видаляється через п'ять хвилин» є помилковим.
- При підписці Claude Claude Code автоматично запитує термін дії в одну годину.
- Якщо ліміт вашого плану вичерпано і ви використовуєте оплачувані кредити, ви оплачуєте це використання, тому термін дії скорочується до п'яти хвилин.
- При використанні API key або хмарного провайдера термін дії залишається п'ять хвилин.
ENABLE_PROMPT_CACHING_1H=1дозволяє використовувати термін дії в одну годину, аFORCE_PROMPT_CACHING_5M=1примусово повертає його до п'яти хвилин.
Поради щодо ритму роботи однакові в обох випадках: працюйте безперервними сесіями. Якщо перерва у роботі перевищить термін дії кэшу, наступний запит змусить систему заново записувати весь накопичений префікс. Від'єднана сесія Claude Code у tmux не коштує нічого під час простою, але саме за цей час втрачається «теплий» кэш.
Деякі дії видаляють кэш під час роботи: зміна моделі, зміна рівня зусиль (effort level), увімкнення fast mode, підключення або відключення MCP server, увімкнення або вимкнення плагіна, заборона цілого інструменту, компакція (compacting) та оновлення Claude Code. /model часто стає несподіванкою, оскільки кожна модель має власний кэш; тому наступний запит зчитує всю історію без попадання в кэш (cache hits), навіть якщо вміст ідентичний.
Редагування файлів, редагування CLAUDE.md, виклик навичок та команд, запуск /recap, відкат (rewinding) та запуск субагента зберігають кэш. Кэш обмежений однією машиною та однією директорією, тому дві сесії в різних директоріях не мають доступу до кэшів одна одної.
Щоб перевірити, чи працює кэшування, прочитайте current_usage. cache_creation_input_tokens було записано зі швидкістю запису кэшу; cache_read_input_tokens було видано приблизно за одну десяту від стандартної швидкості вводу. Високий коефіцієнт відношення читання до створення (read-to-creation ratio) є ознакою нормальної роботи. Якщо показник створення залишається високим після кожного кроку, це означає, що щось у вашому префіксі постійно змінюється.
Чи вирішить це збільшення контекстного вікна?
Частково. Багато сучасних моделей підтримують контекстне вікно обсягом 1 million токенів, і принцип стиснення залишається незмінним навіть при великих лімітах. Економічна складова не змінюється, оскільки повний prompt все одно надсилається повторно, і за кожен крок нараховується оплата. Велике вікно визначає момент, коли ви змушені діяти; гігієна запитів визначає вартість. Якщо проблемою є вартість, а не ліміт, який план Claude підходить під ваш стиль роботи визначає, чи витрачаєте ви гроші, чи ліміт плану.
Редагування та компакція контексту в API — це різні операції
Якщо ви створюєте власного агента на базі Messages API, команди через slash відсутні, їх потрібно реалізовувати самостійно. За це відповідають дві серверні функції, які не є однаковими.
Редагування контексту (Context editing) вибірково видаляє певний вміст з історії розмови під час її розростання. Замість видаленого контенту вставляється текст-заповнювач, щоб Claude знав про видалення. Це бета-функція: надішліть anthropic-beta: context-management-2025-06-27 та налаштуйте стратегії у context_management.edits. clear_tool_uses_20250919 видаляє результати роботи інструментів, а clear_thinking_20251015 керує блоками роздумів (thinking blocks). Параметр trigger за замовчуванням становить 100,000 вхідних токенів, keep — останні 3 виклики інструментів, а clear_tool_inputs — false, що дозволяє зберігати вхідні дані та видаляти лише результати.
Компакція (Compaction) створює резюме (summary) і замінює ним повну історію розмови. Це також бета-функція: надішліть anthropic-beta: compact-2026-01-12 та використовуйте тип редагування compact_20260112. Тригер за замовчуванням — {"type": "input_tokens", "value": 150000}, а значення має бути не менше 50,000.
Компакція має одне правило передачі даних, яке призводить до помилок у роботі агентів. Відповідь починається з блоку контенту compaction, що містить резюме, після чого йде звичайний текстовий блок. Ви повинні передавати цей блок у наступних запитах, після чого API видалить усі попередні блоки контенту. На практиці: додавайте весь об'єкт response.content, а не лише текст.
В документації Anthropic серверна компакція називається основною стратегією керування контекстом у тривалих розмовах, а редагування контексту — опцією для точного керування видаленням даних. Спочатку перевірте підтримку моделлю. Поточні моделі Opus, Sonnet та Fable підтримують компакцію; claude-haiku-4-5 — ні; актуальний список міститься на сторінці compaction. Жодна з бета-функцій не керує функцією /compact у Claude Code; документація описує її як одноразовий запит на резюмування, який надсилає клієнт.
FAQ
Чому сесія Claude Code стає повільнішою та дорожчою, якщо вона триває довго?
Це відбувається тому, що на кожному кроці повторно надсилається весь діалог. Одне коротке запитання в сесії, що відкрита весь день, включає в себе весь контекст за цей день. Prompt caching знижує вартість, поки кеш активний (0.1x від базової ціни за вхідні дані при читанні). Якщо кеш не спрацьовує, той самий префікс переписується за тарифом 1.25x. Виконайте /context, щоб побачити, що займає вікно, та прочитайте за що нараховується плата у Claude Code, щоб дізнатися про цей механізм.
Яка різниця між /clear та /compact у Claude Code?
/clear створює нову розмову з порожнім контекстом. Команда не надсилає запит, тому вона безкоштовна; це найкращий вибір для переходу між різними завданнями. /compact зберігає поточну розмову, але замінює історію резюме (summary), що підходить для роботи над одним довгим завданням. Використовуйте інструкцію, як у /compact keep only the plan and the diff, оскільки саме вона визначає, які дані будуть збережені.
Як переглянути, що саме займає контекстне вікно Claude Code?
Виконайте /context або /context all для отримання детального звіту по кожному елементу. Команда відображає системний промпт, визначення інструментів, MCP servers, файли пам'яті та історію у вигляді кольорової сітки, а також надає рекомендації щодо інструментів, що надмірно споживають контекст, та роздутого об'єму пам'яті. На платних тарифах /usage також розподіляє нещодавнє використання за окремими навичками, subagents та MCP servers.
Чи варто використовувати контекстне вікно на 1 мільйон токенів замість компакції?
Збільшення вікна лише відкладає проблему, а не вирішує її. Деякі сучасні моделі, зокрема Opus 4.8 та Sonnet 5, підтримують контекстне вікно на 1 мільйон токенів, і компакція там працює так само. Кожен крок все одно повторно надсилає повний промпт і нараховує за нього плату, тому розмова на 400,000 токенів залишається дорогою незалежно від того, чи вміщується вона в ліміт.
Яка різниця між редагуванням контексту (context editing) та компакцією (compaction) у Claude API?
Редагування контексту вибірково видаляє старий вміст (переважно результати роботи інструментів), залишаючи на їхньому місці текст-заповнювач (placeholder), щоб Claude знав про видалення. Компакція створює резюме та замінює ним повну історію. Документація Anthropic називає компакцію основною стратегією для тривалих розмов, а редагування контексту — інструментом точного налаштування. Обидва методи є бета-функціями зі своїми заголовками та не пов'язані з /compact у Claude Code.