server: jacekpoplawski에 의한 체크포인트 생성 수정 · Pull Request #22929 ·
요약
에이전트 기반 코딩 시 컨텍스트 최적화를 위한 대화 기록 수정 과정에서 발생하는 전체 프롬프트 재처리 문제를 해결하기 위한 PR입니다. llama.cpp가 변경된 부분만 효율적으로 처리하도록 개선하여 에이전트의 반응성을 높였습니다.
핵심 포인트
- 컨텍스트 재작성 시 발생하는 전체 프롬프트 재처리 문제 해결
- llama.cpp가 변경된 부분만 다시 처리하도록 최적화
- 에이전트 기반 코딩 환경의 반응성 및 효율성 개선
- 추론 과정(thinking) 보존을 통한 컨텍스트 관리
당신이 에이전트 기반 코딩 (agentic coding)을 위해 로컬 모델을 사용하고 있다고 상상해 보세요.
당신은 아이디어를 논의하고 (50k tokens), 그 다음 "구현해줘"라고 말합니다. 에이전트는 파일을 읽고, 파일을 쓰고, 명령어를 실행하며, 또 다른 20k tokens를 생성하여 코드를 완성합니다. 그다음 당신의 프롬프트는 그저 "고마워"인데, 그러면... 아무 일도 일어나지 않고, 당신은 "무언가"가 완료될 때까지 기다려야 합니다.
무슨 일이 일어나고 있는 것이냐면, opencode와 같은 일부 도구들이 똑똑하게 행동하여 컨텍스트 (context)를 최적화하려고 시도한다는 것입니다. 이들은 대화 기록 (conversation history)의 무언가를 수정합니다. 가장 좋은 경우, llama.cpp는 그 시점부터 모든 것을 다시 처리 (reprocess)해야 합니다. 최악의 경우, 전체 컨텍스트 (70k tokens)를 다시 처리해야 하며 "forcing full prompt re-processing..."이라는 메시지를 보게 됩니다.
이를 피하기 위해, 저는 opencode에서 pi로 전환했습니다. pi가 어떤 마법 같은 기능을 가지고 있어서가 아니라, pi는 그런 종류의 컨텍스트 재작성 (context rewriting)을 하지 않기 때문입니다.
또 다른 문제는 모델이 컨텍스트에서 추론 (reasoning) 과정을 제거함으로써 똑똑하게 행동하려 한다는 점입니다. 가장 좋은 경우, llama.cpp는 마지막 실행분 (20k tokens)만 다시 처리하면 됩니다. 최악의 경우, 다시 말하지만 모든 것 (70k)을 다시 처리해야 합니다.
이를 피하기 위해, 적어도 Qwen 3.6에서는 "preserve thinking" 기능을 활성화할 수 있습니다.
이 PR (Pull Request)의 목표는 최악의 경우 (전체 프롬프트 재처리)를 피하고, llama.cpp가 실제로 변경된 부분만 다시 처리하는 가장 좋은 경우에 더 가까워지는 것입니다. 저는 이 코드를 약 2주 동안 사용해 왔으며, 제 의견으로는 에이전트 기반 코딩 (agentic coding)이 이제 더 반응성이 좋아졌습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기