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

Cấu hình tóm tắt

Tổng quan

Cấu hình summarization cung cấp khả năng kiểm soát tập trung đối với việc tóm tắt cuộc trò chuyện và cắt tỉa ngữ cảnh. Cấu hình này thay thế các trường summarizesummaryModel theo từng endpoint vốn đã có sẵn trước đây trên các endpoint tùy chỉnh và Azure OpenAI.

Khi một cuộc trò chuyện vượt quá cửa sổ ngữ cảnh của model, hệ thống tóm tắt sẽ tự động nén các tin nhắn cũ hơn thành một bản tóm tắt điểm kiểm tra (checkpoint) ngắn gọn. Điều này cho phép các cuộc trò chuyện tiếp tục vô thời hạn mà không làm mất đi ngữ cảnh quan trọng. Hệ thống cũng bao gồm tính năng context pruning (cắt tỉa ngữ cảnh), giúp giảm dần các kết quả công cụ lớn trong các tin nhắn cũ hơn để giải phóng không gian token trước khi cần đến việc tóm tắt.

Sau một lượt tóm tắt, thước đo mức sử dụng ngữ cảnh sẽ sử dụng đường cơ sở tóm tắt đã lưu thay vì đếm lại lịch sử trước khi tóm tắt đã bị loại bỏ. Tổng mức sử dụng và chi phí tích lũy vẫn bao gồm toàn bộ chi phí của nhánh đó.

Ví dụ

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
providerStringNhà cung cấp LLM được sử dụng cho các lệnh gọi tóm tắt. Nếu bỏ qua, hệ thống sẽ sử dụng nhà cung cấp của chính tác nhân đó.provider: "openAI"

Mặc định: Nhà cung cấp của riêng Agent

model

KeyTypeDescriptionExample
modelStringMô hình được sử dụng cho các lệnh gọi tóm tắt. Nếu bỏ qua, hệ thống sẽ sử dụng mô hình của chính tác nhân đó.model: "gpt-4o-mini"

Mặc định: Mô hình riêng của Agent

parameters

KeyTypeDescriptionExample
parametersObjectCác tham số LLM bổ sung cho các yêu cầu tóm tắt (ví dụ: temperature, top_p).parameters: { temperature: 0.3 }

prompt

KeyTypeDescriptionExample
promptStringLời nhắc tùy chỉnh cho việc tóm tắt ban đầu. Thay thế lời nhắc checkpoint tích hợp sẵn.

Mặc định: Một prompt điểm kiểm tra (checkpoint) có cấu trúc, tạo ra các phần cho Mục tiêu (Goal), Ràng buộc & Tùy chọn (Constraints & Preferences), Tiến độ (Progress), Các quyết định chính (Key Decisions), Các bước tiếp theo (Next Steps) và Bối cảnh quan trọng (Critical Context).

updatePrompt

KeyTypeDescriptionExample
updatePromptStringLời nhắc tùy chỉnh để nén lại khi đã có bản tóm tắt trước đó. Được sử dụng khi bản tóm tắt cần được cập nhật với nội dung hội thoại mới.

Mặc định: Một prompt tích hợp sẵn giúp hợp nhất các tin nhắn mới vào checkpoint hiện có, nén các chi tiết cũ hơn và cung cấp chi tiết rõ ràng hơn cho các hành động gần đây.

maxSummaryTokens

KeyTypeDescriptionExample
maxSummaryTokensNumberSố lượng token đầu ra tối đa cho phản hồi của mô hình tóm tắt.maxSummaryTokens: 4096

reserveRatio

KeyTypeDescriptionExample
reserveRatioNumberTỷ lệ ngân sách token được dành riêng làm khoảng dự phòng (0–1). Ngăn chặn việc ngữ cảnh bị lấp đầy đến mức tối đa tuyệt đối.reserveRatio: 0.05

Mặc định: 0.05 (5% headroom)

trigger

KeyTypeDescriptionExample
triggerObjectXác định thời điểm kích hoạt tính năng tóm tắt. Nếu bỏ qua, tính năng tóm tắt sẽ kích hoạt bất cứ khi nào việc cắt tỉa tin nhắn làm mất đi bất kỳ tin nhắn nào.

Các khóa con trigger

