LangChain: Blog
92

Thủ thuật

Sự trỗi dậy của Kỹ thuật Ngữ cảnh (Context Engineering)

(giờ Việt Nam)

Tóm tắt AI

Kỹ thuật Ngữ cảnh đang trở thành phương pháp then chốt để xây dựng ứng dụng LLM đáng tin cậy, tập trung vào việc chủ động quản lý đầu vào thay vì chỉ dựa vào khả năng tự thân của mô hình.

Bản dịch AI

The rise of "context engineering"

Hình ảnh tiêu đề từ Dex Horthy trên Twitter.

Context engineering (kỹ thuật ngữ cảnh) là việc xây dựng các hệ thống động nhằm cung cấp đúng thông tin và công cụ với định dạng phù hợp, để LLM có thể hoàn thành nhiệm vụ một cách khả thi.

Phần lớn thời gian khi một agent không hoạt động ổn định, nguyên nhân sâu xa là do ngữ cảnh, hướng dẫn và công cụ phù hợp đã không được truyền đạt đầy đủ cho mô hình.

Các ứng dụng LLM đang phát triển từ những câu lệnh (prompt) đơn lẻ sang các hệ thống agentic phức tạp và linh hoạt hơn. Do đó, context engineering đang trở thành kỹ năng quan trọng nhất mà một kỹ sư AI cần phát triển.

Context engineering là gì?

Context engineering là việc xây dựng các hệ thống động nhằm cung cấp đúng thông tin và công cụ với định dạng phù hợp, để LLM có thể hoàn thành nhiệm vụ một cách khả thi.

Đây là định nghĩa mà tôi tâm đắc, được xây dựng dựa trên những quan điểm gần đây từ Tobi Lutke, Ankur Goyal và Walden Yan. Hãy cùng phân tích chi tiết.

Context engineering là một hệ thống

Các agent phức tạp thường lấy ngữ cảnh từ nhiều nguồn khác nhau. Ngữ cảnh có thể đến từ nhà phát triển ứng dụng, người dùng, các tương tác trước đó, các lệnh gọi công cụ (tool calls) hoặc các dữ liệu bên ngoài khác. Việc kết hợp tất cả những yếu tố này đòi hỏi một hệ thống phức tạp.

Hệ thống này mang tính động

Nhiều phần của ngữ cảnh có thể được nạp vào một cách linh hoạt. Vì vậy, logic để xây dựng prompt cuối cùng cũng cần phải linh hoạt. Nó không chỉ là một prompt tĩnh.

Bạn cần có thông tin chính xác

Một lý do phổ biến khiến các hệ thống agentic không hoạt động hiệu quả là vì chúng không có đúng ngữ cảnh. LLM không thể đọc được suy nghĩ - bạn cần cung cấp cho chúng thông tin chính xác. Rác vào thì rác ra (Garbage in, garbage out).

Bạn cần có công cụ phù hợp

Không phải lúc nào LLM cũng có thể giải quyết nhiệm vụ chỉ dựa trên dữ liệu đầu vào. Trong những tình huống này, nếu muốn hỗ trợ LLM thực hiện công việc, bạn cần đảm bảo nó có các công cụ phù hợp. Đó có thể là công cụ để tra cứu thêm thông tin, thực hiện hành động hoặc bất kỳ thứ gì khác. Cung cấp cho LLM công cụ phù hợp cũng quan trọng như việc cung cấp thông tin chính xác vậy.

Định dạng rất quan trọng

Giống như giao tiếp với con người, cách bạn giao tiếp với LLM rất quan trọng. Một thông báo lỗi ngắn gọn nhưng mô tả rõ ràng sẽ hiệu quả hơn nhiều so với một khối JSON khổng lồ. Điều này cũng áp dụng cho các công cụ. Các tham số đầu vào cho công cụ của bạn đóng vai trò rất lớn trong việc đảm bảo LLM có thể sử dụng chúng.

Liệu nó có thể hoàn thành nhiệm vụ một cách khả thi không?

Đây là một câu hỏi tuyệt vời cần đặt ra khi bạn nghĩ về context engineering. Nó củng cố thực tế rằng LLM không phải là người đọc được suy nghĩ - bạn cần thiết lập mọi thứ để chúng thành công. Nó cũng giúp phân loại các kiểu lỗi. Liệu nó thất bại vì bạn chưa cung cấp đúng thông tin hoặc công cụ? Hay nó đã có đủ thông tin nhưng vẫn xử lý sai? Những kiểu lỗi này có cách khắc phục rất khác nhau.

Tại sao context engineering lại quan trọng?

Khi các hệ thống agentic gặp lỗi, phần lớn là do LLM gặp lỗi. Suy nghĩ từ những nguyên lý cơ bản, LLM có thể gặp lỗi vì hai lý do:

Thường thì (đặc biệt là khi các mô hình ngày càng tốt hơn), lỗi của mô hình xuất phát từ lý do thứ hai nhiều hơn. Ngữ cảnh được truyền cho mô hình có thể không tốt vì một vài lý do:

