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
👀 Смотрите также

Сократите токены OpenClaw Boot на 43% с помощью инструмента для уточнения и файлов памяти
Сокращение загрузочных токенов с ~9 457 до ~5 400 (на 43 %) путем преобразования TOOLS.md в индекс, переноса деталей инструментов в отдельные файлы и внедрения поэтапного продвижения памяти.

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

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

Использование описаний проектов для управления памятью в крупных проектах OpenClaw
Разработчик делится процессом, при котором после каждого крупного этапа он запускает отдельного работника OpenClaw для анализа кодовой базы и написания документа «нарратива проекта», который помогает выявить сломанные конвейеры, избыточности и недостающие элементы, которые основной работник может упустить.