llama.cpp 대규모 프롬프트 재처리와 코딩 에이전트: KV 캐시 및 컨텍스트 스와핑 디버깅

r/LocalLLaMA의 한 개발자가 llama-swap을 통해 장문 컨텍스트 코딩 에이전트(opencode + pi.dev)를 실행할 때 llama.cpp에서 심각한 성능 문제를 겪고 있습니다. 프롬프트가 매우 유사한 경우(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 MiB에 도달하여 설정된 제한(2500 MiB)을 초과합니다.
현재 설정
llama-server --ctx-size 150000 --parallel 1 --ctx-checkpoints 32 --cache-ram 2500 --cache-reuse 256 -no-kvu --no-context-shift의심되는 원인
--cache-ram제한 초과로 인한 캐시 무효화 – 로그에 4676 MiB 사용 vs 2500 MiB 제한.- 초기 프롬프트 토큰이 변경될 때(아마 opencode가 자주 변경) 잘못된 KV 재사용 메커니즘.
- 150k 컨텍스트 크기에 대해
--ctx-checkpoints또는--cache-reuse가 불충분.
커뮤니티의 권장 사항
아직 답변이 많지 않지만, 첫 번째 단계로 --cache-ram을 일반적인 사용량(예: 5000+ MiB)에 맞게 늘리거나 --ctx-size를 줄여 캐시 제한 내로 유지하는 것이 포함됩니다. 또한 opencode가 의도적으로 프롬프트 접두사를 변경하는지 확인하십시오. 그렇다면 시스템 프롬프트를 고정하거나 고정된 접두사를 사용하면 재사용이 개선될 수 있습니다.
유사한 설정을 실행하는 개발자는 소스 스레드에서 작업 설정을 공유해 주세요.
📖 전체 소스 읽기: r/LocalLLaMA
👀 See Also

6GB VRAM 노트북에서 완전 로컬 AI 에이전트 실행하기: 학생들을 위한 단계별 가이드
학생들이 비싼 API에 의존하지 않고 6GB VRAM 노트북을 활용해 로컬에서 AI 에이전트를 실행하는 방법을 알아보세요. 우리의 가이드는 필수 단계와 도구를 상세히 설명합니다.

예/아니오 흐름: AI 코딩 세션에서 맥락 환각을 줄이는 간단한 기법
레딧 사용자가 AI 대화에서 일관성을 유지하기 위한 Yes Flow/No Flow 기법을 공유합니다. 이 기법은 수정을 쌓아올리기보다 프롬프트를 재작성하여 장기 코딩 세션 중 컨텍스트 붕괴와 환각을 줄이는 데 도움을 줍니다.

설정 롤백 감시 게이트웨이: 상태 확인과 자동 롤백 결합
Reddit 사용자가 포트 장애 시 OpenClaw 게이트웨이를 재시작하고, 5번 연속 시작 실패 시 구성을 자동 롤백하는 감시 프로세스를 제안했습니다. 잘못된 구성 변경으로 인한 부트 루프를 방지합니다.

AI 코딩 에이전트를 위한 Bite vs Nibble 접근법
한 NLP 연구자가 AI 코딩 에이전트 작업을 위한 두 가지 멘탈 모델을 설명합니다: claude.md와 같은 포괄적인 지침 파일을 사용하는 '한입(bite)' 접근법과, 여러 번의 반복을 통한 점진적 개선을 사용하는 '조금씩(nibble)' 접근법입니다.