클라우드 할당량이 소진될 때 LLM 대화를 유지하는 Go 프록시를 만든 방법
Source: Dev.to
소개
Trooper란
실제 문제: 폴백 시 컨텍스트 손실
해결책: 3계층 컨텍스트 압축
앵커
대화의 처음 두 턴은 항상 보존됩니다. 이는 원래 의도를 확립하고 분위기를 설정합니다.
SITREP
중간 턴은 SITREP이라는 구조화된 요약으로 압축됩니다. 여기서는 의도, 엔터티, 미해결 루프, 최근 행동, 해결된 항목을 추출합니다. 로컬 모델은 원시 히스토리가 아니라 상황 인식을 얻게 됩니다.
테일
가장 최근의 턴은 설정 가능한 토큰 예산 내에서 보존됩니다.
예시 SITREP 로그
📦 Context compaction triggered — 538 tokens exceeds 500 budget
📦 Context compaction complete
Total turns : 7
Anchor turns : 2 (~43 tokens)
Middle turns : 2 → SITREP (~71 tokens)
Recent turns : 3 (~323 tokens)
Tokens used : 437 / 500
SITREP : intent="trooper" stage=unclear confidence=0.60 open=1 actions=0 resolved=0
로컬 모델은 사용자가 무엇을 작업하고 있었는지, 무엇이 고장 났는지, 무엇이 해결됐는지, 그리고 마지막 몇 번의 교환이 무엇이었는지를 알게 됩니다. 이는 대화를 일관되게 유지하기에 충분합니다.
Go를 선택한 이유
공급자 지원
앞으로의 계획
사용해 보기
컨텍스트 압축 접근 방식에 대한 피드백을 환영합니다 — 특히 더 큰 로컬 모델을 운영하는 분들의 의견을 듣고 싶습니다. 폴백 시 콜드‑스타트 지연 시간은 얼마나 되나요?