Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

요약 설정

개요

summarization 구성은 대화 요약 및 컨텍스트 가지치기에 대한 중앙 집중식 제어를 제공합니다. 이는 이전에 사용자 지정 및 Azure OpenAI 엔드포인트에서 사용할 수 있었던 엔드포인트별 summarizesummaryModel 필드를 대체합니다.

대화가 모델의 컨텍스트 윈도우를 초과하면, 요약 시스템이 자동으로 이전 메시지들을 간결한 체크포인트 요약으로 압축합니다. 이를 통해 중요한 컨텍스트를 잃지 않으면서 대화를 무기한으로 이어갈 수 있습니다. 또한 이 시스템에는 컨텍스트 프루닝(context pruning) 기능이 포함되어 있어, 요약이 필요하기 전에 이전 메시지의 대규모 도구 결과를 점진적으로 축소하여 토큰 공간을 확보합니다.

요약 턴 이후, 컨텍스트 사용량 게이지는 폐기된 요약 이전 기록을 다시 계산하는 대신 유지된 요약 기준점과 요약 이후의 턴을 사용합니다. 누적 사용량 및 비용 합계에는 여전히 전체 브랜치 지출이 포함됩니다.

예시

summarization:
  provider: 'openAI'
  model: 'gpt-4o-mini'
  maxSummaryTokens: 4096
  reserveRatio: 0.05
  trigger:
    type: 'token_ratio'
    value: 0.8
  contextPruning:
    enabled: true
    keepLastAssistants: 3
    softTrimRatio: 0.3
    hardClearRatio: 0.5
    minPrunableToolChars: 50000
    softTrim:
      maxChars: 4000
      headChars: 1500
      tailChars: 1500
    hardClear:
      enabled: true
      placeholder: '[Old tool result content cleared]'

provider

KeyTypeDescriptionExample
providerString요약 호출에 사용할 LLM 공급자입니다. 생략할 경우 에이전트 자체의 공급자를 사용합니다.provider: "openAI"

기본값: 에이전트 자체 제공자

model

KeyTypeDescriptionExample
modelString요약 호출에 사용할 모델입니다. 생략할 경우 에이전트의 자체 모델을 사용합니다.model: "gpt-4o-mini"

기본값: 에이전트 자체 모델

parameters

