본문 바로가기
C.W.K.
Stream
Lesson 05 of 10 · published

긴 대화 — 기록 압축 전략

~18 min · conversation, compaction, long-context

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

아무리 큰 맥락 창도 언젠가는 붐벼

100만 토큰을 받는 모델도 대화가 아주 길어지면 주의가 흐려지고 비용과 지연 시간이 늘어. 기록 압축은 옛 대화를 요약으로 바꾸어 지금 필요한 맥락만 가볍게 유지하는 의도적인 과정이야.

세 가지 압축 방식

  • 이동 창 — 마지막 N차례만 원문으로 남기고 앞부분은 버려. 싸지만 맥락을 잃어.
  • 누적 요약 — 옛 대화를 계속 갱신하는 요약으로 바꿔. 요지는 남지만 정확한 문구는 사라져.
  • 혼합 — 고정 시스템 지시, 옛 대화 요약, 최근 N차례 원문을 함께 둬. 중요한 시스템의 기본값으로 좋아.

원문으로 남길 것

  • 진행 중인 작업과 중간 결과.
  • 현재 반복에서 쓰는 도구 호출.
  • 사용자가 방금 “아까 말한 것”이라고 가리킨 내용.

요약해도 되는 것

  • 이미 끝난 하위 작업.
  • 다시 정확히 인용하지 않을 배경.
  • 이제 관련이 없는 도구 결과.

Code

혼합 압축·python
def compact(messages, system, keep_recent: int = 6, summarize_older=True):
    if len(messages) <= keep_recent:
        return messages
    older, recent = messages[:-keep_recent], messages[-keep_recent:]
    if summarize_older and older:
        summary = summarize_messages(older)
        return [{"role": "user", "content": f"[earlier conversation summary]\n{summary}"}] + recent
    return recent

External links

Exercise

긴 대화 기록의 서른 번째 차례에서 혼합 압축을 적용해봐. 압축한 경우와 하지 않은 경우의 후속 질문 성능을 비교하고 무엇이 나빠졌는지 기록해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.