Sản phẩm
Hướng dẫn sử dụng Structured Tools trong LangChain: Xây dựng công cụ đa đầu vào phức tạp
(giờ Việt Nam)
Tóm tắt AI
LangChain ra mắt tính năng Structured Tools, cho phép AI xử lý nhiều đầu vào cùng lúc để thực hiện các tác vụ phức tạp, giúp nâng cao đáng kể khả năng vận hành của các AI Agent.
Bản dịch AI

TL;DR: Chúng tôi giới thiệu một lớp trừu tượng (abstraction) mới để cho phép sử dụng các công cụ phức tạp hơn. Trong khi các công cụ trước đây chỉ nhận đầu vào là một chuỗi ký tự đơn lẻ, các công cụ mới có thể nhận số lượng đầu vào tùy ý với các kiểu dữ liệu tùy ý. Chúng tôi cũng giới thiệu một lớp agent mới hoạt động hiệu quả với các loại công cụ mới này.
Các liên kết quan trọng:
Quay lại tháng 11 năm 2022 khi chúng tôi lần đầu ra mắt LangChain, việc sử dụng agent và công cụ đóng vai trò trung tâm trong thiết kế của chúng tôi. Chúng tôi đã xây dựng một trong những chuỗi (chain) đầu tiên dựa trên ReAct, một bài báo đột phá đã đưa việc sử dụng công cụ lên vị trí hàng đầu trong các framework tạo prompt.
Trong thời kỳ đầu, việc sử dụng công cụ còn rất đơn giản. Một mô hình sẽ tạo ra hai chuỗi ký tự:
Cách tiếp cận này giới hạn agent chỉ được sử dụng một công cụ mỗi lượt và đầu vào cho công cụ đó bị hạn chế trong một chuỗi ký tự duy nhất. Những hạn chế này chủ yếu là do các ràng buộc của mô hình; các mô hình gặp khó khăn ngay cả khi thực hiện các tác vụ cơ bản này một cách thành thạo. Việc thực thi các thao tác phức tạp hơn một cách đáng tin cậy, chẳng hạn như chọn nhiều công cụ hoặc điền vào các lược đồ (schema) phức tạp, sẽ là một nhiệm vụ bất khả thi.
Tuy nhiên, sự phát triển nhanh chóng của các mô hình ngôn ngữ tiên tiến hơn như text-davinci-003, gpt-3.5-turbo và gpt-4 đã nâng cao tiêu chuẩn về những gì các mô hình hiện có có thể đạt được một cách đáng tin cậy. Điều này thúc đẩy chúng tôi đánh giá lại các hạn chế về việc sử dụng công cụ trong framework agent của LangChain.
Đầu năm nay, chúng tôi đã giới thiệu framework agent "đa hành động" (multi-action), nơi các agent có thể lập kế hoạch cho nhiều hành động cần thực hiện trong mỗi bước của agent executor. Tiếp nối thành công đó, giờ đây chúng tôi đang phá bỏ rào cản về giới hạn đầu vào chuỗi đơn và tự hào cung cấp hỗ trợ cho các công cụ có cấu trúc (structured tool)!
Các công cụ có cấu trúc cho phép các tương tác phức tạp, đa diện hơn giữa các mô hình ngôn ngữ và công cụ, giúp việc xây dựng các ứng dụng sáng tạo, linh hoạt và mạnh mẽ trở nên dễ dàng hơn.
“Structured Tool” là gì?
Một công cụ có cấu trúc đại diện cho một hành động mà agent có thể thực hiện. Nó bao bọc bất kỳ hàm nào bạn cung cấp để giúp agent dễ dàng giao tiếp với hàm đó. Một đối tượng Structured Tool được định nghĩa bởi:
Tên công cụ là định danh duy nhất của nó. Một cái tên hay sẽ truyền đạt rõ ràng chức năng của nó, vì vậy một công cụ có tên “GetCurrentWeather” sẽ hữu ích hơn nhiều so với “GCTW”. Nếu tên công cụ không rõ ràng với bạn, thì có lẽ nó cũng không rõ ràng với agent. Nếu bạn cấp cho agent quyền truy cập vào nhiều công cụ, tên gọi cũng có thể cung cấp thông tin về mối quan hệ giữa chúng. Ví dụ, nếu bạn có các công cụ “AmazonSearch”, “AmazonCurrentBalance” và “NikeShoppingCart”, agent có thể suy luận rằng hai công cụ đầu tiên có liên quan với nhau ngay cả khi không cần đọc phần mô tả.
Phần mô tả cung cấp các chỉ dẫn chi tiết hơn về cách sử dụng công cụ. Một mô tả tốt cần ngắn gọn nhưng truyền đạt hiệu quả chức năng của công cụ. Phần này cũng có thể cung cấp không gian để đưa ra các ví dụ ngắn (hoặc ví dụ phản chứng) nếu cần.
args_schema là một Pydantic BaseModel định nghĩa các đối số (cùng với thông tin kiểu dữ liệu của chúng) sẽ được truyền vào công cụ. Nó có hai nhiệm vụ chính: thứ nhất, truyền đạt thông tin nào được yêu cầu từ agent. Nhiệm vụ thứ hai là xác thực các đầu vào đó trước khi thực thi chức năng bên trong của công cụ.
Cuối cùng, các phương thức _run và phương thức bất đồng bộ _arun đi kèm sẽ định nghĩa logic của công cụ. Bạn có thể đặt bất cứ thứ gì vào đây, từ các phép tính số học, các yêu cầu API, cho đến các lệnh gọi đến các LLM Chain khác.
Các Structured Tool mới
Ngoài lớp cơ sở mới này, chúng tôi đang phát hành các công cụ mới sau đây, cả hai đều kế thừa từ lớp công cụ có cấu trúc này.
Để xem danh sách tất cả các công cụ (cũ và mới), vui lòng xem tài liệu tại đây.
Triển khai các Structured Tool của riêng bạn
Cách nhanh nhất để bắt đầu là gọi hàm khởi tạo StructuredTool.from_function(your_callable).
Ví dụ, giả sử bạn muốn một công cụ để tương tác với các mô hình Hugging Face thông qua thư viện requests.
[Mã nguồn Python]
API_KEY = "<MY-API-KEY>"
[Mã nguồn Python]
[Mã nguồn Python]
Ở phía sau, hệ thống sẽ suy luận args_schema từ chữ ký của hàm. Điều này được sử dụng để thông báo cho agent rằng nó có thể cung cấp các tham số truy vấn để tìm kiếm cũng như tham số đường dẫn (path) để gọi các endpoint con khác.
Nếu bạn muốn kiểm soát nhiều hơn đối với định nghĩa công cụ, bạn có thể kế thừa trực tiếp từ BaseTool. Ví dụ, có thể bạn muốn khóa API được tự động tải từ các biến môi trường.
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
[Mã nguồn Python]
Làm thế nào để sử dụng Structured Tool?
Chúng tôi đã thêm một StructuredChatAgent mới hoạt động nguyên bản với các công cụ có cấu trúc này. Vui lòng xem trang này để biết hướng dẫn chi tiết.




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.