Tác giả: Kunal Kejriwal
Ngày 22 tháng 11 năm 2023
Những tiến triển gần đây đã chỉ ra rằng các đại lý ngôn ngữ, đặc biệt là những cái được xây dựng trên các mô hình ngôn ngữ lớn (LLM), có khả năng thực hiện một loạt các nhiệm vụ phức tạp trong các môi trường đa dạng bằng ngôn ngữ tự nhiên. Tuy nhiên, trọng tâm chính của hầu hết các khung làm việc đại lý ngôn ngữ hiện nay thường là việc hỗ trợ xây dựng các đại lý ngôn ngữ để chứng minh khái niệm. Trọng tâm này thường đi kèm ít hoặc không chú ý đến thiết kế cấp ứng dụng và thường bỏ qua tính khả dụng của các đại lý này đối với người dùng không chuyên gia.
Để kết nối những hạn chế hiện tại của các đại lý ngôn ngữ, các nhà phát triển đã đề xuất khung làm việc OpenAgents, một nền tảng mở để lưu trữ và triển khai các đại lý ngôn ngữ ở nhiều môi trường khác nhau và trên một loạt các nhiệm vụ hàng ngày. Khung làm việc OpenAgents được xây dựng xung quanh ba đại lý
- Data Agent: Hỗ trợ trong việc phân tích dữ liệu bằng các công cụ dữ liệu và ngôn ngữ truy vấn như SQL, hoặc ngôn ngữ lập trình như Python.
- Plugin Agents: Hỗ trợ bằng cách cung cấp quyền truy cập vào hơn 200 công cụ API hữu ích cho các nhiệm vụ hàng ngày.
- Web Agents: Hỗ trợ trong việc duyệt web trong khi duy trì tính ẩn danh của bạn.
Khung làm việc OpenAgents sử dụng một giao diện người dùng web được tối ưu hóa cho các sự cố phổ biến và phản ứng nhanh chóng nhằm mục đích cho phép người dùng chung tương tác với các chức năng của đại lý, đồng thời mang lại trải nghiệm triển khai mượt mà cho các nhà nghiên cứu và nhà phát triển trên cài đặt địa phương của họ. Có thể nói rằng khung làm việc OpenAgents là một nỗ lực để cung cấp một nền tảng vững chắc để hỗ trợ đánh giá trong thế giới thực và tạo ra các đại lý ngôn ngữ sáng tạo, hiệu quả và tiên tiến.
Trong bài viết hôm nay, chúng ta sẽ đi sâu vào khung làm việc OpenAgents và thảo luận về nó chi tiết hơn. Chúng ta sẽ nói về cách hoạt động và kiến trúc của khung làm việc, đồng thời thảo luận về những thách thức phổ biến và kết quả thu được. Vì vậy, hãy bắt đầu ngay.
Giới thiệu OpenAgents
Các đại lý ngôn ngữ, ở cơ bản, bắt nguồn từ các đại lý thông minh. Những đại lý thông minh này được hình dung có khả năng tự động giải quyết vấn đề, cùng với khả năng cảm nhận môi trường của họ, đưa ra quyết định và hành động phù hợp. Với sự tiến bộ của các mô hình ngôn ngữ lớn, cộng đồng phát triển toàn cầu đã tận dụng khái niệm về đại lý thông minh và LLMs để tạo ra các đại lý ngôn ngữ. Những đại lý này sử dụng lập trình ngôn ngữ tự nhiên (NLP) để thực hiện một loạt các nhiệm vụ phức tạp trong các môi trường đa dạng, và gần đây, chúng đã thể hiện tiềm năng đáng kinh ngạc.
Các khung làm việc đại lý ngôn ngữ hiện tại, như Gravitas và Chase, chủ yếu cung cấp một giao diện console được tinh chỉnh cho nhà phát triển, cùng với các triển khai chứng minh khái niệm. Tuy nhiên, chúng thường hạn chế sự truy cập đối với đông đảo người dùng, đặc biệt là những người không thành thạo về mã hóa. Ngoài ra, các bảng đánh giá hiện tại của đại lý thường được xây dựng bởi nhà phát triển với yêu cầu cụ thể để đánh giá xác định, đặc biệt là trong các tình huống yêu cầu duyệt web, mã hóa, sử dụng công cụ, hoặc sự kết hợp của chúng.
Trong nỗ lực phát triển các đại lý thông minh và ngôn ngữ được động viên bởi LLM cho một đối tượng người dùng rộng lớn hơn, các đơn vị lớn như OpenAI và Microsoft đã triển khai một loạt các sản phẩm được thiết kế tốt, bao gồm Advanced Data Analysis, còn được biết đến là Code Interpreter, và các plugin trình duyệt. Mặc dù những đại lý này hiệu quả trong chức năng của họ, nhưng chúng cung cấp sự giúp đỡ hạn chế cho cộng đồng phát triển. Hạn chế này phát sinh vì mã lập trình logic kinh doanh và triển khai mô hình chưa được công bố công khai, làm giảm cơ hội cho nhà phát triển và nhà nghiên cứu tiếp tục khám phá chúng, cũng như hạn chế quyền truy cập miễn phí cho người dùng.
Trong một nỗ lực giải quyết vấn đề này, các nhà phát triển đã đưa ra OpenAgents, một nền tảng mã nguồn mở để lưu trữ và sử dụng các đại lý, và hiện đang được xây dựng trên cơ sở của ba đại lý nội bộ:
- Data Agent: Hỗ trợ trong phân tích dữ liệu bằng cách sử dụng các công cụ dữ liệu và ngôn ngữ truy vấn như SQL, hoặc ngôn ngữ lập trình như Python.
- Plugin Agents: Hỗ trợ bằng cách cung cấp quyền truy cập vào hơn 200 công cụ API hữu ích cho các nhiệm vụ hàng ngày.
- Web Agents: Hỗ trợ trong việc duyệt web trong khi duy trì tính ẩn danh của bạn.
Sau đây minh họa nền tảng OpenAgents cho người dùng chung, nhà phát triển và nhà nghiên cứu.
- Thay vì sử dụng gói hoặc console dành cho nhà lập trình viên, người dùng chung có thể tương tác với ba đại lý trong khung làm việc OpenAgents thông qua giao diện web trực tuyến.
- Nhà phát triển có thể sử dụng mã logic kinh doanh và mã nghiên cứu được cung cấp bởi khung làm việc OpenAgents để triển khai một cách mượt mà cả phần backend và frontend để phát triển tiếp theo.
- Nhà nghiên cứu có sự linh hoạt, có thể xây dựng các đại lý ngôn ngữ mới từ đầu hoặc triển khai các phương pháp liên quan đến đại lý bằng cách sử dụng các thành phần và ví dụ được chia sẻ, sau đó đánh giá hiệu suất bằng cách sử dụng giao diện người dùng web.
Tóm lại, khung làm việc OpenAgents ban đầu được thiết kế để là một nền tảng toàn diện và thực tế cho việc đánh giá đại lý ngôn ngữ với sự tham gia của con người, cho phép người dùng tương tác với những đại lý này để hoàn thành một loạt các nhiệm vụ. Những tương tác con người – đại lý này, cùng với phản hồi từ người dùng, được lưu trữ và phân tích để phát triển và đánh giá tiếp theo.
Đối với những người không biết, việc khởi động LLM (Large Language Model) là một quy trình cho phép nhà phát triển xây dựng các hướng dẫn nhằm bảo vệ khỏi các đầu vào đối địch hoặc sai lầm, cải thiện vẻ đẹp của đầu ra và phục vụ cho logic backend. Trong quá trình phát triển, những người làm việc trên khung làm việc OpenAgents sử dụng kỹ thuật LLM prompting để nhấn mạnh tầm quan trọng của việc xác định yêu cầu ứng dụng một cách hiệu quả. Tuy nhiên, họ sớm nhận thấy rằng việc xây dựng các hướng dẫn hoặc LLM prompts này có thể là khá lớn đôi khi, có thể ảnh hưởng đến khả năng xử lý ngữ cảnh của các khung làm việc LLM cùng với giới hạn token. Nhà phát triển cũng nhận thấy rằng để triển khai những đại lý này một cách hiệu quả trong thế giới thực, mô hình đại lý không chỉ phải thể hiện hiệu suất xuất sắc, mà còn phải có khả năng xử lý một loạt các tình huống tương tác trong thời gian thực. Mặc dù các khung làm việc đại lý hiện tại đã có hiệu suất đảm bảo, nhưng thường bỏ qua các xác nhận thực tế trong thời gian thực, thường làm mờ đi tiềm năng thực sự của các khung làm việc LLM bằng cách đánh đổi tính nhanh chóng hoặc độ chính xác.
Trong hình sau, chúng ta đang so sánh trực tiếp khung làm việc OpenAgents với các công trình hiện tại trên các bảng đánh giá về khái niệm đại lý và xây dựng nguyên mẫu.
OpenAgents: Thiết kế và Triển khai Nền tảng
Thiết kế hệ thống hoặc kiến trúc của nền tảng OpenAgents có thể chia thành hai thành phần chính: Giao diện Người dùng, bao gồm cả phần backend và frontend, và Đại lý Ngôn ngữ, bao gồm các công cụ, mô hình ngôn ngữ và môi trường. Khung làm việc OpenAgents cung cấp một giao diện cho việc giao tiếp giữa người dùng và các đại lý. Luồng tương tác trong khung làm việc diễn ra như sau.
Các đại lý sử dụng các công cụ có sẵn để lập kế hoạch và thực hiện các hành động cần thiết trong môi trường sau khi họ nhận được đầu vào từ người dùng. Kiến trúc hoặc thiết kế hệ thống của khung làm việc được minh họa trong hình sau.
Giao diện Người dùng
Các nhà phát triển của khung làm việc OpenAgents đã dành nhiều suy nghĩ và nỗ lực để phát triển không chỉ một giao diện người dùng có chức năng cao mà còn thân thiện với người dùng sau khi giải quyết một lượng lớn đại lý máy chủ và logic kinh doanh có thể tái sử dụng. Kết quả, khung làm việc OpenAgents tự hào về việc cung cấp hỗ trợ cho một loạt các nhiệm vụ kỹ thuật bao gồm xử lý lỗi, các hoạt động máy chủ backend, truyền dữ liệu, và nhiều nhiệm vụ khác, với mục tiêu chính là làm cho khung làm việc OpenAgents thân thiện với người dùng, nhưng đồng thời hiệu quả và dễ sử dụng.
Đại lý Ngôn ngữ
Trong khung làm việc OpenAgents, đại lý ngôn ngữ có ba thành phần cơ bản: giao diện công cụ, mô hình ngôn ngữ và môi trường chính. Phương pháp gợi ý được triển khai trong khung làm việc OpenAgents tạo ra một quy trình tuần tự mà các đại lý phải tuân thủ, bắt đầu bằng Quan sát -> Suy nghĩ -> Hành động. Khung cũng gợi ý LLM tạo ra văn bản có thể phân tích được với hiệu suất cải thiện, và giao diện công cụ bao gồm các trình phân tích có thể dịch các văn bản có thể phân tích được này do LLM tạo ra thành các hành động thực thi như thực hiện cuộc gọi API hoặc tạo mã. Những hành động này sau đó được thực hiện bởi khung làm việc trong phạm vi của môi trường tương ứng.
Các Đại lý của OpenAgents
Ở trung tâm của OpenAgents, có ba đại lý đặc biệt: Đại lý Dữ liệu giúp trong Phân tích Dữ liệu bằng cách sử dụng công cụ dữ liệu và ngôn ngữ truy vấn như SQL, hoặc ngôn ngữ lập trình như Python, Đại lý Plugin hỗ trợ bằng cách cung cấp quyền truy cập vào hơn 200 công cụ API hữu ích cho các nhiệm vụ hàng ngày, và Đại lý Web hỗ trợ trong việc duyệt web trong khi duy trì tính ẩn danh của bạn. Các đại lý này có chuyên môn riêng biệt tương tự như các plugin ChatGPT, tuy nhiên, khác với ChatGPT, triển khai trên OpenAgents dựa hoàn toàn trên giao diện lập trình ứng dụng ngôn ngữ mở hoặc APIs.
Đại lý Dữ liệu
Đại lý dữ liệu trong khung làm việc OpenAgents được thiết kế và triển khai để xử lý một loạt các nhiệm vụ liên quan đến dữ liệu mà người dùng cuối thường xuyên gặp phải. Đại lý dữ liệu hỗ trợ việc tạo và thực thi mã trong hai ngôn ngữ lập trình là SQL và Python, và đại lý cũng có một số công cụ dữ liệu như Data Profiling để cung cấp thông tin cơ bản về dữ liệu, Kaggle Data Search để tìm kiếm bộ dữ liệu và ECharts Tool để vẽ đồ thị tương tác ECharts. Hơn nữa, khung làm việc OpenAgents gợi ý cho đại lý dữ liệu sử dụng những công cụ này một cách chủ động để phản ứng một cách hiệu quả đối với yêu cầu của người dùng cuối. Ngoài ra, do yêu cầu mã hóa tương đối phức tạp, khung làm việc OpenAgents chọn mô hình ngôn ngữ nhúng cho đại lý dữ liệu, và thay vì đại lý tạo mã, chính các công cụ như Python, ECharts và SQL tạo mã. Với cách tiếp cận này, khung làm việc có thể tận dụng hoàn toàn sức mạnh lập trình của các mô hình ngôn ngữ và giảm gánh nặng cho đại lý dữ liệu.
Với sự giúp đỡ của các công cụ dữ liệu này, đại lý dữ liệu có khả năng quản lý nhiều yêu cầu tập trung vào dữ liệu và thực hiện trực quan hóa dữ liệu, thao tác và truy vấn một cách thành thạo, vượt ra khỏi ranh giới của việc tạo mã và văn bản. Hình sau là một minh họa về đại lý dữ liệu đang hoạt động và các công cụ có sẵn cho người dùng thông thường.
Đại lý Mô-đun mở rộng (Plugin Agent)
Đại lý plugin trong khung làm việc OpenAgents đã được các nhà phát triển thiết kế một cách tỉ mỉ để đáp ứng đa dạng yêu cầu của người dùng cho các nhiệm vụ hàng ngày bao gồm tìm kiếm trên Internet, mua sắm trực tuyến, đọc tin tức, hoặc tạo trang web và ứng dụng bằng cách cung cấp quyền truy cập vào hơn 200 plugin, với sự chú ý đặc biệt đến giao diện gọi chức năng, API ping, và độ dài phản hồi API. Một số plugin nổi bật bao gồm:
- Google Search
- Wolfram Alpha
- Zapier
- Klarna
- Coursera
- Show Me
- Speak
- AskYourPDF
- BizTok
- Klook
Dựa trên nhu cầu và yêu cầu của họ, người dùng có thể chọn số lượng plugin mà họ muốn đại lý plugin sử dụng, và cách hoạt động được minh họa trong hình dưới đây.
Hơn nữa, để hỗ trợ người dùng trong các tình huống khi họ không chắc chắn plugin nào sẽ phù hợp nhất với yêu cầu của họ, khung làm việc OpenAgents cung cấp cho người dùng một tính năng tự động chọn các plugin phù hợp nhất với hướng dẫn của họ.
Đại lý Web
Khung làm việc OpenAgents giới thiệu đại lý web như một công cụ chuyên biệt được giao nhiệm vụ nâng cao hiệu suất và khả năng của đại lý trò chuyện. Mặc dù đại lý trò chuyện vẫn chứa giao diện tương tác chính, nó tích hợp một cách mượt mà đại lý web khi cần thiết. Phản hồi cuối cùng sau đó được gửi đến người dùng cuối bởi đại lý web, và quy trình được minh họa trong hình dưới đây.
Chiến lược thiết kế triển khai trong những đại lý web này chứng minh là có lợi rất lớn khi đại lý trò chuyện xử lý các tham số quan trọng hoặc khởi động URL một cách có hệ thống, trước khi chúng được chuyển cho đại lý web, đảm bảo sự phù hợp tốt hơn giữa yêu cầu của người dùng và đầu ra được tạo ra, từ đó dẫn đến việc truyền đạt rõ ràng. Hơn nữa, chiến lược cũng cho phép đại lý web chứa các yêu cầu người dùng có độ phức tạp và linh hoạt bằng cách sử dụng một quá trình điều hướng web đa vòng động kết hợp với các cuộc trò chuyện. Do đó, bằng cách phân chia rõ ràng vai trò và trách nhiệm của đại lý trò chuyện và đại lý duyệt web, khung làm việc OpenAgents mở đường cho việc hoàn thiện và phát triển của từng mô-đun cá nhân.
OpenAgents: Ứng dụng Thực Tế và Triển khai Trên Thế Giới Thực
Trong phần này, chúng ta sẽ nói về quỹ đạo của khung làm việc OpenAgents từ việc lý thuyết hóa đến triển khai trong thế giới thực cùng với những thách thức gặp phải và những kinh nghiệm học được cùng với những khía cạnh phức tạp của quá trình đánh giá mà các nhà phát triển đã giải quyết.
Sử dụng Hướng dẫn để Chuyển Đổi Mô Hình Ngôn Ngữ Lớn thành Ứng Dụng Thực Tế
Khi sử dụng hướng dẫn LLM để xây dựng ứng dụng thực tế cho người dùng cuối, khung làm việc OpenAgents sử dụng các hướng dẫn prompt để chỉ định một số yêu cầu cụ thể. Mục tiêu của một số hướng dẫn là đảm bảo đầu ra phù hợp với một định dạng cụ thể, do đó cho phép logic backend xử lý, trong khi mục tiêu của các hướng dẫn khác là tăng cường vẻ đẹp của đầu ra, trong khi phần còn lại bảo vệ khung làm việc khỏi các cuộc tấn công độc hại có thể xảy ra.
Yếu Tố Thế Giới Thực Không Thể Kiểm Soát
Khi các nhà phát triển triển khai khung làm việc OpenAgents trong thế giới thực, họ đối mặt với một loạt các yếu tố thế giới thực không thể kiểm soát được kích thích bởi cơ sở hạ tầng internet, người dùng, logic kinh doanh và nhiều yếu tố khác. Những yếu tố không thể kiểm soát này buộc các nhà phát triển phải đánh giá lại và điều chỉnh một số giả định dựa trên nghiên cứu trước đó, và chúng cuối cùng có thể dẫn đến tình huống mà người dùng cuối cùng có thể không hài lòng với phản hồi mà khung làm việc tạo ra.
Độ Phức Tạp trong Quá Trình Đánh Giá
Mặc dù các đại lý được xây dựng trực tiếp cho các ứng dụng có thể có ứng dụng rộng rãi và giúp đánh giá tốt hơn, nhưng điều này tăng thêm vào sự phức tạp của việc xây dựng các ứng dụng sử dụng LLM, làm cho việc phân tích hiệu suất của các ứng dụng trở nên khó khăn. Hơn nữa, cách tiếp cận này cũng làm tăng tính không ổn định và mở rộng chuỗi hệ thống của các mô hình ngôn ngữ lớn, điều này khiến cho khung làm việc khó khăn trong việc thích ứng với các thành phần khác nhau. Do đó, việc làm rõ thiết kế hệ thống và logic hoạt động của những đại lý này để đơn giản hóa các thủ tục và đảm bảo đầu ra hiệu quả là điều hợp lý.
Thay lời kết
Trong bài viết này, chúng ta đã nói về khung làm việc OpenAgents, một nền tảng mở để lưu trữ và triển khai các đại lý ngôn ngữ trong môi trường thực tế và trên nhiều nhiệm vụ hàng ngày. Khung làm việc OpenAgents được xây dựng xung quanh ba đại lý: Đại lý Dữ liệu, hỗ trợ trong Phân tích Dữ liệu bằng cách sử dụng công cụ dữ liệu và ngôn ngữ truy vấn như SQL hoặc ngôn ngữ lập trình như Python, Đại lý Plugin, hỗ trợ bằng cách cung cấp quyền truy cập vào hơn 200 công cụ API hữu ích cho các nhiệm vụ hàng ngày, và Đại lý Web hỗ trợ trong việc duyệt web trong khi duy trì tính ẩn danh của bạn. Khung làm việc OpenAgents sử dụng giao diện người dùng web được tối ưu hóa cho các lỗi thông thường và phản ứng nhanh, nhằm mục đích cho phép người dùng chung tương tác với các chức năng của đại lý, đồng thời cung cấp trải nghiệm triển khai liền mạch cho các nhà nghiên cứu và nhà phát triển trên các cài đặt cục bộ của họ. Bằng cách cung cấp một nền tảng rõ ràng, toàn diện và triển khai, OpenAgents nhằm mục đích làm cho tiềm năng của các mô hình ngôn ngữ lớn trở nên tiếp cận được hơn đối với một loạt người dùng không chỉ giới hạn cho các nhà nghiên cứu và nhà phát triển mà còn cho người dùng cuối với kiến thức kỹ thuật hạn chế.