Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Đại lý LLM bậc thầy:Tự động hóa quy trình làm việc phức tạp với LangGraph &CrewAI - Cẩm nang nguồn mở

Đại lý LLM bậc thầy:Tự động hóa quy trình làm việc phức tạp với LangGraph &CrewAI - Cẩm nang nguồn mở

Bạn có bao giờ cảm thấy các công cụ AI của mình hơi...thụ động không? Giống như họ chỉ ngồi đó, chờ lệnh tiếp theo của bạn? Hãy tưởng tượng nếu họ có thể chủ động, giải quyết các vấn đề lớn và thậm chí hợp tác cùng nhau để hoàn thành công việc.

Đó chính xác là những gì các đại lý LLM mang đến. Chúng đang thay đổi cách chúng ta tự động hóa các tác vụ phức tạp và có thể giúp hiện thực hóa các ý tưởng AI của chúng ta theo một cách hoàn toàn mới.

Trong bài viết này, chúng ta sẽ khám phá tác nhân LLM là gì, cách chúng hoạt động và cách bạn có thể xây dựng tác nhân LLM của riêng mình bằng cách sử dụng các khung nguồn mở tuyệt vời.

Nội dung chúng tôi sẽ đề cập:

  1. Tình trạng hiện tại của các đại lý LLM

    • Từ Chatbot đến đại lý tự trị

    • Đại lý có thể làm gì hôm nay?

    • Những gì có sẵn để xây dựng?

    • Tại sao bây giờ là thời điểm tốt nhất để học

  2. Đại lý LLM là gì và tại sao họ lại là một thương vụ lớn?

    • LLM là gì?

    • Vậy Đại lý LLM là gì?

    • Tại sao điều này lại quan trọng?

  3. Sự trỗi dậy của các khung tác nhân nguồn mở

    • Các khung tác nhân nguồn mở phổ biến

    • Những công cụ này kích hoạt chức năng gì

    • Tại sao nên sử dụng Framework thay vì xây dựng từ đầu?

  4. Các khái niệm cốt lõi đằng sau thiết kế đại lý

    • Vòng lặp đại lý

    • Các thành phần chính của một tác nhân

    • Hợp tác đa tác nhân

  5. Dự án:Tự động hóa lịch trình hàng ngày của bạn từ email

    • Những gì chúng tôi đang tự động hóa

    • Bước 1:Cài đặt các công cụ cần thiết

    • Bước 2:Xác định nhiệm vụ

    • Bước 3:Xây dựng quy trình làm việc với LangGraph

  6. Cộng tác đa tác nhân với CrewAI

    • CrewAI là gì?

    • Vai trò mẫu cho nhiệm vụ tóm tắt email

    • Mã AI phi hành đoàn mẫu

  7. Điều gì thực sự xảy ra trong quá trình thực hiện?

  8. Đại lý LLM có an toàn không? Những điều cần biết về bảo mật và quyền riêng tư

  9. Khắc phục sự cố và mẹo

  10. Khám phá thêm các tính năng tự động hóa hàng ngày

  11. Điều gì tiếp theo trong công nghệ đại lý?

  12. Tóm tắt cuối cùng

Thực trạng đại lý LLM

Đại lý LLM là một trong những bước phát triển thú vị nhất của AI hiện nay. Chúng đã giúp tự động hóa các nhiệm vụ thực tế nhưng chúng vẫn đang phát triển. Vậy hôm nay chúng ta đang ở đâu?

Từ Chatbot đến Đại lý tự trị

Các Mô hình Ngôn ngữ Lớn (LLM) như GPT-4, Claude, Gemini và LLaMA đã phát triển từ các chatbot đơn giản thành các công cụ suy luận có khả năng đáng kinh ngạc. Họ đã chuyển từ trả lời các câu hỏi đố và viết bài luận đến thực hiện các lý luận phức tạp, làm theo hướng dẫn gồm nhiều bước và tương tác với các công cụ như tìm kiếm trên web và trình thông dịch mã.

Nhưng điều đáng chú ý là:những mô hình này có tính phản ứng . Họ chờ đợi đầu vào và đưa ra đầu ra. Họ không giữ được trí nhớ giữa các nhiệm vụ, không lên kế hoạch trước hoặc tự mình theo đuổi mục tiêu. Đó là nơi Đại lý LLM tham gia – họ thu hẹp khoảng cách này bằng cách bổ sung cấu trúc, bộ nhớ và quyền tự chủ.

Đại lý có thể làm gì hôm nay?

Hiện tại, các đại lý LLM đã được sử dụng cho:

  • Tóm tắt email hoặc tài liệu

  • Lập kế hoạch lịch trình hàng ngày

  • Chạy tập lệnh DevOps

  • Tìm kiếm API hoặc công cụ để tìm câu trả lời

  • Cộng tác theo “nhóm” nhỏ để hoàn thành các nhiệm vụ phức tạp

Nhưng chúng vẫn chưa hoàn hảo. Đại lý vẫn có thể:

  • Bị mắc kẹt trong vòng lặp

  • Hiểu sai mục tiêu

  • Yêu cầu lời nhắc và rào chắn chi tiết

Đó là bởi vì công nghệ này vẫn còn ở giai đoạn đầu. Các khung đang nhanh chóng được cải thiện nhưng độ tin cậy và bộ nhớ vẫn đang được cải thiện. Vì vậy, hãy ghi nhớ điều đó khi bạn thử nghiệm.

Tại sao bây giờ là thời điểm tốt nhất để học

Sự thật là:chúng ta vẫn còn sớm. Nhưng cũng không sớm.

Đây là thời điểm hoàn hảo để bắt đầu thử nghiệm với các tác nhân:

  • Công cụ này đủ hoàn thiện để xây dựng các dự án thực tế

  • Cộng đồng đang phát triển nhanh chóng

  • Và bạn không cần phải là chuyên gia AI, chỉ cần thành thạo Python

Đại lý LLM là gì và tại sao họ lại là một thương vụ lớn?

Trước khi đi sâu vào thế giới thú vị của các đại lý, hãy trò chuyện nhanh một chút về những điều cơ bản.

LLM là gì?

