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

OpenClaw 에이전트 알림에 ntfy 사용하기
한 개발자가 OpenClaw 에이전트의 푸시 알림을 위해 ntfy.sh의 자체 호스팅 버전을 사용한 경험을 공유합니다. Discord나 Telegram 봇 대신 동일한 VPS에서 ntfy serve를 실행하고 HTTP POST 요청을 사용했습니다.

그래프 메모리 vs 마크다운: 확장 시 플랫 파일이 프롬프트 부채가 되는 이유
한 개발자가 AI 에이전트를 위한 마크다운 메모리 시스템이 80개 이상의 파일과 500만 자에 달하면서 검색이 추측에 불과해진 경험을 공유합니다. 해결책은 노드와 엣지를 이용한 그래프 메모리로, 에이전트가 작업별로 관련 컨텍스트만 렌더링하도록 하는 것입니다.

생각 구조 시각화를 위한 Claude 프롬프트: 의도, 현실, 격차
레딧 사용자가 Claude에게 대화의 구조적 패턴을 인식하고 반영하도록 요청하는 100단어 프롬프트를 공유했습니다. 이는 내용 자체가 아닌 의도(원하는 것), 현실(존재하는 것), 격차(해결되지 않은 것)로 분류된 패턴을 다룹니다.

클로드 협업 파일 접근 문제: Google Drive 스트리밍 모드 및 해결 방법
Google Drive for Desktop의 스트리밍 모드에서 Claude Cowork를 사용할 때, Cowork가 디스크에 실제 파일이 필요하기 때문에(플레이스홀더가 아닌) 파일 열기가 실패할 수 있습니다. 해결 방법은 특정 폴더를 오프라인에서 사용 가능하게 설정하고 표준 파일 형식을 사용하는 것입니다.