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 summarize và summaryModel 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
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Nhà 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
| Key | Type | Description | Example |
|---|---|---|---|
| model | String | Mô 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
| Key | Type | Description | Example |
|---|---|---|---|
| parameters | Object | Cá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
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | String | Lờ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
| Key | Type | Description | Example |
|---|---|---|---|
| updatePrompt | String | Lờ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
| Key | Type | Description | Example |
|---|---|---|---|
| maxSummaryTokens | Number | Số 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
| Key | Type | Description | Example |
|---|---|---|---|
| reserveRatio | Number | Tỷ 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
| Key | Type | Description | Example |
|---|---|---|---|
| trigger | Object | Xá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
| Key | Type | Description | Example |
|---|---|---|---|
| type | String | Chiến lược kích hoạt. Các tùy chọn: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`. | type: "token_ratio" |
| value | Number | Giá 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ại | Giá trị | Kích hoạt khi |
|---|---|---|
token_ratio | 0.0–1.0 | Tỷ lệ token ngữ cảnh được sử dụng đạt hoặc vượt quá giá trị này |
remaining_tokens | Số nguyên dương | Số 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_refine | Số nguyên dương | Số 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: 8000contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| contextPruning | Object | Cấ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:
- 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
- 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
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Cho phép suy giảm kết quả công cụ dựa trên vị trí. | enabled: true |
| keepLastAssistants | Number | Số 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 |
| softTrimRatio | Number | Tỷ 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 |
| hardClearRatio | Number | Tỷ 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 |
| minPrunableToolChars | Number | Số 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 |
| softTrim | Object | Cấu hình cho giai đoạn soft-trim. | |
| hardClear | Object | Cấu hình cho giai đoạn hard-clear. |
Mặc định:
| Trường | Mặc định |
|---|---|
enabled | false |
keepLastAssistants | 3 |
softTrimRatio | 0.3 |
hardClearRatio | 0.5 |
minPrunableToolChars | 50000 |
Các khóa con của softTrim
| Key | Type | Description | Example |
|---|---|---|---|
| maxChars | Number | Số ký tự tối đa sau khi cắt bớt (soft-trimming) kết quả của công cụ. | maxChars: 4000 |
| headChars | Number | Số lượng ký tự cần giữ lại từ phần đầu của kết quả công cụ. | headChars: 1500 |
| tailChars | Number | Số 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
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Liệ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 |
| placeholder | String | Vă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 summarize và summaryModel 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
summarizevàsummaryModeltrên các endpoint tùy chỉnh và endpoint Azure OpenAI không còn được hỗ trợ nữa - Khi
providervàmodelbị 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
keepLastAssistantsbả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ị
promptvàupdatePrompttù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=truetrong tệp.envcủ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?