Context engineering khác gì với prompt engineering?

Tại sao lại có sự chuyển dịch từ "prompts" sang "context"? Ban đầu, các nhà phát triển tập trung vào việc diễn đạt các prompt một cách khéo léo để có được câu trả lời tốt hơn. Nhưng khi các ứng dụng trở nên phức tạp hơn, rõ ràng là việc cung cấp ngữ cảnh đầy đủ và có cấu trúc cho AI quan trọng hơn nhiều so với bất kỳ câu từ "ma thuật" nào.

Tôi cũng cho rằng prompt engineering là một tập con của context engineering. Ngay cả khi bạn có tất cả ngữ cảnh, cách bạn lắp ghép chúng vào prompt vẫn cực kỳ quan trọng. Sự khác biệt nằm ở chỗ bạn không thiết kế prompt để hoạt động tốt với một tập dữ liệu đầu vào duy nhất, mà là để tiếp nhận một tập dữ liệu động và định dạng nó một cách hợp lý.

Tôi cũng muốn nhấn mạnh rằng một phần quan trọng của ngữ cảnh thường là các hướng dẫn cốt lõi về cách LLM nên hành xử. Đây thường là phần quan trọng của prompt engineering. Bạn sẽ nói rằng việc cung cấp các hướng dẫn rõ ràng và chi tiết về cách agent nên hành xử là context engineering hay prompt engineering? Tôi nghĩ nó là sự kết hợp của cả hai.

Các ví dụ về context engineering

Một số ví dụ cơ bản về context engineering hiệu quả bao gồm:

LangGraph hỗ trợ context engineering như thế nào

Khi xây dựng LangGraph, chúng tôi đặt mục tiêu biến nó thành framework agent có khả năng kiểm soát cao nhất. Điều này cũng cho phép nó hỗ trợ hoàn hảo cho context engineering.

Với LangGraph, bạn có thể kiểm soát mọi thứ. Bạn quyết định các bước nào được chạy. Bạn quyết định chính xác những gì đi vào LLM của mình. Bạn quyết định nơi lưu trữ kết quả đầu ra. Bạn kiểm soát mọi thứ.

Điều này cho phép bạn thực hiện tất cả các kỹ thuật ngữ cảnh mà bạn mong muốn. Một trong những nhược điểm của các lớp trừu tượng agent (điều mà hầu hết các framework agent khác nhấn mạnh) là chúng hạn chế context engineering. Có thể có những nơi bạn không thể thay đổi chính xác những gì đi vào LLM, hoặc chính xác các bước nào được chạy trước đó.

Lưu ý bên lề: một bài đọc rất hay là "12 Factor Agents" của Dex Horthy. Rất nhiều điểm trong đó liên quan đến context engineering ("làm chủ các prompt của bạn", "làm chủ việc xây dựng ngữ cảnh của bạn", v.v.). Hình ảnh tiêu đề cho blog này cũng được lấy từ Dex. Chúng tôi thực sự thích cách anh ấy truyền đạt về những gì quan trọng trong lĩnh vực này.

LangSmith giúp ích gì cho context engineering

LangSmith là giải pháp quan sát và đánh giá ứng dụng LLM của chúng tôi. Một trong những tính năng chính của LangSmith là khả năng truy vết (trace) các lệnh gọi agent của bạn. Mặc dù thuật ngữ "context engineering" chưa tồn tại khi chúng tôi xây dựng LangSmith, nhưng nó mô tả chính xác những gì việc truy vết này hỗ trợ.

LangSmith cho phép bạn thấy tất cả các bước diễn ra trong agent của mình. Điều này giúp bạn thấy những bước nào đã được chạy để thu thập dữ liệu được gửi vào LLM.

LangSmith cho phép bạn thấy chính xác các đầu vào và đầu ra của LLM. Điều này giúp bạn thấy chính xác những gì đã đi vào LLM - dữ liệu nó có và cách nó được định dạng. Sau đó, bạn có thể gỡ lỗi xem liệu nó có chứa tất cả thông tin liên quan cần thiết cho nhiệm vụ hay không. Điều này bao gồm cả việc LLM có quyền truy cập vào những công cụ nào - vì vậy bạn có thể gỡ lỗi xem liệu nó đã được cung cấp các công cụ phù hợp để hỗ trợ nhiệm vụ hiện tại hay chưa.

Giao tiếp là tất cả những gì bạn cần

Vài tháng trước, tôi đã viết một blog có tiêu đề "Communication is all you need". Điểm chính là việc giao tiếp với LLM rất khó, chưa được đánh giá đúng mức và thường là nguyên nhân gốc rễ của rất nhiều lỗi agent. Nhiều điểm trong số đó liên quan đến context engineering!

LLMKỹ thuật ngữ cảnhPhát triển AITối ưu hóa mô hình
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LangChain: Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.