LLM, hay Mô hình ngôn ngữ lớn, về cơ bản là một AI được học từ một lượng lớn văn bản trên internet – hãy nghĩ đến sách, bài viết, mã, v.v. Bạn có thể hình dung nó như một công cụ tự động hoàn thành siêu thông minh. Nhưng nó còn làm được nhiều việc hơn là chỉ kết thúc câu nói của bạn. Nó cũng có thể:

  • Trả lời những câu hỏi khó

  • Tóm tắt các bài viết hoặc tài liệu dài

  • Viết mã, email hoặc câu chuyện sáng tạo

  • Dịch ngôn ngữ ngay lập tức

  • Thậm chí còn giải được các câu đố logic và có những cuộc trò chuyện hấp dẫn

Có thể bạn đã nghe nói về ChatGPT, được hỗ trợ bởi các mô hình GPT của OpenAI. Các LLM phổ biến khác mà bạn có thể gặp bao gồm Claude (từ Anthropic), LLaMA (của Meta), Mistral và Gemini (từ Google).

Những mô hình này hoạt động bằng cách đơn giản là dự đoán từ tiếp theo trong câu dựa trên ngữ cảnh. Mặc dù điều đó nghe có vẻ đơn giản nhưng khi được đào tạo về hàng tỷ từ, LLM sẽ có khả năng hành vi thông minh đáng ngạc nhiên, hiểu hướng dẫn của bạn, làm theo lý luận từng bước và đưa ra phản hồi mạch lạc về hầu hết mọi chủ đề mà bạn có thể tưởng tượng.

Vậy Đại lý LLM là gì?

Mặc dù LLM cực kỳ mạnh mẽ nhưng chúng thường chỉ phản ứng – họ chỉ trả lời khi bạn hỏi họ điều gì đó. Mặt khác, một đại lý LLM lại chủ động .

Đại lý LLM có thể:

  • Chia các nhiệm vụ lớn, phức tạp thành các bước nhỏ hơn và dễ quản lý hơn

  • Đưa ra quyết định thông minh và tìm ra việc cần làm tiếp theo

  • Sử dụng "công cụ" như tìm kiếm trên web, máy tính hoặc thậm chí các ứng dụng khác

  • Hãy nỗ lực hướng tới mục tiêu, ngay cả khi phải thực hiện nhiều bước hoặc nhiều lần thử

  • Hợp tác với các đại lý khác để hoàn thành mục tiêu chung

Nói tóm lại, các nhân viên LLM có thể suy nghĩ, lập kế hoạch, hành động và thích ứng.

Hãy coi một nhân viên LLM giống như trợ lý mới siêu hiệu quả của bạn:bạn đặt cho nó một mục tiêu và nó tự tìm ra cách để đạt được tất cả những mục tiêu đó.

Tại sao điều này lại quan trọng?

Sự chuyển đổi từ chỉ phản ứng sang tích cực theo đuổi mục tiêu này mở ra rất nhiều khả năng thú vị:

  • Tự động hóa các nhiệm vụ CNTT hoặc DevOps nhàm chán

  • Tạo báo cáo chi tiết từ dữ liệu thô

  • Giúp bạn thực hiện các dự án nghiên cứu gồm nhiều bước

  • Đọc qua email hàng ngày của bạn và đánh dấu những thông tin quan trọng

  • Chạy các công cụ nội bộ của bạn để thực hiện các hành động trong thế giới thực

Không giống như các bot cũ, dựa trên quy tắc, các tác nhân LLM có thể suy luận, phản ánh và học hỏi từ những nỗ lực của họ. Điều này làm cho chúng phù hợp hơn nhiều với các nhiệm vụ lộn xộn trong thế giới thực, đòi hỏi sự linh hoạt và phụ thuộc vào việc hiểu ngữ cảnh.

Sự trỗi dậy của các khung tác nhân nguồn mở

Cách đây không lâu, nếu bạn muốn xây dựng một hệ thống AI có thể hoạt động tự động, điều đó có nghĩa là phải viết rất nhiều mã tùy chỉnh, quản lý bộ nhớ một cách tỉ mỉ và cố gắng kết hợp hàng tá thành phần lại với nhau. Đó là một công việc phức tạp, tế nhị và có tính chuyên môn cao.

Nhưng đoán xem? Chuyện đó không còn xảy ra nữa.

Vào năm 2024, một làn sóng khung công tác nguồn mở tuyệt vời đã xuất hiện. Những công cụ này đã giúp việc xây dựng các tác nhân LLM mạnh mẽ trở nên dễ dàng hơn đáng kể mà bạn không cần phải phát minh lại bánh xe mỗi lần.

Các khung tác nhân nguồn mở phổ biến

Khuôn khổ Mô tả Người bảo trì Khung dựa trên đồ thị LangGraph cho trạng thái tác nhân và bộ nhớLangChainCrewAI"Công cụ cộng tác đa tác nhân, dựa trên vai trò"Cộng đồng (CrewAI)AutoGenĐiều phối trò chuyện đa tác nhân có thể tùy chỉnhMicrosoftAgentVerseKhung mô-đun để mô phỏng và thử nghiệm tác nhân Dự án nguồn mở

Những công cụ này kích hoạt tính năng gì

Các khung này cung cấp cho bạn các khối xây dựng sẵn để xử lý các phần phức tạp hơn trong quá trình tạo tác nhân:

  • Lập kế hoạch – Để các đại lý quyết định bước đi tiếp theo của họ

  • Sử dụng công cụ – Dễ dàng kết nối các tác nhân với những thứ như hệ thống tệp, trình duyệt web, API hoặc cơ sở dữ liệu

  • Bộ nhớ – Lưu trữ và truy xuất thông tin trong quá khứ hoặc kết quả trung gian cho bối cảnh dài hạn

  • Hợp tác đa tác nhân – Thiết lập các nhóm đại lý làm việc cùng nhau vì các mục tiêu chung

Tại sao nên sử dụng khung thay vì xây dựng từ đầu?

Trong khi bạn có thể xây dựng một tác nhân tùy chỉnh ngay từ đầu, việc sử dụng một khung sẽ giúp bạn tiết kiệm rất nhiều thời gian và công sức. Thư viện tác nhân nguồn mở đi kèm với:

  • Hỗ trợ tích hợp để điều phối LLM

  • Các mẫu đã được chứng minh để lập kế hoạch nhiệm vụ, theo dõi vị trí của bạn và nhận phản hồi

  • Dễ dàng tích hợp với các mô hình phổ biến như OpenAI hoặc thậm chí các mô hình bạn chạy cục bộ

  • Tính linh hoạt để phát triển từ một tổng đài viên hữu ích duy nhất thành toàn bộ nhóm đại lý

