llama.cpp Массовая повторная обработка запросов с помощью кодовых агентов: отладка KV-кэша и обмена контекстом

Разработчик на r/LocalLLaMA столкнулся с серьезной проблемой производительности llama.cpp при запуске длинноконтекстных кодирующих агентов (opencode + pi.dev) через llama-swap. Даже при очень похожих промптах (сходство LCP часто >0.99) система периодически сбрасывает кэш KV и перерабатывает 40k+ токенов, что приводит к TTFT в несколько минут.
Наблюдаемое поведение
- Контекст вырастает до 50k+ токенов.
- После нескольких обычных повторных использований (например,
prompt eval time = 473 ms / 19 tokens) значениеn_pastвнезапно падает до ~4-5k. - llama.cpp затем перерабатывает полный промпт:
n_tokens = 4750 prompt eval time = 222411 ms / 44016 tokens. - Использование кэша достигает 4676 МиБ, превышая установленный лимит (2500 МиБ).
Текущая конфигурация
llama-server --ctx-size 150000 --parallel 1 --ctx-checkpoints 32 --cache-ram 2500 --cache-reuse 256 -no-kvu --no-context-shiftПредполагаемые причины
- Инвалидация кэша из-за переполнения лимита
--cache-ram– лог показывает 4676 МиБ использования против лимита 2500 МиБ. - Плохой механизм повторного использования KV при изменении начальных токенов промпта (возможно, частые изменения в opencode).
- Недостаточные значения
--ctx-checkpointsили--cache-reuseдля размера контекста 150k.
Рекомендации сообщества
В обсуждении пока мало ответов, но очевидные первые шаги: увеличить --cache-ram до уровня типичного использования (например, 5000+ МиБ) или уменьшить --ctx-size, чтобы оставаться в пределах лимита кэша. Также стоит проверить, не изменяет ли opencode намеренно префиксы промптов; если да, фиксация системного промпта или использование фиксированного префикса может улучшить повторное использование.
Разработчикам, использующим подобные конфигурации, предлагается делиться своими рабочими настройками в исходном обсуждении.
📖 Читать полный источник: r/LocalLLaMA
👀 Смотрите также

Исправление расхода токенов Claude Code: отключение заголовка атрибуции для улучшения кэширования.
Установка CLAUDE_CODE_ATTRIBUTION_HEADER=false в конфигурации вашей оболочки может повысить процент попаданий в кэш промптов Claude Code между сессиями с 48% до 99,98%, снижая затраты на обработку системных промптов в 7 раз за сессию.

Claude Code Безголовый режим с флагом --print
Claude Code может работать в автономном режиме с использованием флага --print, что позволяет передавать промпты для автоматического вывода без интерактивных сессий. Это обеспечивает интеграцию в CI/CD пайплайны, git-хуки и bash-скрипты.

Клод Код требует конкретных запросов, а не расплывчатых инструкций.
Разработчик сообщает, что Claude Code дает лучшие результаты с подробными промптами, а не с расплывчатыми инструкциями, ссылаясь на опыт работы с 4 миллиардами токенов за 5 месяцев.

Прекратите сжигать токены Claude Code на чат-вопросы
Один разработчик на r/ClaudeAI сэкономил еженедельный лимит токенов, направляя простые вопросы чата дешевым моделям вроде Haiku, оставив Claude Code для агентских задач, таких как редактирование нескольких файлов.