KeyTypeDescriptionExample
parametersObject요약 요청을 위한 추가 LLM 매개변수 (예: temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptString초기 요약을 위한 사용자 지정 프롬프트입니다. 내장된 체크포인트 프롬프트를 대체합니다.

기본값(Default): 목표(Goal), 제약 사항 및 선호도(Constraints & Preferences), 진행 상황(Progress), 주요 결정 사항(Key Decisions), 다음 단계(Next Steps), 중요 맥락(Critical Context)에 대한 섹션을 생성하는 구조화된 체크포인트 프롬프트입니다.

updatePrompt

KeyTypeDescriptionExample
updatePromptString이전 요약이 이미 존재할 때 재요약을 위한 사용자 지정 프롬프트입니다. 요약을 새로운 대화 내용으로 업데이트해야 할 때 사용됩니다.

기본값(Default): 새 메시지를 기존 체크포인트에 병합하고, 오래된 세부 정보를 압축하며, 최근 작업에 더 많은 세부 정보를 제공하는 내장 프롬프트입니다.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumber요약 모델 응답에 대한 최대 출력 토큰 수입니다.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumber헤드룸으로 예약된 토큰 예산의 비율(0–1). 컨텍스트가 절대적인 용량까지 채워지는 것을 방지합니다.reserveRatio: 0.05

기본값: 0.05 (5% 헤드룸)

trigger

KeyTypeDescriptionExample
triggerObject요약이 활성화되는 시점을 정의합니다. 생략할 경우, 메시지 정리(pruning)로 인해 메시지가 삭제될 때마다 요약이 실행됩니다.

trigger 하위 키

KeyTypeDescriptionExample
typeString트리거 전략입니다. 옵션: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumber선택한 트리거 유형에 대한 임계값입니다. `token_ratio`의 경우: 0–1(포함). `remaining_tokens` 및 `messages_to_refine`의 경우: 양의 정수.value: 0.8

트리거 유형

유형실행 시점
token_ratio0.0–1.0사용된 컨텍스트 토큰의 비율이 해당 값에 도달하거나 초과할 때
remaining_tokens양의 정수남은 컨텍스트 토큰이 해당 값으로 떨어지거나 그 이하가 될 때
messages_to_refine양의 정수요약 가능한 메시지 수가 해당 값에 도달하거나 초과할 때
(설정 안 됨)가지치기(pruning)로 인해 메시지가 삭제될 때마다 (기본 동작)

예시:

summarization:
  trigger:
    type: 'remaining_tokens'
    value: 8000

contextPruning

KeyTypeDescriptionExample
contextPruningObject위치 기반 도구 결과 저하를 구성합니다. 이전 메시지의 대용량 도구 결과는 토큰 공간을 확보하기 위해 점진적으로 잘리거나 삭제됩니다.

Context pruning은 요약(summarization)과는 독립적으로 작동하는 선택적 기능입니다. 이 기능은 이전 메시지에 포함된 대규모 도구 호출(tool call) 결과를 대상으로 하며, 두 가지 단계적 과정을 적용합니다:

  1. Soft trim — 도구 결과의 앞부분과 뒷부분만 남기고 중간을 생략 부호로 대체하여 자릅니다.
  2. Hard clear — 전체 도구 결과를 짧은 자리 표시자로 대체합니다

두 단계 모두 위치 기반입니다. 대화의 시작 부분에 가까운(오래된) 메시지부터 먼저 정리됩니다.

contextPruning 하위 키

KeyTypeDescriptionExample
enabledBoolean위치 기반 도구 결과 저하를 활성화합니다.enabled: true
keepLastAssistantsNumber가지치기(pruning)로부터 보호할 최근 어시스턴트 턴(turn)의 수입니다.keepLastAssistants: 3
softTrimRatioNumber소프트 트림이 활성화되는 연령 비율(0–1)입니다. 이 대화 비율보다 오래된 메시지는 소프트 트림 대상이 됩니다.softTrimRatio: 0.3
hardClearRatioNumberhard-clear가 활성화되는 연령 비율(0–1)입니다. 이 비율보다 오래된 메시지는 전체 교체 대상이 됩니다.hardClearRatio: 0.5
minPrunableToolCharsNumber가지치기가 적용되기 전 도구 결과의 최소 문자 수입니다. 더 작은 결과는 그대로 유지됩니다.minPrunableToolChars: 50000
softTrimObjectsoft-trim 단계를 위한 구성.
hardClearObjecthard-clear 단계를 위한 구성.

기본값:

필드기본값
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

softTrim 하위 키

KeyTypeDescriptionExample
maxCharsNumber도구 결과의 소프트 트리밍 후 최대 총 문자 수입니다.maxChars: 4000
headCharsNumber도구 결과의 시작 부분에서 보존할 문자 수입니다.headChars: 1500
tailCharsNumber도구 결과의 끝에서 보존할 문자 수입니다.tailChars: 1500

기본값: maxChars: 4000, headChars: 1500, tailChars: 1500

hardClear 하위 키

KeyTypeDescriptionExample
enabledBoolean하드 클리어(hard-clear) 단계 활성화 여부입니다. 비활성화 시 소프트 트림(soft-trim)만 적용됩니다.enabled: true
placeholderString하드 클리어 시 전체 도구 결과 콘텐츠를 대체하는 자리 표시자 텍스트입니다.placeholder: "[Old tool result content cleared]"

기본값: enabled: true, placeholder: "[Old tool result content cleared]"

예시:

summarization:
  contextPruning:
    enabled: true
    keepLastAssistants: 5
    softTrimRatio: 0.25
    hardClearRatio: 0.6
    minPrunableToolChars: 30000
    softTrim:
      maxChars: 6000
      headChars: 2500
      tailChars: 2500
    hardClear:
      enabled: true
      placeholder: '[Content removed for context management]'

전체 구성 예시

version: 1.3.10
cache: true

summarization:
  provider: 'openAI'
  model: 'gpt-4o-mini'
  maxSummaryTokens: 4096
  reserveRatio: 0.05
  trigger:
    type: 'token_ratio'
    value: 0.8
  contextPruning:
    enabled: true
    keepLastAssistants: 3
    softTrimRatio: 0.3
    hardClearRatio: 0.5
    minPrunableToolChars: 50000
    softTrim:
      maxChars: 4000
      headChars: 1500
      tailChars: 1500
    hardClear:
      enabled: true
      placeholder: '[Old tool result content cleared]'

엔드포인트별 설정에서의 마이그레이션

이전에 사용자 지정 또는 Azure OpenAI endpoint에서 summarizesummaryModel을 사용했다면:

endpoints:
  custom:
    - name: 'My Endpoint'
      summarize: true
      summaryModel: 'gpt-3.5-turbo'

이 필드들은 제거되었습니다. 대신 최상위 summarization 설정을 사용하세요:

summarization:
  model: 'gpt-4o-mini'

참고 사항

  • 요약(Summarization)은 엔드포인트별이 아닌 전역적으로 구성됩니다.
  • 사용자 지정 endpoint 및 Azure OpenAI endpoint의 summarizesummaryModel 필드는 더 이상 지원되지 않습니다.
  • providermodel이 생략되면, 에이전트 자체의 provider와 model이 요약에 사용됩니다.
  • Context pruning은 기본적으로 비활성화되어 있으며 contextPruning.enabled: true를 통해 명시적으로 활성화해야 합니다.
  • Context pruning은 minPrunableToolChars를 초과하는 도구 호출 결과에만 영향을 미치며, 더 작은 결과는 절대 pruning되지 않습니다.
  • keepLastAssistants 설정은 trim/clear 비율과 관계없이 최근 턴이 삭제되지 않도록 보호합니다.
  • 사용자 지정 promptupdatePrompt 값은 내장 프롬프트를 완전히 대체하므로 주의해서 사용하세요.
  • .env 파일에 AGENT_DEBUG_LOGGING=true를 설정하여 토큰 수 및 컨텍스트 정리 진단에 대한 상세 로깅을 활성화하세요.

이 가이드는 어떤가요?