Về cơ bản, các khung này cho phép bạn tập trung vào những gì nhân viên hỗ trợ của bạn nên làm , thay vì sa lầy vào cách xây dựng tất cả các hoạt động nội bộ. Ngoài ra, việc chọn nguồn mở có nghĩa là bạn được hưởng lợi từ sự đóng góp của cộng đồng, tính minh bạch trong cách họ hoạt động và quyền tự do điều chỉnh chúng theo nhu cầu chính xác của bạn mà không bị ràng buộc vào một nhà cung cấp duy nhất.

Các khái niệm cốt lõi đằng sau thiết kế tác nhân

Để thực sự nắm bắt được cách thức hoạt động của các tác nhân LLM, sẽ hữu ích khi coi chúng như những hệ thống hướng đến mục tiêu, liên tục xoay vòng qua việc quan sát, lý luận và hành động. Vòng lặp liên tục này cho phép họ giải quyết các nhiệm vụ vượt xa các câu hỏi và câu trả lời đơn giản, chuyển sang tự động hóa thực sự, sử dụng công cụ và thích ứng nhanh chóng.

Vòng lặp tác nhân

Hầu hết các tác nhân LLM hoạt động dựa trên mô hình tinh thần được gọi là Vòng lặp tác nhân một chu trình từng bước lặp đi lặp lại cho đến khi công việc được thực hiện. Đây là cách nó thường hoạt động:

  • Nhận thức: Tác nhân bắt đầu bằng cách nhận thấy điều gì đó trong môi trường của nó hoặc nhận thông tin mới. Đây có thể là lời nhắc của bạn, một phần dữ liệu hoặc trạng thái hiện tại của hệ thống.

  • Kế hoạch: Dựa trên những gì nó nhận thức được và mục tiêu tổng thể của nó, tác nhân quyết định phải làm gì tiếp theo. Nó có thể chia nhiệm vụ thành các mục tiêu nhỏ hơn hoặc tìm ra công cụ tốt nhất cho công việc.

  • Đạo luật: Các đại lý sau đó hành động. Điều này có thể có nghĩa là chạy một chức năng, gọi API, tìm kiếm trên web, tương tác với cơ sở dữ liệu hoặc thậm chí yêu cầu một tác nhân khác trợ giúp.

  • Suy ngẫm: Sau khi hành động, người đại diện nhìn vào kết quả:Nó có hiệu quả không? Kết quả có hữu ích không? Nó có nên thử một cách tiếp cận khác không? Dựa vào đó, nó cập nhật kế hoạch của mình và tiếp tục thực hiện cho đến khi nhiệm vụ hoàn thành.

Vòng lặp này là điều làm cho các tác nhân trở nên năng động. Nó cho phép họ xử lý các nhiệm vụ luôn thay đổi, học hỏi từ một phần kết quả và điều chỉnh các phẩm chất của khóa học, những yếu tố quan trọng để xây dựng trợ lý AI thực sự hữu ích.

Các thành phần chính của một tác nhân

Để thực hiện công việc của mình một cách hiệu quả, các nhân viên hỗ trợ được xây dựng dựa trên một số bộ phận quan trọng:

  • Công cụ là cách một tác nhân tương tác với thế giới thực (hoặc kỹ thuật số). Đây có thể là bất cứ thứ gì từ công cụ tìm kiếm, môi trường thực thi mã, trình đọc tệp hoặc ứng dụng khách API cho đến máy tính đơn giản hoặc tập lệnh dòng lệnh.

  • Bộ nhớ cho phép các đại lý nhớ những gì họ đã làm hoặc đã thấy qua các bước khác nhau. Điều này có thể bao gồm những điều bạn đã nói trước đây, kết quả tạm thời hoặc các quyết định quan trọng. Một số khung cung cấp bộ nhớ ngắn hạn (chỉ cho một phiên), trong khi những khung khác hỗ trợ bộ nhớ dài hạn có thể trải rộng trên nhiều phiên hoặc mục tiêu.

  • Môi trường đề cập đến ngữ cảnh hệ thống hoặc dữ liệu bên ngoài mà tác nhân vận hành trong các API, tài liệu, cơ sở dữ liệu, tệp hoặc đầu vào cảm biến. Tác nhân càng có nhiều thông tin và quyền truy cập vào môi trường của nó thì tác nhân đó càng thực hiện được nhiều hành động có ý nghĩa hơn.

  • Mục tiêu là mục tiêu cuối cùng của tác nhân:nó đang cố gắng đạt được điều gì. Các mục tiêu phải cụ thể và rõ ràng, chẳng hạn như “tạo lịch trình hàng ngày”, “tóm tắt tài liệu này” hoặc “trích xuất nhiệm vụ từ email”.

Hợp tác đa tác nhân

Đối với các hệ thống tiên tiến hơn, bạn thậm chí có thể có nhiều tác nhân làm việc cùng nhau để đạt được mục tiêu chung. Mỗi nhân viên có thể được giao một vai trò cụ thể làm nổi bật chuyên môn của nó giống như những người làm việc theo nhóm.

Ví dụ:

  • Đại lý nghiên cứu có thể được giao nhiệm vụ thu thập thông tin.

  • Đại lý lập trình viên có thể viết các tập lệnh Python hoặc các quy trình tự động hóa.

  • Người đánh giá có thể kiểm tra kết quả và đảm bảo mọi thứ đều ổn.

Các đại lý này có thể trò chuyện với nhau, chia sẻ thông tin và thậm chí tranh luận hoặc bỏ phiếu về các quyết định. Kiểu làm việc nhóm này cho phép hệ thống AI giải quyết các nhiệm vụ lớn hơn, phức tạp hơn trong khi vẫn giữ mọi thứ ngăn nắp và theo mô-đun.

Dự án:Tự động hóa lịch trình hàng ngày của bạn từ email

Những gì chúng tôi đang tự động hóa

