Skip to content
Tí Root
Go back

Context Engineering: Nghệ thuật đưa đúng thông tin vào đúng lúc cho AI agent

Edit page

Một AI agent có context window hàng trăm nghìn hay hàng triệu token vẫn có thể làm việc kém hiệu quả.

Nó có thể bỏ sót thông tin, nhầm ưu tiên, lặp lại thao tác hoặc trả lời nghe rất hợp lý nhưng không còn bám sát dữ liệu. Vấn đề không nhất thiết là model “không đủ thông minh”. Nhiều khi, agent chỉ đang phải xử lý quá nhiều context cùng lúc.

Trong bài viết Effective context engineering for AI agents, Anthropic đề xuất một cách nhìn rộng hơn về việc xây dựng agent: thay vì chỉ tối ưu câu prompt, hãy thiết kế toàn bộ trạng thái thông tin mà model nhìn thấy ở mỗi bước.

Agent tốt không phải agent được nhồi nhiều context nhất. Đó là agent nhận được tập thông tin nhỏ nhất nhưng có tín hiệu cao nhất để hoàn thành mục tiêu.

Bản đồ khái niệm về context engineering

Context engineering biến mục tiêu, dữ liệu và công cụ thành một dòng chảy thông tin có chủ đích — minh hoạ theo phong cách technical watercolor sketchbook.

Từ prompt engineering đến context engineering

Prompt engineering thường tập trung vào việc viết system prompt, tìm câu chữ phù hợp và sắp xếp hướng dẫn để model tạo ra output tốt hơn.

Đó vẫn là một phần quan trọng, nhưng agent hiện đại hoạt động qua nhiều vòng suy luận và gọi tool. Ở mỗi vòng, model có thể nhìn thấy thêm:

Vì vậy, context engineering là bài toán lớn hơn: tại thời điểm này, nên đưa thông tin nào vào context, đưa bao nhiêu, theo thứ tự nào và khi nào nên loại bỏ nó?

Nếu prompt engineering giống như viết một bản chỉ dẫn tốt, context engineering giống như thiết kế cả phòng làm việc: bản đồ, tủ hồ sơ, công cụ, bảng ghi chú và những tài liệu được đặt trước mặt người đang làm việc.

Context không phải tài nguyên vô hạn

Context window là giới hạn kỹ thuật dễ nhìn thấy nhất, nhưng chưa phải vấn đề duy nhất. Khi context càng dài, khả năng tập trung và truy xuất chính xác của model có thể giảm. Anthropic gọi đây là context rot.

Model vẫn có thể “nhìn thấy” thông tin, nhưng không chắc sẽ:

Có thể hình dung model có một ngân sách chú ý hữu hạn. Mỗi token mới thêm vào đều tranh giành sự chú ý với những token khác.

Điều này dẫn đến nguyên tắc quan trọng nhất của bài viết:

Tối đa hoá tín hiệu, tối thiểu hoá nhiễu.

“Context tối thiểu” không đồng nghĩa với “prompt ngắn nhất”. Agent vẫn cần đủ thông tin để hiểu mục tiêu, ràng buộc và cách đánh giá kết quả. Điều cần tránh là những token không giúp agent đưa ra quyết định tốt hơn.

System prompt: cụ thể nhưng không mong manh

System prompt thường thất bại theo một trong hai hướng.

Quá cứng

Prompt chứa quá nhiều luật if/else, ngoại lệ và chỉ dẫn chi tiết đến mức agent phải mô phỏng một chương trình dài bằng ngôn ngữ tự nhiên.

Cách này có thể giải quyết một vài case trước mắt, nhưng dễ trở nên:

Quá mơ hồ

Ở cực ngược lại, prompt chỉ nói những câu như “hãy hữu ích”, “hãy suy nghĩ cẩn thận” hoặc “hãy xử lý phù hợp”. Agent không có đủ tín hiệu để biết thế nào là kết quả tốt.

