Автор: abavyka
Контекст і кеш: чому сесія тупить і скільки це коштує
В агенті контекст забивається швидше, ніж у чаті. Що саме туди потрапляє і як з цим жити.
Чати claude мають аналог CLAUDE.md — в проєкті є інструкції і завантажені файли (project knowledge) підмішуються в кожен чат цього проєкту ще до повідомлення, тобто теж їдять контекст. Коли файлів стає так багато, що вони підходять до ліміту вікна, автоматично вмикається RAG: Claude вже не тримає всю базу в контексті, а шукає по ній потрібні шматки під конкретне питання. Правило те саме, що й для CLAUDE.md: в інструкціях коротко і по ділу, довідкові доки — у файли.
Що лежить у контексті ще до першого повідомлення
• System prompt: інструкції Claude Code і опис tools
• CLAUDE.md (глобальний і проєктний) + auto memory
• Назви MCP-інструментів і короткі описи skills
Промпт на цьому фоні — крапля.
Що додається під час роботи
• Кожен прочитаний файл. Це головний пожирач місця
• Вивід команд: тести, grep, логи
• Відповіді самого Claude
Прикол у тому, що в терміналі видно лише «Read auth.ts» одним рядком, а в контекст ліг увесь файл.
Чому тупить
• У моделі обмежений «бюджет уваги». Чим більше тексту, тим гірше вона тримає деталі. Anthropic це називає context rot. Тобто якість падає задовго до того, як вікно закінчилось.
• Хвости попередніх задач конкурують з тим, що треба зараз.
• Коли контекст майже повний, Claude Code робить auto-compact: стискає розмову в підсумок. Сесія не обривається, але повні логи й проміжні міркування зникають, лишаються summary і кілька останніх змінених файлів. Звідси класичне «ми ж про це домовились 20 хвилин тому».
• У частини моделей є вікно на 1M токенів. Це відсуває проблему, а не лікує її.
Що з цим робити
• /context — подивитись, хто зжер місце
• • (Status line — щоб не вводити /context щоразу, можна вивести постійний рядок під промптом з відсотком контексту, модель, ліміти підписки 5h і 7d з часом до скидання. Налаштовується однією командою, Claude Code сам генерує скрипт і прописує settings:
/statusline [твої хотєлки. Працює локально, токени не їсть)
• /clear — між непов’язаними задачами (баг у бекенді й верстка форми — дві різні сесії)
• /compact focus on auth bug — стиснути самому з фокусом на паузі між задачами, а не чекати авто посеред роботи
• /rewind — якщо пішли не туди, відкотитись назад, а не пів сесії писати «ні, давай інакше»
• Конкретні промпти: «фікс у auth.ts» замість «знайди, де в нас авторизація», тоді агент читає менше файлів
• Важливі правила тримати в CLAUDE.md: після compact він підтягується заново з диска
• Великий ресерч віддавати субагенту: він читає файли у своєму контексті й повертає тільки короткий підсумок (про субагентів буде окремо)
Кеш
Модель нічого не пам’ятає, тому на кожне повідомлення Claude Code відправляє весь контекст заново. Без кешу кожен хід означав би повну обробку всієї історії. З кешем API пам’ятає початок запиту (префікс), і якщо він збігається з недавнім, перечитує його в рази дешевше й швидше: приблизно 10% від звичайної ціни input. Claude Code робить усе сам, але є нюанс: збіг має бути точним від самого початку. Змінилось щось на початку — все після цього рахується заново.
Що ламає кеш (наступний хід повільніший і дорожчий)
• Зміна моделі через /model, бо в кожної моделі свій кеш
• /compact, бо історія переписується (ще одна причина робити його на паузі)
• Довга пауза. Кеш живе обмежений час: на підписці в межах ліміту плану основна сесія тримає його годину, на API key — 5 хвилин. Кожен хід продовжує таймер
• Оновлення Claude Code: перша сесія після апдейту будує кеш з нуля
Що не ламає
• Редагування файлів, зміна permission mode, виклик skills, /rewind, субагенти
Якщо редагувати CLAUDE.md посеред сесії, кеш не ламається, але й зміни не застосовуються. Claude працює зі старою версією до /clear, /compact або перезапуску.
Чи працює кеш, видно в /usage: на свіжих версіях там є рядок Prompt cache (main) з відсотком попадань.
Оптимізація: модель обираєш на старті в залежності від задачі, а /compact і /clear робиш на паузах між задачами, не посеред.
Почитати:
• Context window
• Prompt caching
• Managing context
• Statusline
• Контекстне вікно з інтерактивною симуляцією сесії: https://code.claude.com/docs/en/context-window
• Як Claude Code використовує кеш: https://code.claude.com/docs/en/prompt-caching
• Anthropic про context engineering (звідти context rot): https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
• https://code.claude.com/docs/en/statusline