Hãy nghĩ về thói quen buổi sáng điển hình của bạn:

  • Bạn mở hộp thư đến của mình.

  • Bạn nhanh chóng quét qua một loạt email.

  • Bạn cố gắng phát hiện các cuộc họp, nhiệm vụ và lời nhắc quan trọng.

  • Sau đó, bạn viết danh sách việc cần làm theo cách thủ công hoặc thêm mọi thứ vào lịch của mình.

Hãy sử dụng tác nhân LLM để thực hiện quá trình đó dễ dàng. Đại lý của chúng tôi sẽ:

  • Đọc danh sách email của bạn

  • Kéo ra những mục nhạy cảm với thời gian như cuộc họp hoặc thời hạn

  • Tóm tắt mọi thứ thành một lịch trình hàng ngày rõ ràng, đẹp mắt

Bước 1:Cài đặt các công cụ cần thiết

Để bắt đầu, bạn sẽ cần ba công cụ chính:Python, VSCode và khóa API OpenAI.

1. Cài đặt Python 3.9 trở lên

Tải phiên bản Python 3.9+ mới nhất từ trang web chính thức:https://www.python.org/downloads/

Sau khi cài đặt xong, hãy kiểm tra kỹ bằng cách chạy python --version trong thiết bị đầu cuối của bạn.

Lệnh này chỉ yêu cầu hệ thống của bạn báo cáo phiên bản Python hiện được cài đặt. Bạn sẽ muốn xem Python 3.9.x hoặc phiên bản cao hơn để đảm bảo khả năng tương thích với dự án của chúng tôi.

2. Cài đặt VSCode (Tùy chọn nhưng được khuyến nghị)

VSCode là trình soạn thảo mã tuyệt vời, thân thiện với người dùng, hoạt động hoàn hảo với Python. Bạn có thể tải xuống ngay tại đây:https://code.visualstudio.com/.

3. Nhận khóa API OpenAI của bạn

Truy cập:https://platform.openai.com

Đăng nhập hoặc tạo một tài khoản mới. Điều hướng đến trang Khóa API của bạn. Nhấp vào “Tạo khóa bí mật mới” và đảm bảo sao chép khóa đó vào nơi an toàn để sử dụng sau này.

4. Cài đặt thư viện Python

Mở terminal hoặc dấu nhắc lệnh của bạn và cài đặt các gói thiết yếu này:

pip install langgraph langchain openai

Lệnh này sử dụng pip, trình quản lý gói của Python, để tải xuống và cài đặt ba thư viện quan trọng cho tác nhân của chúng tôi:

  • langgraph:Khung cốt lõi mà chúng tôi sẽ sử dụng để xây dựng quy trình làm việc của tổng đài viên.

  • langchain:Một thư viện nền tảng để làm việc với các mô hình ngôn ngữ lớn, trên đó LangGraph được xây dựng.

  • openai:Thư viện Python chính thức để kết nối với các mô hình AI mạnh mẽ của OpenAI.

Nếu bạn muốn thử thiết lập nhiều tác nhân (chúng tôi sẽ trình bày ở Bước 5), hãy cài đặt cả CrewAI:

pip install crewai

Lệnh này cài đặt CrewAI, một framework chuyên dụng giúp dễ dàng điều phối nhiều tác nhân AI làm việc cùng nhau như một nhóm.

5. Đặt khóa API OpenAI của bạn

Bạn cần đảm bảo mã Python có thể tìm và sử dụng khóa API OpenAI của bạn. Điều này thường được thực hiện bằng cách đặt nó làm biến môi trường.

Trên macOS/Linux, hãy chạy cái này trong thiết bị đầu cuối của bạn (thay thế "your-api-key" bằng khóa thực của bạn):

export OPENAI_API_KEY="your-api-key"

Lệnh này đặt biến môi trường có tên OPENAI_API_KEY. Biến môi trường là một cách an toàn để các ứng dụng (như tập lệnh Python của bạn) truy cập thông tin nhạy cảm mà không cần mã hóa trực tiếp vào chính mã đó.

Trên Windows (sử dụng Dấu nhắc Lệnh), hãy thực hiện việc này:

set OPENAI_API_KEY="your-api-key"

Đây là lệnh tương đương với Windows để đặt OPENAI_API_KEY biến môi trường.

Bây giờ, mã Python của bạn đã sẵn sàng để giao tiếp với mô hình OpenAI!

Bước 2:Xác định nhiệm vụ

Chúng tôi đã thảo luận ngắn gọn về vấn đề này ở phần đầu của phần này. Nhưng xin nhắc lại, đây là điều chúng tôi muốn đại diện của mình thực hiện:

  • Quét tìm cuộc họp, sự kiện và nhiệm vụ quan trọng.

  • Hãy ghi nhanh chúng vào sổ tay hoặc ứng dụng.

  • Tạo một kế hoạch tinh thần sơ bộ cho ngày của bạn.

Thói quen này cần có thời gian và năng lượng tinh thần. Vì vậy, việc nhờ một đại lý làm việc đó cho chúng tôi sẽ cực kỳ hữu ích.

Bước 3:Xây dựng quy trình làm việc với LangGraph

LangGraph là gì?

LangGraph là một khung công tác thú vị giúp bạn xây dựng các tác nhân bằng cách sử dụng quy trình làm việc "dựa trên biểu đồ", giống như vẽ sơ đồ. Nó được cung cấp bởi LangChain và mang đến cho bạn nhiều quyền kiểm soát hơn đối với chính xác từng bước trong quy trình của đại lý của bạn diễn ra như thế nào.

Mỗi "nút" trong biểu đồ này biểu thị một điểm quyết định hoặc một hàm:

  • Nhận một số đầu vào ("trạng thái" hiện tại của nó).

  • Đưa ra lý do hoặc thực hiện hành động nào đó (thường liên quan đến LLM và các công cụ của nó).

  • Trả về kết quả đã cập nhật ("trạng thái" mới).

Bạn vẽ các kết nối giữa các nút này và LangGraph sau đó thực thi nó giống như một máy trạng thái tự động, thông minh.

Tại sao nên sử dụng LangGraph?

  • Bạn có thể kiểm soát thứ tự thực hiện chính xác.

  • Thật tuyệt vời khi xây dựng quy trình làm việc có nhiều bước hoặc thậm chí phân nhánh thành nhiều đường dẫn khác nhau.

  • Nó hoạt động tốt với cả các mô hình dựa trên đám mây (như OpenAI) và các mô hình bạn chạy cục bộ.