Điểm phù hợp nằm ở giữa: đủ cụ thể để định hướng, đủ linh hoạt để model tự suy luận.

Một cấu trúc dễ bảo trì có thể chia system prompt thành các phần rõ ràng:

<background_information>
  Bối cảnh và dữ liệu nền
</background_information>

<instructions>
  Mục tiêu và nguyên tắc hành động
</instructions>

## Tool guidance
Cách chọn và sử dụng tool

## Output description
Format và tiêu chí hoàn thành

Anthropic khuyên bắt đầu bằng prompt tối thiểu, dùng model tốt để kiểm thử, sau đó chỉ thêm hướng dẫn dựa trên những lỗi quan sát được. Đừng viết trước một bộ luật khổng lồ cho mọi edge case có thể tưởng tượng.

Tool cũng là một phần của context

Tool không chỉ giúp agent “làm được nhiều việc hơn”. Mô tả, schema và kết quả của tool đều xuất hiện trong context, nên thiết kế tool kém sẽ làm agent vừa khó dùng vừa tốn token.

Một tool tốt nên:

Một dấu hiệu nguy hiểm là khi con người cũng không trả lời dứt khoát được câu hỏi: “Trong trường hợp này nên dùng tool nào?”. Nếu có quá nhiều tool gần giống nhau, agent sẽ phải tiêu tốn context để phân biệt công cụ thay vì giải quyết nhiệm vụ.

Tool nên là hợp đồng rõ ràng với môi trường, không phải một túi chức năng mơ hồ.

Ví dụ chuẩn hơn danh sách edge case

Khi muốn agent hành xử đúng, nhiều đội ngũ có xu hướng thêm một danh sách dài các luật và ngoại lệ vào prompt. Anthropic khuyên nên thay thế một phần cách làm này bằng những ví dụ tiêu biểu.

Một vài ví dụ đa dạng, canonical có thể truyền đạt đồng thời:

Với model, ví dụ thường giống như “một bức tranh đáng giá hơn cả nghìn từ mô tả”. Nhưng ví dụ vẫn cần được chọn lọc. Nhồi quá nhiều ví dụ cũng tạo ra context nhiễu.

Đừng nhét toàn bộ dữ liệu vào prompt

Một cách phổ biến là tiền xử lý và tải trước tất cả dữ liệu có vẻ liên quan vào context. Cách này nhanh, nhưng dễ làm agent bị ngập thông tin và phụ thuộc vào chỉ mục có thể đã cũ.

Anthropic đề xuất kết hợp với chiến lược just-in-time context:

  1. Đưa vào context các tham chiếu nhẹ như file path, URL, ID hoặc query.
  2. Cho agent dùng tool để khám phá cấu trúc dữ liệu.
  3. Chỉ tải phần liên quan khi cần suy luận.
  4. Ghi lại kết luận quan trọng thay vì giữ toàn bộ raw data.

Ví dụ, thay vì đưa cả một codebase vào prompt, agent có thể:

liệt kê thư mục → tìm file liên quan → đọc đoạn cần thiết → kiểm tra tham chiếu → ghi lại kết luận

Tên file, cấu trúc thư mục và timestamp cũng là metadata có ích. tests/test_utils.py mang tín hiệu khác với src/core_logic/test_utils.py; một file vừa được cập nhật có thể đáng chú ý hơn một file đã lâu không thay đổi.

Progressive disclosure: khám phá từng lớp

Agent không cần biết mọi thứ ngay ở bước đầu tiên. Nó có thể xây dựng hiểu biết theo từng lớp:

Đây là progressive disclosure: mỗi lần khám phá tạo ra context cho quyết định tiếp theo, trong khi agent chỉ giữ lại phần đang cần trong working memory.

Cách này gần với cách con người làm việc với file system, inbox và bookmark. Chúng ta không ghi nhớ toàn bộ kho tài liệu; chúng ta ghi nhớ nơi tìm thấy nó và cách truy xuất khi cần.