KeyTypeDescriptionExample
typeStringChiến lược kích hoạt. Các tùy chọn: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`.type: "token_ratio"
valueNumberGiá trị ngưỡng cho loại kích hoạt đã chọn. Đối với `token_ratio`: 0–1 (bao gồm cả hai). Đối với `remaining_tokens` và `messages_to_refine`: số nguyên dương.value: 0.8

Các loại Trigger

LoạiGiá trịKích hoạt khi
token_ratio0.0–1.0Tỷ lệ token ngữ cảnh được sử dụng đạt hoặc vượt quá giá trị này
remaining_tokensSố nguyên dươngSố lượng token ngữ cảnh còn lại giảm xuống bằng hoặc thấp hơn giá trị này
messages_to_refineSố nguyên dươngSố lượng tin nhắn đủ điều kiện để tóm tắt đạt hoặc vượt quá giá trị này
(không thiết lập)Bất cứ khi nào việc cắt tỉa loại bỏ bất kỳ tin nhắn nào (hành vi mặc định)

Ví dụ:

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

contextPruning

KeyTypeDescriptionExample
contextPruningObjectCấu hình tính năng suy giảm kết quả công cụ dựa trên vị trí. Các kết quả công cụ lớn trong những tin nhắn cũ hơn sẽ dần dần bị cắt bớt hoặc xóa bỏ để giải phóng không gian token.

Cắt tỉa ngữ cảnh (context pruning) là một tính năng tùy chọn hoạt động độc lập với việc tóm tắt. Nó nhắm vào các kết quả gọi công cụ (tool call) lớn trong các tin nhắn cũ hơn, áp dụng hai giai đoạn tiến triển:

  1. Soft trim — Cắt bớt kết quả của công cụ để chỉ giữ lại phần đầu và phần cuối, với dấu ba chấm ở giữa
  2. Hard clear — Thay thế toàn bộ kết quả công cụ bằng một trình giữ chỗ ngắn

Cả hai giai đoạn đều dựa trên vị trí: các tin nhắn gần phần đầu của cuộc trò chuyện (cũ hơn) sẽ bị cắt tỉa trước.

Các khóa con của contextPruning

KeyTypeDescriptionExample
enabledBooleanCho phép suy giảm kết quả công cụ dựa trên vị trí.enabled: true
keepLastAssistantsNumberSố lượt phản hồi gần đây của trợ lý cần được bảo vệ khỏi việc cắt tỉa.keepLastAssistants: 3
softTrimRatioNumberTỷ lệ tuổi (0–1) mà tại đó soft-trim được kích hoạt. Các tin nhắn cũ hơn tỷ lệ này trong cuộc trò chuyện là ứng viên cho việc soft-trim.softTrimRatio: 0.3
hardClearRatioNumberTỷ lệ tuổi (0–1) tại đó tính năng xóa cứng được kích hoạt. Các tin nhắn cũ hơn tỷ lệ này là ứng viên cho việc thay thế hoàn toàn.hardClearRatio: 0.5
minPrunableToolCharsNumberSố lượng ký tự tối thiểu của một kết quả công cụ trước khi áp dụng cắt tỉa. Các kết quả nhỏ hơn sẽ được giữ nguyên.minPrunableToolChars: 50000
softTrimObjectCấu hình cho giai đoạn soft-trim.
hardClearObjectCấu hình cho giai đoạn hard-clear.

Mặc định:

TrườngMặc định
enabledfalse
keepLastAssistants3
softTrimRatio0.3
hardClearRatio0.5
minPrunableToolChars50000

Các khóa con của softTrim

KeyTypeDescriptionExample
maxCharsNumberSố ký tự tối đa sau khi cắt bớt (soft-trimming) kết quả của công cụ.maxChars: 4000
headCharsNumberSố lượng ký tự cần giữ lại từ phần đầu của kết quả công cụ.headChars: 1500
tailCharsNumberSố lượng ký tự cần giữ lại từ cuối kết quả của công cụ.tailChars: 1500

Mặc định: maxChars: 4000, headChars: 1500, tailChars: 1500

Các khóa con hardClear

KeyTypeDescriptionExample
enabledBooleanLiệu giai đoạn xóa cứng (hard-clear) có đang hoạt động hay không. Khi bị vô hiệu hóa, chỉ có tính năng cắt tỉa mềm (soft-trim) được áp dụng.enabled: true
placeholderStringVăn bản giữ chỗ thay thế nội dung kết quả công cụ đầy đủ khi bị xóa hoàn toàn.placeholder: "[Old tool result content cleared]"

Mặc định: enabled: true, placeholder: "[Old tool result content cleared]"

Ví dụ:

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]'

Ví dụ cấu hình hoàn chỉnh

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]'

Di chuyển từ Cài đặt theo từng endpoint

Nếu trước đây bạn đã sử dụng summarizesummaryModel trên các endpoint tùy chỉnh hoặc Azure OpenAI:

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

Các trường này đã bị loại bỏ. Hãy sử dụng cấu hình summarization ở cấp cao nhất thay thế:

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

Ghi chú

  • Tính năng tóm tắt được cấu hình trên phạm vi toàn cục thay vì theo từng endpoint.
  • Các trường summarizesummaryModel trên các endpoint tùy chỉnh và endpoint Azure OpenAI không còn được hỗ trợ nữa
  • Khi providermodel bị lược bỏ, provider và model của chính agent sẽ được sử dụng để tóm tắt.
  • Tính năng cắt tỉa ngữ cảnh (context pruning) bị vô hiệu hóa theo mặc định và phải được kích hoạt rõ ràng bằng contextPruning.enabled: true
  • Việc cắt tỉa ngữ cảnh (context pruning) chỉ ảnh hưởng đến các kết quả gọi công cụ vượt quá minPrunableToolChars — các kết quả nhỏ hơn sẽ không bao giờ bị cắt tỉa.
  • Thiết lập keepLastAssistants bảo vệ các lượt hội thoại gần đây khỏi việc bị cắt tỉa bất kể tỷ lệ trim/clear.
  • Các giá trị promptupdatePrompt tùy chỉnh sẽ thay thế hoàn toàn các prompt tích hợp sẵn — hãy sử dụng một cách cẩn thận.
  • Đặt AGENT_DEBUG_LOGGING=true trong tệp .env của bạn để bật tính năng ghi nhật ký chi tiết về số lượng token và chẩn đoán cắt tỉa ngữ cảnh.

Hướng dẫn này thế nào?