Được rồi – bây giờ hãy viết mã.

1. Mô phỏng việc nhập email

Trong ứng dụng thực, nhân viên hỗ trợ của bạn có thể kết nối với Gmail hoặc Outlook để tìm nạp email thực của bạn. Tuy nhiên, đối với ví dụ này, chúng tôi sẽ chỉ mã hóa cứng một số tin nhắn mẫu để đơn giản hóa mọi thứ:

Python
emails = """
1. Subject: Standup Call at 10 AM
2. Subject: Client Review due by 5 PM
3. Subject: Lunch with Sarah at noon
4. Subject: AWS Budget Warning – 80% usage
5. Subject: Dentist Appointment - 4 PM
"""

Chuỗi Python nhiều dòng này, emails , đóng vai trò là người đại diện cho nội dung email thực của chúng tôi. Chúng tôi đang cung cấp một danh sách các chủ đề email có cấu trúc đơn giản để minh họa cách nhân viên hỗ trợ xử lý văn bản.

2. Xác định logic tác nhân

Bây giờ, chúng tôi sẽ hướng dẫn mô hình GPT của OpenAI cách xử lý văn bản email này và biến nó thành một bản tóm tắt.

from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, List
import operator
# Define the state for our graph
class AgentState(TypedDict):
 emails: str
 result: str
llm = ChatOpenAI(temperature=0, model="gpt-4o") # Using gpt-4o for better performance
def calendar_summary_agent(state: AgentState) -> AgentState:
 emails = state["emails"]
 prompt = f"Summarize today's schedule based on these emails, listing time-sensitive items first and then other important notes. Be concise and use bullet points:\n{emails}"
 summary = llm.invoke(prompt).content
 return {"result": summary, "emails": emails} # Ensure emails is also returned

Đây là những gì đang diễn ra:

  • Nhập khẩu :Chúng tôi mang đến những thành phần cần thiết:

    • ChatOpenAI để kết nối với LLM,

    • StateGraphEND từ langgraph.graph để xây dựng quy trình làm việc của đại lý của chúng tôi,

    • TypedDict , Annotated , và List từ typing để kiểm tra kiểu và cấu trúc,

    • operator (mặc dù không được sử dụng trong đoạn mã này nhưng nó có thể giúp ích cho việc so sánh hoặc logic).

  • Trạng thái đại lý :TypedDict này xác định hình dạng của dữ liệu mà tác nhân của chúng tôi sẽ làm việc. Nó bao gồm:

    • emails :các thông báo đầu vào thô.

    • result :kết quả cuối cùng (bản tóm tắt hàng ngày).

  • llm =ChatOpenAI(...) :Khởi tạo mô hình ngôn ngữ. Chúng tôi đang sử dụng GPT-4o với temperature=0 để đảm bảo đầu ra nhất quán, có thể dự đoán được, hoàn hảo cho các tác vụ tóm tắt có cấu trúc.

  • calendar_summary_agent(state:AgentState) :Chức năng này là "bộ não" của đại lý của chúng tôi. Nó:

    • Lấy trạng thái hiện tại, bao gồm danh sách email.

    • Trích xuất các email từ trạng thái đó.

    • Xây dựng lời nhắc yêu cầu mô hình tạo bản tóm tắt lịch trình hàng ngày ngắn gọn bằng cách sử dụng các dấu đầu dòng, ưu tiên các mục có thời gian nhạy cảm.

    • Gửi lời nhắc này đến mô hình với llm.invoke(prompt).content , trả về phản hồi của LLM dưới dạng văn bản thuần túy.

    • Trả về AgentState mới từ điển chứa:

      • result :bản tóm tắt được tạo,

      • emails :được bảo toàn trong trường hợp chúng ta cần nó ở hạ nguồn.

3. Xây dựng và chạy biểu đồ

Bây giờ, hãy sử dụng LangGraph để vạch ra quy trình của nhiệm vụ một tác nhân rồi chạy nó.

builder = StateGraph(AgentState)
builder.add_node("calendar", calendar_summary_agent)
builder.set_entry_point("calendar")
builder.set_finish_point("calendar") # END is implicit if not set explicitly
graph = builder.compile()
# Run the graph using your simulated email data
result = graph.invoke({"emails": emails})
print(result["result"])

Đây là những gì đang diễn ra:

  • builder =StateGraph(AgentState): Chúng tôi đang khởi tạo một đối tượng StateGraph. Bằng cách chuyển AgentState, chúng tôi đang thông báo cho LangGraph cấu trúc dữ liệu dự kiến cho trạng thái nội bộ của nó.

  • builder.add_node("calendar", Calendar_summary_agent): Dòng này thêm một "nút" có tên vào biểu đồ của chúng tôi. Chúng tôi gọi nó là "lịch" và chúng tôi đang liên kết nó với calendar_summary_agent của mình hàm, nghĩa là hàm đó sẽ được thực thi khi nút này hoạt động.

  • builder.set_entry_point("lịch"): Việc này đặt "lịch" làm bước đầu tiên trong quy trình làm việc của chúng tôi. Khi chúng ta bắt đầu biểu đồ, quá trình thực thi sẽ bắt đầu tại đây.

  • builder.set_finish_point("lịch"): Điều này cho LangGraph biết rằng khi nút "lịch" hoàn thành công việc của nó thì toàn bộ quá trình biểu đồ sẽ hoàn tất.

  • graph =builder.compile(): Lệnh này lấy bản thiết kế biểu đồ đã xác định của chúng tôi và "biên dịch" nó thành một quy trình làm việc có thể thực thi được.

  • result =graph.invoke({"emails":email}): Đây là nơi phép thuật xảy ra! Chúng tôi đang yêu cầu biểu đồ của chúng tôi bắt đầu chạy. Chúng tôi chuyển cho nó trạng thái ban đầu chứa dữ liệu email của chúng tôi. Sau đó, biểu đồ sẽ xử lý dữ liệu này thông qua các nút của nó cho đến khi đạt đến điểm cuối, trả về trạng thái cuối cùng.

  • print(kết quả["result"]): Cuối cùng, chúng tôi lấy lịch trình tóm tắt từ kết quả (trạng thái cuối cùng của biểu đồ) và in nó ra bảng điều khiển.

Đầu ra ví dụ