Đổi lại, agent cần tool và heuristic đủ tốt. Nếu không, nó có thể gọi tool quá nhiều, đuổi theo các nhánh cụt hoặc bỏ qua dữ liệu quan trọng.

Trong thực tế, chiến lược hybrid thường hợp lý nhất:

Ba kỹ thuật cho task dài

Các task kéo dài hàng chục phút hoặc vài giờ — như migration codebase lớn, research sâu hoặc phân tích dữ liệu — sớm muộn cũng phải đối mặt với giới hạn context. Anthropic nêu ba kỹ thuật chính.

1. Compaction: nén context

Khi context gần đầy, agent có thể tóm tắt và mở một context mới.

Bản tóm tắt nên giữ lại:

Nó có thể loại bỏ:

Compaction quá mạnh sẽ làm mất những chi tiết chỉ trở nên quan trọng ở bước sau. Vì vậy nên ưu tiên giữ đủ thông tin trước, rồi mới tối ưu độ gọn qua các trace thực tế.

Một cách an toàn và nhẹ là dọn raw tool result cũ trong khi giữ lại kết luận của tool đó.

2. Structured note-taking: ghi chú có cấu trúc

Agent có thể ghi trạng thái ra bên ngoài context, chẳng hạn:

NOTES.md
TODO.md
memory/

Ghi chú tốt không phải bản sao của lịch sử hội thoại. Nó nên là bảng điều khiển nhỏ cho task:

Sau khi context reset, agent đọc lại ghi chú và tiếp tục mà không cần giữ toàn bộ lịch sử trong prompt.

3. Multi-agent: chia nhỏ bằng sub-agent

Một agent duy nhất không nhất thiết phải ôm toàn bộ task. Agent chính có thể lập kế hoạch, sau đó giao các phần độc lập cho sub-agent.

Sub-agent được phép khám phá sâu trong context riêng, rồi trả về một bản tổng hợp ngắn. Nhờ đó:

Compaction phù hợp với hội thoại cần giữ mạch. Note-taking phù hợp với task có milestone rõ. Multi-agent phù hợp với research hoặc phân tích có thể tách thành nhiều nhánh.

Vòng đời quản lý context cho task dài

Task dài cần một vòng lặp gồm làm việc, ghi chú, nén context và tiếp tục; sub-agent có thể trả về những bản tóm tắt cô đọng.

Áp dụng vào việc xây dựng AI agent

Từ các nguyên tắc trên, có thể rút ra một checklist thực dụng:

Khi thiết kế prompt

Khi thiết kế tool

Khi quản lý dữ liệu

Khi chạy task dài

Liên hệ với GoClaw

Những nguyên tắc này đặc biệt hữu ích khi vận hành agent qua Telegram, cron và nhiều tool khác nhau.

Nói cách khác, một gateway tốt không chỉ cần model mạnh. Nó cần đưa cho model đúng dữ liệu, đúng tool và đúng metadata ở đúng thời điểm.

Kết luận

Context engineering là sự chuyển dịch từ việc hỏi “viết prompt thế nào cho hay?” sang câu hỏi rộng hơn:

Thông tin nào cần xuất hiện trước mặt agent ở bước này để nó có xác suất hoàn thành mục tiêu cao nhất?

Câu trả lời thường không phải là thêm nhiều hướng dẫn hơn. Đó có thể là:

Khi model ngày càng thông minh, prompt có thể bớt prescriptive hơn. Nhưng context vẫn là tài nguyên hữu hạn. Biết quản lý tài nguyên đó sẽ tiếp tục là nền tảng để xây dựng những AI agent đáng tin cậy.

Tham khảo


Edit page
Share this post on:

Previous Post
Prompt không ra video: studio motion design là một harness
Next Post
AI coding nhanh hơn, nhưng bộ não thì không: giữ mental model khi làm việc với agent