Bỏ qua đến nội dung chính

Quản lý ngữ cảnh

📖 Nội dung bài học

Video

Quản lý ngữ cảnh

Mỗi yêu cầu bạn gửi cho Claude đều có một context window (cửa sổ ngữ cảnh). Một triệu token nghe có vẻ nhiều, nhưng nó sẽ hết nhanh hơn bạn nghĩ khi bạn triển khai một agent thực tế. Đó là lúc quản lý ngữ cảnh (context management) phát huy tác dụng: nó giúp bạn ở trong giới hạn cửa sổ mà không làm mất đi những gì quan trọng.

Những gì được tính là ngữ cảnh

Ngữ cảnh là mọi thứ Claude nhìn thấy trong một lượt nhất định:

  • System prompt
  • Lịch sử tin nhắn
  • Định nghĩa công cụ và kết quả công cụ
  • Các tệp đính kèm và skill
  • Các khối suy nghĩ (Thinking blocks)

Sơ đồ 5 thành phần của ngữ cảnh: system prompt, lịch sử tin nhắn, công cụ, tệp và skill, và khối suy nghĩ

Đó là đầu vào cho mọi lời gọi API. Bạn trả tiền cho nó khi đưa vào, và bạn trả tiền cho nó khi đưa ra. Và khi cửa sổ đầy, yêu cầu sẽ thất bại.

Vì vậy, mục tiêu không phải là nhét mọi thứ vào. Mục tiêu là nhét những thứ đúng đắn vào.

Anthropic xuất bản bốn mẫu (pattern) để quản lý ngữ cảnh trong các agent chạy dài hạn. Ba mẫu là tính năng API hạng nhất, và một là mẫu thiết kế (design pattern).

Sơ đồ 4 mẫu quản lý ngữ cảnh: ngữ cảnh theo thời điểm (just-in-time), nén (compaction), bộ nhớ đệm (caching), và bộ nhớ (memory)

Mẫu 1: Ngữ cảnh theo thời điểm (Just-in-time context)

Đừng tải mọi thứ ngay từ đầu. Tải những gì agent cần ngay bây giờ, và để nó kéo thêm thông qua các công cụ khi nó yêu cầu.

Hãy nghĩ về một agent đánh giá tuân thủ. Nó không nhận toàn bộ cuốn sách quy định xây dựng nhồi vào system prompt của nó — nó gọi một công cụ lookup_building_code khi cần một phần cụ thể. Đây là mẫu thiết kế trong bốn mẫu: không có gì đặc biệt trong API, chỉ là một lựa chọn có chủ đích về những gì bạn tải và khi nào.

Mẫu 2: Nén phía máy chủ (Server-side compaction)

Khi một cuộc trò chuyện kéo dài, nén phía máy chủ của Anthropic sẽ tóm tắt các lượt cũ thành một khối duy nhất. Bạn chọn tham gia bằng cách thêm khóa context_management vào yêu cầu của mình, chứa một edit với type:

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    context_management={
        "edits": [
            {"type": "compact"}
        ]
    },
    messages=messages,
)

API tự động tóm tắt khi đầu vào vượt qua ngưỡng kích hoạt. Bạn không cần tự theo dõi độ dài cuộc trò chuyện.

Mẫu 3: Bộ nhớ đệm prompt (Prompt caching)

Prompt caching cho phép bạn đánh dấu các phần ổn định của yêu cầu — system prompt, định nghĩa công cụ, một tài liệu dài — và sử dụng lại chúng qua các lần gọi với chi phí thấp hơn nhiều.

Phép toán quan trọng hơn vẻ ngoài của nó. Nếu system prompt của bạn là 4.000 token và bạn gọi nó 100 lần mỗi giờ, bộ nhớ đệm là sự khác biệt giữa hóa đơn có thể sử dụng được và cuộc gọi từ bộ phận tài chính.

Mẫu 4: Công cụ bộ nhớ (The memory tool)

Một số ngữ cảnh cần tồn tại qua các phiên làm việc: sở thích người dùng, ghi chú đang chạy của agent, những gì đã được quyết định tuần trước. Nguyên tắc cơ bản được đề xuất cho việc này là công cụ bộ nhớ (memory tool).

Cách thức hoạt động:

  • Claude đọc và ghi vào một thư mục bộ nhớ thông qua các lệnh gọi công cụ.
  • Bạn triển khai backend lưu trữ ở phía client — hệ thống tệp, cơ sở dữ liệu, kho lưu trữ được mã hóa, bất cứ thứ gì bạn muốn.
  • Anthropic tự động chèn một chỉ dẫn hệ thống yêu cầu Claude kiểm tra thư mục bộ nhớ trước khi bắt đầu công việc.

Thư mục bộ nhớ được xem trong trình duyệt, với các thư mục cho sự cố (incidents) và giá SaaS (saas-pricing) và một ghi chú sự cố đã lưu từ phiên trước

Xếp lớp các mẫu

Trong một ứng dụng sản xuất, bạn thường sẽ xếp lớp cả bốn mẫu cùng một lúc. Agent đánh giá tuân thủ lưu trữ system prompt và định nghĩa công cụ của nó vào bộ nhớ đệm, và kéo các phần quy định xây dựng theo thời điểm thông qua lookup_building_code.

Mỗi mẫu xử lý một chế độ lỗi khác nhau: chi phí, kích thước cửa sổ, tính không trạng thái (statelessness). Chọn những mẫu phù hợp với những gì đang gặp sự cố với bạn.

Tóm tắt

  • Ngữ cảnh là mọi thứ Claude nhìn thấy trong một lượt — và nó không miễn phí hoặc vô hạn. Khi cửa sổ đầy, yêu cầu sẽ thất bại.
  • Ngữ cảnh theo thời điểm: tải những gì cần thiết ngay bây giờ, để các công cụ kéo phần còn lại. Đây là mẫu thiết kế trong bốn mẫu.
  • Nén phía máy chủ: thêm khóa context_management, và API sẽ tự động tóm tắt các lượt cũ khi đầu vào vượt qua ngưỡng kích hoạt.
  • Bộ nhớ đệm prompt: đánh dấu các phần ổn định của yêu cầu và sử dụng lại chúng qua các lần gọi với chi phí thấp hơn nhiều.
  • Công cụ bộ nhớ: Claude đọc và ghi vào thư mục bộ nhớ thông qua các lệnh gọi công cụ; bạn sở hữu backend lưu trữ, vì vậy ngữ cảnh tồn tại qua các phiên làm việc.
  • Bốn mẫu, một mục tiêu. Kết nối chúng thủ công, hoặc sử dụng Claude managed agents, vốn có sẵn bộ nhớ đệm và nén theo mặc định.

🎬 Bản ghi video

Source video: jZQ6b_vVHRc

Không có transcript — xem phần nội dung bài học bên trên.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?