Your Schedule:
- 10:00 AM – Standup Call
- 12:00 PM – Lunch with Sarah
- 4:00 PM – Dentist Appointment
- Submit client report by 5:00 PM
- AWS Budget Warning – check usage

Bùm! Bạn vừa xây dựng một tác nhân AI có thể đọc email và sắp xếp lịch trình hàng ngày của bạn. Khá tuyệt phải không? Đây là một cái nhìn đơn giản nhưng mạnh mẽ về những gì nhân viên LLM có thể làm chỉ với một vài dòng mã.

Cộng tác đa tác nhân với CrewAI

CrewAI là gì?

CrewAI là một framework mã nguồn mở thú vị cho phép bạn xây dựng nhóm gồm các nhân viên làm việc liền mạch với nhau giống như một nhóm dự án trong thế giới thực! Mỗi đặc vụ trong thiết lập CrewAI:

  • Có vai trò cụ thể, chuyên biệt.

  • Có thể giao tiếp và chia sẻ thông tin với đồng đội.

  • Hợp tác để đạt được mục tiêu chung.

Cách tiếp cận đa tác nhân này cực kỳ hữu ích khi nhiệm vụ của bạn quá lớn hoặc quá phức tạp đối với chỉ một tác nhân hoặc khi chia nhỏ nó thành các phần chuyên biệt sẽ giúp nó rõ ràng và hiệu quả hơn.

Vai trò mẫu cho nhiệm vụ tóm tắt email

Hãy tưởng tượng nhiệm vụ tóm tắt email của chúng ta được xử lý bởi một nhóm nhỏ nhân viên:

Tên đại lý Vai trò Trách nhiệm Trình trích xuất Trình quét email"Tìm cuộc họp, lời nhắc và nhiệm vụ từ email"Trình ưu tiênTrình tối ưu hóa lịch trìnhSắp xếp các mục theo mức độ khẩn cấp và thời gianTrình định dạngTrình tạo đầu ra"Viết chương trình làm việc hàng ngày rõ ràng, lịch sự"

Mã AI của phi hành đoàn mẫu

from crewai import Agent, Crew, Task, Process
from langchain_openai import ChatOpenAI
import os
# Set your OpenAI API key from environment variables
# os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY" # Make sure this is set, or defined directly
# Initialize the LLM (using gpt-4o for better performance)
llm = ChatOpenAI(temperature=0, model="gpt-4o")
# Define the agents with specific roles and goals
extractor = Agent(
 role="Email Scanner",
 goal="Find all meetings, reminders, and tasks from the given emails, accurately extracting details like time, date, and subject.",
 backstory="You are an expert at scanning emails for key information. You meticulously extract every relevant detail.",
 verbose=True,
 allow_delegation=False,
 llm=llm
)
prioritizer = Agent(
 role="Schedule Optimizer",
 goal="Sort extracted items by urgency and time, preparing them for a daily agenda.",
 backstory="You are a master of time management, always knowing what needs to be done first. You organize tasks logically.",
 verbose=True,
 allow_delegation=False,
 llm=llm
)
formatter = Agent(
 role="Output Generator",
 goal="Generate a clean, polished, and concise daily agenda in bullet-point format, clearly listing all schedule items.",
 backstory="You are a professional secretary, ensuring all outputs are perfectly formatted and easy to read. You prioritize clarity.",
 verbose=True,
 allow_delegation=False,
 llm=llm
)
# Simulate email input
emails = """
1. Subject: Standup Call at 10 AM
2. Subject: Client Review due by 5 PM
3. Subject: Lunch with Sarah at noon
4. Subject: AWS Budget Warning – 80% usage
5. Subject: Dentist Appointment - 4 PM
"""
# Define the tasks for each agent
extract_task = Task(
 description=f"Extract all relevant events, meetings, and tasks from these emails: {emails}. Focus on precise details.",
 agent=extractor,
 expected_output="A list of extracted items with their details (e.g., '- Standup Call at 10 AM', '- Client Review due by 5 PM')."
)
prioritize_task = Task(
 description="Prioritize the extracted items by time and urgency. Meetings first, then deadlines, then other notes.",
 agent=prioritizer,
 context=[extract_task], # The output of extract_task is the input here
 expected_output="A prioritized list of schedule items."
)
format_task = Task(
 description="Format the prioritized schedule into a clean, easy-to-read daily agenda using bullet points. Ensure concise language.",
 agent=formatter,
 context=[prioritize_task], # The output of prioritize_task is the input here
 expected_output="A well-formatted daily agenda with bullet points."
)
# Instantiate the crew
crew = Crew(
 agents=[extractor, prioritizer, formatter],
 tasks=[extract_task, prioritize_task, format_task],
 process=Process.sequential, # Tasks are executed sequentially
 verbose=2 # Outputs more details during execution
)
# Run the crew
result = crew.kickoff()
print("\n########################")
print("## Final Daily Agenda ##")
print("########################\n")
print(result)

