- Đây là bản dịch tóm tắt bài viết Effective context engineering for AI agents được Anthropic đăng vào ngày 29 tháng 9. Trong bài blog, tôi cố gắng giữ lại tối đa hình ảnh và liên kết có trong bài gốc.
Kỹ thuật prompt vs kỹ thuật ngữ cảnh
- Kỹ thuật prompt là làm cho một truy vấn đơn lẻ tốt hơn
- Còn kỹ thuật ngữ cảnh, đặc biệt cho agent, là tuyển chọn chỉ những gì thực sự cần thiết từ nhiều ngữ cảnh khác nhau.
Vì sao kỹ thuật ngữ cảnh quan trọng trong việc xây dựng agent
- Các agent hiện nay đang được phát triển theo hướng dùng công cụ nhiều hơn và hoạt động lâu hơn.
- Khi đó ngữ cảnh tất yếu sẽ dài ra, nhưng LLM cũng giống con người ở chỗ khi ngữ cảnh bị lấp đầy bởi quá nhiều dữ liệu thì sẽ mất tập trung và khó truy xuất được thông tin mong muốn.
- Vì vậy, kiểm soát ngữ cảnh một cách hiệu quả là yếu tố cực kỳ quan trọng trong phát triển agent.
Cấu trúc của ngữ cảnh hiệu quả
Kỹ thuật ngữ cảnh tốt có nghĩa là tìm ra tập token tín hiệu cao nhỏ nhất có thể để tối đa hóa khả năng đạt được kết quả mong muốn.
> Smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome
1) System prompt
- System prompt phải cực kỳ rõ ràng, đơn giản và trực tiếp, ở đúng mức cần thiết. Nếu quá cụ thể thì khó bao quát nhiều trường hợp; nếu quá trừu tượng thì LLM sẽ phải tự suy đoán quá nhiều.
- Hãy bắt đầu chỉ với phần mô tả tối thiểu về hành vi mong đợi, rồi dần cải thiện bằng cách thêm chỉ dẫn rõ ràng và ví dụ chỉ cho những trường hợp mà mô hình frontier thất bại.
- Có thể dùng các kỹ thuật giống XML hoặc Markdown để phân chia các phần, nhưng không cần quá cứng nhắc với cú pháp chính xác.
2) Tools
- Tools phải trả về thông tin theo cách hiệu quả về token, đồng thời cũng phải dẫn dắt agent hoạt động hiệu quả về token. Chúng cần có định dạng mà LLM dễ hiểu, và mức độ chồng lấp chức năng giữa các tool nên ở mức tối thiểu.
- Sai lầm phổ biến nhất là một tool ôm quá nhiều chức năng, hoặc tạo ra tình huống khiến LLM khó quyết định nên dùng tool nào. Nếu ngay cả kỹ sư con người cũng khó quyết định khi nào nên dùng cái gì, thì với AI agent điều đó cũng khó không kém.
- Few-shot prompting bằng cách cung cấp ví dụ luôn được khuyến khích mạnh mẽ. Tuy nhiên, nhồi quá nhiều edge case sẽ làm giảm tính tổng quát. Hãy đưa vào đa dạng ví dụ thể hiện những hành vi mong đợi đã được cân nhắc kỹ.
Truy xuất ngữ cảnh và tìm kiếm theo kiểu agentic
- Agent là thực thể tự động chạy công cụ theo vòng lặp để đạt mục tiêu. Mô hình càng mạnh thì càng có thể trao nhiều quyền hạn, tức mức tự chủ, cho agent.
- Khi cách tiếp cận agentic phát triển, một chiến lược xuất hiện ngày càng nhiều là cung cấp ngữ cảnh theo kiểu JIT (Just in Time). Claude Code sử dụng điều này rất tốt: nó nhìn vào đường dẫn tệp và liên kết trong prompt rồi lấy chúng ngay tại chỗ.
- Muốn nạp được ngữ cảnh tốt theo kiểu JIT thì ngay từ đầu phải lưu trữ thông tin với cấu trúc tốt. Điều này bao gồm cả việc suy nghĩ về cách lưu metadata để hỗ trợ truy xuất. Cấu trúc thư mục, quy ước đặt tên, timestamp và các tín hiệu quan trọng, giàu ý nghĩa với con người cũng giúp agent tận dụng thông tin tốt hơn rất nhiều.
Kỹ thuật ngữ cảnh cho các tác vụ dài hạn (long-horizon tasks)
Các tác vụ kéo dài thường dễ dàng vượt quá context window của LLM. Vì vậy, điều cực kỳ quan trọng là làm sao để agent duy trì được ngữ cảnh tốt và tiếp tục tiến đều tới mục tiêu.
Tùy vào đặc tính công việc, có thể dùng 3 kỹ thuật lớn sau.
- Nén phù hợp để duy trì luồng hội thoại trong các tác vụ cần giao tiếp hai chiều ở phạm vi rộng.
- Ghi chú có cấu trúc phù hợp để phát triển theo vòng lặp những tác vụ có cột mốc rõ ràng.
- Kiến trúc sub-agent phù hợp để xử lý các bài toán nghiên cứu và phân tích phức tạp, nơi việc khám phá song song phát huy hiệu quả.
1) Nén
- Khi sắp chạm giới hạn context window, hãy tóm tắt nội dung quan trọng và chuyển sang cửa sổ mới. Trong Claude Code, người ta chuyển lịch sử tin nhắn để mô hình tóm tắt lại, chẳng hạn như quyết định kiến trúc, bug chưa giải quyết, chi tiết triển khai, v.v.
- Cái hay của nén rốt cuộc nằm ở việc giữ lại gì và bỏ đi gì. Thứ dễ bỏ nhất thường là các lời gọi tool và kết quả của chúng. Nếu chúng đã có trong lịch sử tin nhắn thì gần như không cần giữ lại nữa.
- Với memory tool được giới thiệu từ Sonnet 4.5, giờ đây có thể thực hiện Context Editing: https://www.anthropic.com/news/context-management
2) Ghi chú có cấu trúc
- Còn được gọi là bộ nhớ agentic. Đây là kỹ thuật định kỳ để lại ghi chú bên ngoài context window, tức trên hệ thống tệp, rồi lấy lại sau này.
- Tương tự, từ Sonnet 4.5 trở đi, kỹ thuật này cũng trở nên dễ dùng hơn nhờ memory tool.
3) Kiến trúc sub-agent
- Agent chính lập kế hoạch và điều phối ở tầm nhìn tổng thể, còn các sub-agent đảm nhiệm công việc kỹ thuật chuyên sâu hoặc dùng tool để tìm thông tin liên quan.
- Xem thêm bài viết mô tả họ đã xây dựng hệ thống nghiên cứu multi-agent như thế nào.
Kết luận
- Khi mô hình ngày càng mạnh hơn, điều quan trọng không còn chỉ là viết prompt tốt, mà còn là chọn lọc thông tin nào sẽ được đưa vào “ngân sách chú ý” ở mỗi bước.
- Dù là triển khai nén cho các tác vụ dài hạn, thiết kế công cụ hiệu quả về token hay giúp agent khám phá môi trường đúng lúc, nguyên tắc chỉ đạo vẫn như nhau: tìm ra tập token tín hiệu cao nhỏ nhất để tối đa hóa khả năng đạt kết quả mong muốn.
- Các kỹ thuật trong bài viết này sẽ tiếp tục tiến hóa cùng với sự cải thiện của mô hình và sẽ vận hành ngày càng tự chủ hơn, nhưng góc nhìn rằng “ngữ cảnh là một tài nguyên quý giá và hữu hạn” vẫn sẽ là cốt lõi để xây dựng các agent đáng tin cậy và hiệu quả.
- Để xem thêm, hãy tham khảo cookbook về memory và quản lý ngữ cảnh.
Chưa có bình luận nào.