Thủ thuật
LangChain hướng dẫn xây dựng môi trường và tác vụ cho AI Agent
(giờ Việt Nam)
Tóm tắt AI
LangChain giới thiệu quy trình 3 bước để thiết lập môi trường cho AI Agent, từ việc tạo đặc tả đến xây dựng kho tri thức chung, giúp chuẩn hóa việc huấn luyện và đánh giá hiệu năng của các hệ thống tự hành.
Bản dịch AI

Bảng thuật ngữ:
Agent: hệ thống sử dụng LLM để quyết định luồng điều khiển của một ứng dụng.
Environment: nơi agent vận hành.
Rubric: bộ tiêu chí để đánh giá kết quả đầu ra của một lần chạy agent.
Task: Bao gồm đầu vào, môi trường và tập lệnh kiểm thử. Các agent thực thi những hướng dẫn này bên trong một môi trường để tạo ra kết quả, sau đó kết quả này sẽ được chấm điểm bởi tập lệnh kiểm thử.
Dataset: Tập hợp các task, còn được gọi là benchmark.
Evaluation: quá trình chạy một agent trên một dataset để nhận về điểm số.
Harbor: một framework dùng để định nghĩa các task & dataset và thực hiện đánh giá (evals).
Traces: thông tin chi tiết về quá trình chạy, bao gồm đầu vào và quỹ đạo hoạt động của agent.
Task Spec: mô tả chi tiết bằng ngôn ngữ tự nhiên về một task (đầu vào, môi trường, tập lệnh kiểm thử) có thể được sử dụng để tạo ra task đó.
World Spec: thông tin cụ thể của dự án, các tập lệnh, hàm hỗ trợ hoặc các thành phần khác có thể được dùng để hỗ trợ tạo spec hoặc chuyển đổi spec thành task.
Tạo một benchmark
Để cải thiện các agent một cách đáng tin cậy, bạn cần một benchmark tốt để chạy thử nghiệm. Điều này giúp xác định các lỗi hồi quy (regression), tìm ra những khía cạnh cần cải thiện và đảm bảo rằng bạn có thể lặp lại quá trình phát triển agent dựa trên các số liệu thực tế.
Xây dựng một benchmark tốt là việc khó khăn. Mỗi task trong benchmark cần có đầu vào mang tính đại diện, một môi trường sát với thực tế và một bộ rubric tương ứng để chấm điểm kết quả. Cần rất nhiều thời gian, công sức và sự điều chỉnh của con người để tạo ra một task đơn lẻ, chưa nói đến cả một dataset.
Chúng tôi suy nghĩ rất nhiều về cách tạo ra các đánh giá (evals) tốt hơn, và việc có khả năng tạo ra các benchmark mang tính đại diện một cách hiệu quả, đáng tin cậy là một phần then chốt. Trong vài tháng qua, chúng tôi đã liên tục cải tiến quy trình để hỗ trợ công việc này.
Trạng thái lý tưởng cuối cùng là gì?
Trạng thái cuối cùng mà chúng tôi hướng tới là một dataset gồm các task chất lượng cao đã được kiểm duyệt. Những task này sau đó có thể được sử dụng để đánh giá, tối ưu hóa (hill-climb) hoặc huấn luyện bổ sung (post-train) cho agent của chúng tôi.
Các ví dụ về task mà chúng tôi tạo nội bộ tại LangChain bao gồm:
Một quy trình (pipeline) để tạo task
Để tạo ra số lượng lớn các task này, chúng tôi nhận thấy cách hiệu quả nhất là xây dựng một pipeline để sản xuất chúng. Chúng tôi thấy rằng thành phần cốt lõi để tạo ra pipeline này chính là khái niệm "spec".
Spec là một tệp markdown mô tả task (đầu vào, môi trường, bộ chấm điểm) trông như thế nào bằng ngôn ngữ tự nhiên. Tùy thuộc vào dataset bạn đang cố gắng xây dựng, nó có thể có các phần hoặc thông tin yêu cầu khác nhau.
Lợi ích của việc có khái niệm spec này là nó tách biệt được:
Bước đầu tiên - "xác định task trông như thế nào" - có thể được thực hiện theo nhiều cách và thường đòi hỏi sự lặp lại của con người để thống nhất những gì quan trọng đối với nhóm và người dùng. Bước thứ hai - "xây dựng task" - lý tưởng nhất là có thể tự động hóa nhiều hơn bằng một agent. Sự tách biệt này cho phép bạn tạo ra nhiều spec khác nhau, tập trung quy trình đánh giá của con người vào đó, và sau đó song song hóa việc xây dựng chúng.
Các spec là phương tiện tốt cho sự hợp tác và chỉnh sửa giữa người và agent. Con người dễ dàng xem xét một spec dạng markdown hơn là mã nguồn và dữ liệu thô của một task. Các chỉnh sửa có thể được quản lý phiên bản, theo dõi giống như mã nguồn và chia sẻ giữa các nhóm.
Nhìn chung, trạng thái lý tưởng cuối cùng là một pipeline bao gồm hai bước:
Tập hợp kiến thức về thế giới (world knowledge)
Để thực hiện tốt một trong hai bước trên, cần phải thu thập thông tin cụ thể về dataset tổng thể mà bạn đang cố gắng tạo ra. Chúng tôi gọi thông tin này là "world knowledge" và nó nằm trong "world spec".
Thông tin này KHÔNG dành riêng cho một task đơn lẻ - nếu có, nó sẽ nằm trong task spec. Thay vào đó, nó là kiến thức chung cho tất cả các task tiềm năng trong một dataset (tức là "thế giới").
Kiến thức này có thể ở các định dạng khác nhau (ví dụ: markdown hoặc tập lệnh python) và được sử dụng theo những cách khác nhau. Ví dụ:
Dưới đây là một số ví dụ về world knowledge từ các benchmark nội bộ của chúng tôi:
Tại sao việc tạo world spec là một quá trình lặp đi lặp lại
Để tạo ra các spec hoặc chuyển đổi spec thành task, bạn cần một "world spec". Làm thế nào để có được world spec này và làm cho nó hữu ích?
Chúng tôi nhận thấy cách tốt nhất để có được spec này là làm việc song song với một coding agent để tạo ra task đầu tiên, sau đó yêu cầu nó viết ra một world spec tổng quát mà nó đã học được trong quá trình thực hiện để sử dụng trong tương lai. Trên thực tế, bạn thậm chí có thể muốn làm điều này cho hai hoặc ba task đầu tiên để đảm bảo world spec thực sự hoàn chỉnh.
Để hỗ trợ việc này, chúng tôi đã tạo ra một kỹ năng (eval-engineering) có thể giúp bạn vừa tạo task đầu tiên, vừa khái quát hóa quy trình đó thành một world spec.
Coding agent thực tế làm gì khi sử dụng kỹ năng eval-engineering để tạo task đầu tiên và sau đó xây dựng world spec?
Rất nhiều kiến thức trong số này là đặc thù cho agent hoặc lĩnh vực mà người dùng đang cố gắng tạo Task. Một phần cốt lõi của việc tạo world spec là liên tục thu thập phản hồi của người dùng, đó là lý do tại sao việc tạo world spec trong khi đang tạo task đầu tiên lại hữu ích đến vậy.
Một task spec chứa những gì
Quá trình tạo một task đơn lẻ đòi hỏi phải ghi lại tất cả các chi tiết triển khai cụ thể cho task đó nhưng dựa trên kiến thức tổng thể về thế giới (world knowledge). Spec mà chúng tôi tạo ra thường nên bao gồm ba phần:
Một số phần trong này có thể là tùy chọn nếu chúng giống nhau cho tất cả các task và có thể được bao hàm bởi "world spec". Ví dụ:





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.