Đây là những gì đang diễn ra:

  • Nhập khẩu: Chúng tôi mang đến các lớp chính từ CrewAI:Đặc vụ, Phi hành đoàn, Nhiệm vụ và Quy trình. Chúng tôi cũng nhập ChatOpenAI để mô hình ngôn ngữ và hệ điều hành của chúng tôi xử lý các biến môi trường.

  • llm =ChatOpenAI(...): Giống như trong ví dụ LangGraph, điều này thiết lập mô hình ngôn ngữ OpenAI của chúng tôi, đảm bảo phản hồi của nó là trực tiếp (nhiệt độ=0) và sử dụng mô hình gpt-4o.

  • Định nghĩa tác nhân (trình trích xuất, trình ưu tiên, trình định dạng):

    • Mỗi biến này tạo ra một phiên bản Tác nhân. Một nhân viên được xác định bởi vai trò của nó (những gì nó làm), mục tiêu cụ thể mà nó đang cố gắng đạt được và cốt truyện (một loại tính cách hoặc kiến thức chuyên môn giúp LLM hiểu rõ hơn về mục đích của nó).

    • Verbose=True cực kỳ hữu ích cho việc gỡ lỗi vì nó giúp nhân viên in ra "suy nghĩ" của họ khi họ làm việc.

    • allow_delegation=False có nghĩa là các tổng đài viên này sẽ không chuyển nhiệm vụ được giao của họ cho các tổng đài viên khác (mặc dù điều này có thể được đặt thành True đối với các trường hợp ủy quyền phức tạp hơn).

    • llm=llm kết nối từng tác nhân với mô hình ngôn ngữ OpenAI của chúng tôi.

  • Email mô phỏng: Chúng tôi sử dụng lại cùng một dữ liệu email mẫu cho ví dụ này.

  • Định nghĩa nhiệm vụ (extract_task, ưu tiên_task, format_task):

    • Mỗi Nhiệm vụ xác định một phần công việc cụ thể mà tác nhân cần thực hiện.

    • mô tả cho nhân viên biết rõ ràng nhiệm vụ đó bao gồm những gì.

    • tác nhân giao nhiệm vụ này cho một trong các tác nhân được xác định của chúng tôi (ví dụ:trình trích xuất cho extract_task).

    • context=[...] là một phần quan trọng trong sự hợp tác của CrewAI. Nó yêu cầu tác vụ sử dụng đầu ra của tác vụ trước đó làm đầu vào của nó . Ví dụ:ưu tiên_task lấy đầu ra của extract_task làm ngữ cảnh của nó.

    • mong đợi_output cung cấp cho nhân viên hỗ trợ ý tưởng về kết quả của nó sẽ trông như thế nào, giúp hướng dẫn LLM.

  • phi hành đoàn =Phi hành đoàn(...):

    • Đây là nơi chúng tôi tập hợp đội ngũ của mình! Chúng tôi tạo một phiên bản Crew, cung cấp cho nó danh sách các tác nhân và nhiệm vụ của chúng tôi.

    • process=Process.sequential yêu cầu nhóm thực hiện lần lượt các nhiệm vụ theo thứ tự được xác định trong danh sách nhiệm vụ. CrewAI cũng hỗ trợ các quy trình nâng cao hơn như quy trình phân cấp.

    • Verbose=2 sẽ hiển thị cho bạn nhật ký rất chi tiết về hoạt động và liên lạc nội bộ của phi hành đoàn.

  • kết quả =Crew.kickoff(): Lệnh này chính thức bắt đầu toàn bộ quy trình làm việc của nhiều tác nhân. Các đặc vụ sẽ bắt đầu cộng tác, truyền thông tin và thực hiện các nhiệm vụ được giao theo trình tự.

  • fprint(kết quả): Cuối cùng, kết quả tổng hợp từ nỗ lực hợp tác của toàn bộ nhóm sẽ được in ra bảng điều khiển của bạn.

CrewAI xử lý khéo léo tất cả hoạt động giao tiếp giữa các nhân viên, tìm ra ai cần làm việc gì và khi nào, đồng thời chuyển kết quả đầu ra một cách suôn sẻ từ nhân viên này sang nhân viên tiếp theo, giống như có một dây chuyền lắp ráp AI mini!

Điều gì thực sự xảy ra trong quá trình thực thi?

Vì vậy, cho dù bạn đang sử dụng LangGraph hay CrewAI, điều gì thực sự diễn ra đằng sau khi một đặc vụ điều hành? Hãy chia nhỏ quá trình thực hiện:

  • Hệ thống nhận được trạng thái đầu vào (ví dụ:email của bạn).

  • Nút tác nhân hoặc nút biểu đồ đầu tiên đọc thông tin đầu vào này và sử dụng Mô hình ngôn ngữ lớn (LLM) để hiểu ý nghĩa của nó.

  • Dựa trên sự hiểu biết của mình, tác nhân quyết định một hành động như lấy ra các sự kiện quan trọng hoặc gọi một công cụ cụ thể.

  • Nếu cần, tác nhân có thể gọi công cụ (như tìm kiếm trên web hoặc trình đọc tệp) để có thêm ngữ cảnh hoặc thực hiện các thao tác bên ngoài.

  • Kết quả của hành động đó sau đó được chuyển cho tác nhân tiếp theo trong nhóm (nếu đó là thiết lập nhiều tác nhân) hoặc được trả lại trực tiếp cho bạn.

Việc thực thi tiếp tục cho đến:

  • Nhiệm vụ đã hoàn thành đầy đủ.

  • Tất cả các đặc vụ đã hoàn thành vai trò được giao.

  • Đã đạt đến điều kiện dừng hoặc điểm "KẾT THÚC" được chỉ định trong quy trình làm việc.

Hãy coi đây là một công cụ xử lý công việc siêu thông minh, trong đó mỗi bước đều liên quan đến việc lý luận, đưa ra quyết định và ghi nhớ các tương tác trước đó.

Đại lý LLM có an toàn không? Những điều cần biết về bảo mật và quyền riêng tư

Các nhân viên LLM cũng tuyệt vời như vậy nhưng họ đặt ra một câu hỏi quan trọng:bạn có thực sự tin tưởng AI để chạy các phần trong quy trình làm việc hoặc tương tác với dữ liệu của mình không? Nó phụ thuộc. Nếu bạn đang sử dụng các dịch vụ như OpenAI hoặc Anthropic thì dữ liệu của bạn sẽ được mã hóa trong quá trình truyền và (tính đến thời điểm hiện tại) không được sử dụng cho mục đích đào tạo.

Tuy nhiên, một số dữ liệu vẫn có thể được ghi tạm thời để tránh lạm dụng. Điều này thường phù hợp cho các dự án cá nhân và thử nghiệm, nhưng nếu bạn đang làm việc với thông tin kinh doanh nhạy cảm, dữ liệu khách hàng hoặc bất kỳ thông tin riêng tư nào thì bạn cần phải cẩn thận.

Sử dụng thông tin đầu vào ẩn danh, tránh để lộ toàn bộ tập dữ liệu và cân nhắc việc chạy các tác nhân cục bộ bằng các mô hình nguồn mở như LLaMA hoặc Mistral nếu bạn quan tâm đến toàn quyền kiểm soát.

Bạn cũng có thể đặt ranh giới rõ ràng cho đại lý của mình để họ không vượt quá. Hãy nghĩ về việc này giống như việc giới thiệu một thực tập sinh mới:bạn sẽ không cấp cho họ quyền truy cập vào mọi thứ vào ngày đầu tiên.

Chỉ cung cấp cho nhân viên những công cụ và tệp họ cần, ghi nhật ký những gì họ làm và luôn xem xét kết quả trước khi cho phép họ thực hiện những thay đổi thực sự.

