0Pricing
AI Agents · 강의

압축으로서의 요약

오래된 대화 차례를 주기적으로 누적 요약으로 바꾸어, 정확한 회상 능력과 컨텍스트 창 공간을 맞바꿔보세요.

압축으로서의 요약은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

기억으로서의 압축

대화가 길어지면 이전 턴을 짧은 요약으로 바꾸세요. 정확한 회상을 컨텍스트 공간과 맞바꾸는 것입니다.

요약에는 핵심 내용(사실, 결정 사항, 보류 중인 항목)이 담기지만, 원문은 사라집니다.

요약할 때

다음과 같은 경우 요약을 시작하세요:

  • 전체 토큰 수가 임계값을 초과할 때(예: 8k)
  • 턴 수가 N을 초과할 때(예: 20)
  • 사용자가 새 주제를 시작할 때

이전 턴 요약하기

최근 턴은 원문 그대로 유지하고, 범위를 벗어난 내용만 요약하세요:

def compact(messages, keep_recent=10):
    system = messages[0]
    old = messages[1:-keep_recent]
    recent = messages[-keep_recent:]
    if not old:
        return messages
    summary = summarise(old)
    return [
        system,
        {'role': 'system', 'content': f'Earlier conversation summary:\n{summary}'},
        *recent
    ]

요약 프롬프트

별도의 저렴한 모델 호출을 사용해 요약을 만드세요:

def summarise(messages):
    text = '\n'.join(f'{m["role"]}: {m["content"]}' for m in messages)
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Summarise this conversation in 5 bullet points. Preserve facts, decisions, and pending TODOs.'},
            {'role': 'user', 'content': text}
        ],
        max_tokens=300,
    )
    return response.choices[0].message.content

누적 요약

매번 처음부터 다시 요약하는 대신, 하나의 계속 확장되는 요약을 유지하세요:

running_summary = ''

def extend_summary(new_messages):
    global running_summary
    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': 'Extend the existing summary with the new turns. Keep it under 200 words.'},
            {'role': 'user', 'content': f'Existing summary:\n{running_summary}\n\nNew turns:\n{format(new_messages)}'}
        ],
        max_tokens=500,
    )
    running_summary = response.choices[0].message.content

구조화된 요약

요약에서 특정 필드를 추출하도록 강제하세요:

summary_schema = {
    'topics_discussed': '...',
    'user_facts': {'name': '...', 'preferences': '...'},
    'open_questions': ['...'],
    'decisions_made': ['...']
}
# Use json_object response_format to enforce.
import json
print(json.dumps(summary_schema, indent=2))

계층적 요약

매우 긴 기록에는 다음 방식을 사용하세요:

  • 100턴마다 요약(중간 수준)
  • 1000턴마다 요약(상위 수준)
  • 전체 기간 요약(최상위 수준)

컨텍스트에는 적절한 수준만 주입하세요.

세부 정보 손실

요약을 사용하면 구체적인 인용문과 정확한 표현이 사라집니다. 사용자가 “아까 가격에 관해 내가 정확히 뭐라고 말했나요?”라고 묻는다면 모델은 대답할 수 없습니다.

원문 그대로 recall하려면 더 큰 컨텍스트나 벡터 검색 보관소가 필요합니다.

벡터 보관소도 함께 사용하기

두 방식의 장점을 모두 활용하세요:

  1. 이전 턴을 시스템 메시지에 요약합니다.
  2. ALSO 각 턴을 벡터 저장소에 임베딩합니다.
  3. 사용자가 세부 사항을 요청하면 벡터 저장소에서 원문 그대로 검색합니다.

요약 품질이 중요합니다

엉망인 요약은 요약이 없는 것보다 나쁩니다. 요약 호출에는 가장 저렴한 계층이 아니라, 저렴하면서도 충분한 성능을 갖춘 모델(gpt-4o-mini, haiku)을 사용하세요.

요약 업데이트에는 비용이 듭니다

대화 토큰 8000개를 요약하는 것은 실제 LLM 호출입니다. 1~2초와 0.5센트가 들 수 있습니다. 핵심 경로에서 실행하지 말고 턴 사이에 비동기로 처리하세요.

요약의 절충점

요약을 기억으로 사용할 때의 주요 절충점은 무엇일까요?

복습

요약은 기억을 저렴하게 확장하는 방법입니다. 정확한 인용문 회상을 위해 벡터 검색과 결합하세요.

자주 묻는 질문

“압축으로서의 요약” 강의는 무료인가요?

네 — “압축으로서의 요약” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“압축으로서의 요약”에서 뭘 배우나요?

오래된 대화 차례를 주기적으로 누적 요약으로 바꾸어, 정확한 회상 능력과 컨텍스트 창 공간을 맞바꿔보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“압축으로서의 요약” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 컨텍스트 창의 단기 기억
  2. 긴 컨텍스트가 확장되지 않는 이유
  3. 압축으로서의 요약
  4. 간단한 기억 저장소(키-값)
← AI Agents(으)로 돌아가기