Khi công nghệ này phát triển, sẽ có nhiều tính năng an toàn hơn như hộp cát tốt hơn, giới hạn bộ nhớ và quyền truy cập dựa trên vai trò. Tuy nhiên, hiện tại, điều thông minh là coi các đặc vụ của bạn như những người trợ giúp đắc lực vẫn cần sự giám sát của con người.

Khắc phục sự cố và mẹo

Đôi khi, các đại lý có thể hơi kỳ quặc! Dưới đây là một số vấn đề thường gặp mà bạn có thể gặp phải và cách khắc phục:

Vấn đề Bản sửa lỗi được đề xuất Tác nhân dường như lặp lại mãi mãi Đặt số lần lặp tối đa hoặc xác định điểm dừng rõ ràng hơn. Đầu ra quá nhiều chi tiết hoặc dài dòng. Sử dụng lời nhắc cụ thể hơn (ví dụ:“Chỉ phản hồi trong dấu đầu dòng”). Thông tin đầu vào quá dài hoặc bị cắt Chia nhỏ các phần nội dung lớn thành các phần nhỏ hơn và tóm tắt chúng riêng lẻ. Tác nhân chạy quá chậm Hãy thử sử dụng mô hình LLM nhanh hơn như gpt-3.5 hoặc cân nhắc chạy một mô hình cục bộ.

Một mẹo hữu ích:Bạn cũng có thể thêm câu lệnh print() hoặc thông báo ghi nhật ký bên trong các hàm tác nhân của mình để xem điều gì đang xảy ra ở từng giai đoạn và gỡ lỗi khi chuyển đổi trạng thái.

Khám phá thêm tự động hóa hàng ngày

Sau khi đã xây dựng một tác vụ dựa trên tác nhân, bạn sẽ thấy việc điều chỉnh mẫu cho các hoạt động tự động hóa khác cực kỳ dễ dàng. Dưới đây là một số ý tưởng thú vị để khơi nguồn sáng tạo của bạn:

Loại nhiệm vụ Ví dụ về tự động hóa Trợ lý DevOps"Đọc nhật ký hệ thống, phát hiện các vấn đề tiềm ẩn và đề xuất giải pháp." Trình theo dõi tài chínhĐọc báo cáo ngân hàng hoặc tệp CSV và tóm tắt thói quen chi tiêu/ngân sách của bạn. Người tổ chức cuộc họp Sau cuộc họp, tự động trích xuất các mục hành động và chỉ định chủ sở hữu. Trình dọn dẹp hộp thư đến "Tự động gắn nhãn, lưu trữ và xóa các email không khẩn cấp." Ghi chú Trình tóm tắt Chuyển đổi ghi chú hàng ngày của bạn thành danh sách việc cần làm hoặc tóm tắt được định dạng gọn gàng. Trình kiểm tra liên kết Trích xuất URL từ tài liệu và tự động kiểm tra xem chúng có còn hợp lệ hay không. Tiếp tục FormatterScore tiếp tục dựa trên mô tả công việc và tự động định dạng chúng.

Mỗi trong số này có thể được xây dựng bằng cách sử dụng các nguyên tắc và khuôn khổ giống nhau mà chúng ta đã thảo luận cho dù đó là LangGraph hay CrewAI.

Điều gì tiếp theo trong công nghệ đại lý?

Các đại lý LLM đang phát triển với tốc độ cực nhanh và làn sóng đổi mới tiếp theo đã đến:

  • Hệ thống bộ nhớ thông minh hơn :Mong đợi các nhân viên có trí nhớ dài hạn tốt hơn, cho phép họ học hỏi trong thời gian dài và ghi nhớ các cuộc trò chuyện và hành động trong quá khứ.

  • Đại lý đa phương thức :Đại lý sẽ không chỉ xử lý văn bản nữa! Họ sẽ có thể xử lý và hiểu hình ảnh, âm thanh và video, khiến chúng trở nên linh hoạt hơn nhiều.

  • Khung lập kế hoạch nâng cao :Các kỹ thuật như ReAct, Toolformer và AutoGen không ngừng cải thiện khả năng suy luận, lập kế hoạch và giảm bớt những "ảo giác" phiền toái đó của tác nhân.

  • Triển khai biên :Hãy tưởng tượng các tác nhân chạy hoàn toàn ngoại tuyến trên máy tính hoặc thiết bị cục bộ của bạn bằng cách sử dụng các mẫu nhẹ như LLaMA 3 hoặc Mistral.

Trong tương lai rất gần, bạn sẽ thấy các đại lý được tích hợp liền mạch vào:

  • Quy trình DevOps của bạn

  • Quy trình làm việc của doanh nghiệp lớn

  • Công cụ năng suất hàng ngày

  • Ứng dụng di động và thiết bị thông minh

  • Trò chơi, mô phỏng và nền tảng giáo dục

Tóm tắt cuối cùng

Được rồi, hãy tóm tắt nhanh tất cả những điều thú vị mà bạn vừa học và hoàn thành:

  • Bạn đã hiểu rõ tác nhân LLM là gì và tại sao chúng lại mạnh mẽ đến vậy.

  • Bạn đã thấy các khung nguồn mở như LangGraph và CrewAI giúp các tác nhân xây dựng trở nên dễ dàng hơn nhiều như thế nào.

  • Bạn đã xây dựng một nhân viên LLM thực sự bằng cách sử dụng LangGraph để tự động hóa một công việc phổ biến hàng ngày:tóm tắt hộp thư đến của bạn!

  • Bạn đã khám phá thế giới cộng tác giữa nhiều tác nhân với CrewAI, hiểu cách các nhóm AI có thể làm việc cùng nhau.

  • Bạn đã học cách áp dụng những nguyên tắc này và mở rộng quy mô để tự động hóa vô số nhiệm vụ khác.

Vì vậy, lần tới khi bạn thấy mình mắc kẹt khi làm điều gì đó lặp đi lặp lại, hãy tự hỏi bản thân:"Này, tôi có thể xây dựng đại lý cho việc đó không?" Câu trả lời có lẽ là có!

Tóm tắt tài nguyên

Dưới đây là một số tài nguyên hữu ích nếu bạn muốn tìm hiểu sâu hơn về việc xây dựng đại lý LLM:

Học cách viết mã miễn phí. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started