Được phát triển bởi João Moura, crewAI cung cấp một môi trường có cấu trúc để điều phối các tác nhân AI tự trị, cho phép chúng hợp tác và giải quyết các nhiệm vụ phức tạp mà một mô hình AI đơn lẻ khó có thể xử lý.
Về cốt lõi, crewAI được xây dựng dựa trên nguyên tắc trí tuệ hợp tác. Thay vì dựa vào một AI nguyên khối, nền tảng này cho phép người dùng tạo ra một “đội” gồm các tác nhân AI riêng lẻ, mỗi tác nhân có một vai trò, bối cảnh và bộ công cụ cụ thể. Các tác nhân này sau đó có thể được giao nhiệm vụ và làm việc cùng nhau, giao tiếp và phân công trách nhiệm để đạt được mục tiêu chung.
Các thành phần cơ bản của crewAI là:
- Tác nhân (Agents): Đây là các thực thể AI riêng lẻ trong đội. Mỗi tác nhân có khả năng tùy chỉnh cao, với một vai trò được xác định (ví dụ: “Nhà nghiên cứu,” “Người viết,” “Nhà phân tích tài chính”), một “mục tiêu” định hướng vạch ra mục đích chính, và một “bối cảnh” cung cấp ngữ cảnh và cá tính. Các tác nhân cũng có thể được trang bị các “công cụ” cụ thể, là các chức năng hoặc khả năng cho phép chúng tương tác với thế giới bên ngoài, chẳng hạn như truy cập internet, sử dụng API hoặc tương tác với các tệp cục bộ.
- Nhiệm vụ (Tasks): Đây là các phân công cụ thể được giao cho các tác nhân. Mỗi nhiệm vụ có một mô tả rõ ràng về những gì cần hoàn thành và được giao cho một tác nhân cụ thể. Kết quả đầu ra của một nhiệm vụ có thể được sử dụng làm đầu vào cho một nhiệm vụ khác, tạo ra một quy trình làm việc gồm các hoạt động tuần tự hoặc song song.
- Đội (Crews): Đội là môi trường hợp tác nơi các tác nhân và nhiệm vụ kết hợp với nhau. Nó xác định quy trình tổng thể và quản lý sự tương tác giữa các tác nhân. crewAI cung cấp các mô hình quy trình khác nhau, chẳng hạn như tuần tự, nơi các nhiệm vụ được thực hiện lần lượt, và phân cấp, cho phép các mối quan hệ phức tạp hơn giữa người quản lý và cấp dưới giữa các tác nhân.
Sức mạnh của crewAI nằm ở khả năng phân rã một vấn đề phức tạp thành các phần nhỏ hơn, dễ quản lý hơn và giao chúng cho các tác nhân chuyên biệt. Điều này phản ánh cách các đội nhóm con người hoạt động, với các cá nhân đóng góp chuyên môn cụ thể của mình vào một nỗ lực tập thể. Ví dụ, một người dùng có thể tập hợp một đội để viết một báo cáo nghiên cứu toàn diện. Đội này có thể bao gồm một tác nhân “Nhà nghiên cứu cấp cao” để tìm thông tin liên quan, một tác nhân “Nhà phân tích chính” để diễn giải dữ liệu, và một tác nhân “Tổng biên tập” để biên soạn và hoàn thiện báo cáo cuối cùng.
Nền tảng này được thiết kế để linh hoạt và có thể mở rộng, cho phép các nhà phát triển tích hợp nó với nhiều mô hình ngôn ngữ lớn (LLM) và các công cụ khác.
sử dụng crewAI để tạo và quản lý một nhóm LLM agents và nhiệm vụ với Langchain và Ollama
Tiếp theo, chúng ta sẽ sử dụng thư viện crewai để tạo và quản lý một đội gồm các agent (tác tử) và các task (tác vụ). Cách hoạt động của nó như sau:
Bước đầu tiên là cài đặt các thư viện cần thiết, bao gồm langchain-ollama để mô hình hóa ngôn ngữ và crewai.
Tiếp theo, chúng ta định nghĩa hai agent: nhà nghiên cứu (researcher) và người viết (writer). Mỗi agent có một vai trò (ví dụ: “Nhà nghiên cứu” hoặc “Người viết”), một mục tiêu (ví dụ: “Nghiên cứu một chủ đề mới” hoặc “Viết một bài báo hấp dẫn”), và một tiểu sử (mô tả ngắn về tính cách và nền tảng của agent). Chúng ta cũng chỉ định rằng các agent này không được phép ủy thác công việc cho nhau.
Sau khi định nghĩa các agent, chúng ta định nghĩa hai tác vụ: research_task (tác vụ nghiên cứu) và writing_task (tác vụ viết). Mỗi tác vụ có một mô tả (ví dụ: “Điều tra những tiến bộ mới nhất trong lĩnh vực AI” hoặc “Dựa trên nghiên cứu, hãy viết một bài báo”), một đầu ra mong đợi (ví dụ: một bản tóm tắt về 3 tiến bộ hàng đầu hoặc một bài báo 500 từ), và một agent chịu trách nhiệm hoàn thành tác vụ (ví dụ: nhà nghiên cứu hoặc người viết).
Bước cuối cùng là tạo một đối tượng crew (đội), nhận vào hai danh sách: một danh sách các agent và một danh sách các tác vụ. Chúng ta cũng đặt tham số verbose thành True để bật chế độ hiển thị chi tiết.
Cuối cùng, chúng ta gọi phương thức kickoff() trên đối tượng crew, phương thức này sẽ khởi động luồng công việc và trả về kết quả dưới dạng một đối tượng JSON.
Đối tượng JSON kết quả sẽ chứa kết quả đầu ra của mỗi tác vụ, cùng với bất kỳ lỗi hoặc ngoại lệ nào xảy ra trong quá trình thực thi luồng công việc. Tham số verbose có thể được đặt thành False để tắt chế độ hiển thị chi tiết và chỉ trả về kết quả cuối cùng của luồng công việc.
Cài đặt các thư viện cần thiết
Bước đầu tiên là cài đặt các thư viện cần thiết, bao gồm langchain-ollama để mô hình hóa ngôn ngữ và crewai:
Bash
pip install crewai
pip install -U langchain-ollama
Nếu bạn thấy warnings lúc cài đặt hoặc trục trặc khi sử dụng crewAI thì có thể xem Fixed: crewai 0.186.1 requires litellm==1.74.9, but you have litellm 1.77.1 which is incompatible.
Tải mô hình về bằng Ollama
Bạn cần tải mô hình llama3
về máy cục bộ của mình bằng dòng lệnh Ollama.
- Mở terminal hoặc command prompt của bạn.
- Chạy lệnh sau để tải và cài đặt
llama3
:
Bash
ollama pull llama3
Bạn sẽ thấy một thanh tiến trình tải xuống khi Ollama lấy các tệp mô hình. Quá trình này có thể mất vài phút và tốn vài gigabyte dung lượng đĩa, tùy thuộc vào kết nối internet của bạn.
(Ngoài ra, bạn có thể sử dụng ollama run llama3, lệnh này sẽ tải mô hình về và sau đó bắt đầu một cuộc trò chuyện tương tác với nó, xác nhận rằng nó hoạt động.)
Code Python
Đoạn code sau đây cung cấp một ví dụ hoàn hảo về cách sử dụng nhiều agent trong crewAI. Ý tưởng cốt lõi là định nghĩa các agent chuyên biệt, giao cho chúng các tác vụ cụ thể, và sau đó tập hợp chúng lại thành một Crew (Đội) để thực hiện các tác vụ theo một trình tự. Dưới đây là phân tích chi tiết cách code của bạn đạt được luồng công việc đa agent này.
1. Thiết lập và Khởi tạo LLM
Đầu tiên, bạn nhập các thành phần cần thiết và kết nối với Mô hình Ngôn ngữ Lớn (LLM) cục bộ của mình. LLM này sẽ là “bộ não” cho tất cả các agent của bạn.
Python
from crewai import Agent, Task, Crew
from langchain_ollama import OllamaLLM
# Dòng này yêu cầu tất cả các agent sử dụng mô hình Llama3 cục bộ của bạn
ollama_llm = OllamaLLM(model="ollama/llama3")
2. Định nghĩa các Agent chuyên biệt 🤖
Đây là nơi bạn tạo ra đội của mình. Bạn khởi tạo nhiều đối tượng Agent, mỗi đối tượng có một vai trò, mục tiêu và tiểu sử riêng. Sự chuyên môn hóa này rất quan trọng đối với một hệ thống đa agent, vì nó cho phép mỗi agent tập trung vào thế mạnh của mình.
Trong code của bạn, có hai agent riêng biệt:
- researcher: Mục đích duy nhất là tìm kiếm thông tin.
- writer: Mục đích là soạn thảo các bài báo.
Python
# Agent 1: Nhà nghiên cứu
researcher = Agent(
role='Researcher', # Vai trò
goal='Research a new topic', # Mục tiêu
backstory='You are a master of desk research.', # Tiểu sử
llm=ollama_llm,
allow_delegation=False # Agent này làm việc một mình
)
# Agent 2: Người viết
writer = Agent(
role='Writer', # Vai trò
goal='Write a compelling article', # Mục tiêu
backstory='You are a renowned tech writer.', # Tiểu sử
llm=ollama_llm,
allow_delegation=False # Agent này cũng làm việc một mình
)
3. Giao Tác vụ cho các Agent ✍️
Tiếp theo, bạn định nghĩa các đối tượng Task. Chìa khóa để làm cho nhiều agent hoạt động cùng nhau là gán mỗi tác vụ cho một agent cụ thể bằng cách sử dụng tham số agent
. Điều này tạo ra một liên kết rõ ràng giữa một công việc và agent chịu trách nhiệm cho công việc đó.
Python
# Tác vụ 1: Giao cho nhà nghiên cứu
research_task = Task(
description='Investigate the latest advancements in AI.', # Mô tả
expected_output='A summary of the top 3 advancements.', # Đầu ra mong đợi
agent=researcher # Tác vụ này PHẢI được thực hiện bởi agent 1: researcher
)
# Tác vụ 2: Giao cho người viết
writing_task = Task(
description='Based on the research, write an article.', # Mô tả
expected_output='A 500-word article on the latest AI advancements.', # Đầu ra mong đợi
agent=writer # Tác vụ này PHẢI được thực hiện bởi agent 2: người viết
)
Chúng kết nối với nhau như thế nào: Theo mặc định, crewAI chạy các tác vụ một cách tuần tự. Điều này có nghĩa là kết quả đầu ra của research_task
sẽ tự động được chuyển làm ngữ cảnh cho writing_task
. Agent người viết sẽ “thấy” bản tóm tắt của nhà nghiên cứu và sử dụng nó làm nền tảng cho công việc của mình.
4. Tập hợp Crew và Khởi chạy
Crew là thứ kết hợp các agent và tác vụ của chúng lại thành một đơn vị chức năng duy nhất. Bạn truyền danh sách các agent và danh sách các tác vụ của mình vào đó. Thứ tự của các tác vụ trong danh sách sẽ quyết định thứ tự thực thi.
Python
# Crew bao gồm cả hai agent và các tác vụ được giao của họ
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True
)
# Lệnh duy nhất này sẽ bắt đầu toàn bộ luồng công việc đa agent
result = crew.kickoff()
Khi bạn gọi crew.kickoff()
, những điều sau sẽ xảy ra:
- Agent researcher thực hiện research_task.
- Crew lấy kết quả đầu ra từ research_task.
- Agent writer thực hiện writing_task, sử dụng kết quả của nhà nghiên cứu làm điểm khởi đầu.
- Kết quả cuối cùng từ tác vụ cuối cùng (writing_task) được trả về và lưu trong biến
result
.
Đầu ra:

….
print(result)
I now can give a great answer
The Revolutionary Rise of Artificial Intelligence: Latest Advancements That Are Changing Our World
Artificial intelligence (AI) has come a long way since its inception in the 1950s. Today, AI is transforming industries, revolutionizing healthcare, and making our lives easier than ever before. In this article, we’ll delve into the latest advancements in AI, exploring the exciting breakthroughs that are shaping the future.
Natural Language Processing (NLP) – The Key to Human-AI Interaction
One of the most significant developments in AI is natural language processing (NLP). NLP enables computers to understand and generate human-like text, voice, or even facial expressions. With NLP, AI systems can now engage with humans more effectively, allowing for seamless interactions and opening up new possibilities for applications like customer service chatbots and virtual assistants.
Deep Learning: The Powerhouse of AI
Deep learning is a subset of machine learning that mimics the human brain’s neural networks. This breakthrough has enabled AI to learn from data without being explicitly programmed, leading to impressive results in image recognition, speech recognition, and natural language processing. Deep learning has far-reaching implications for industries like healthcare, finance, and education.
Computer Vision: The Eyes of AI
Computer vision is another significant advancement in AI. This technology enables computers to interpret and understand visual information from images and videos. Applications include self-driving cars, facial recognition systems, and medical imaging analysis.
Robotics and Machine Learning – A Match Made in Heaven
The convergence of robotics and machine learning has given rise to intelligent machines that can learn and adapt to new situations. These machines are being used in industries like manufacturing, logistics, and healthcare, where they can perform tasks with precision and speed.
Explainable AI: The Transparency Revolution
As AI becomes more pervasive in our daily lives, there’s a growing need for transparency and explainability. Explainable AI (XAI) is an emerging field that focuses on making AI decisions transparent and interpretable. XAI has significant implications for industries like finance, healthcare, and law enforcement.
The Future of AI: Exciting Developments on the Horizon
As we look to the future, some exciting developments are on the horizon. These include:
- Edge AI: A new era of AI processing at the edge of networks, enabling real-time decision-making.
- Quantum AI: The fusion of quantum computing and AI, which has the potential to revolutionize fields like medicine and finance.
- AI for Social Good: The increasing focus on using AI to solve some of humanity’s most pressing challenges, such as climate change and healthcare disparities.
Conclusion
The latest advancements in AI have opened up a world of possibilities, from natural language processing and deep learning to computer vision, robotics, and explainable AI. As we move forward, it’s essential to ensure that these technologies are used responsibly and ethically, with transparency and accountability at their core. The future of AI is bright, and its potential to transform our world is limitless.
Word Count: 500
Toàn bộ code
#pip install crewai
#pip install -U langchain-ollama
#ollama pull llama3
from crewai import Agent, Task, Crew
from langchain_ollama import OllamaLLM
# Dòng này yêu cầu tất cả các agent sử dụng mô hình Llama3 cục bộ của bạn
ollama_llm = OllamaLLM(model="ollama/llama3")
# Agent 1: Nhà nghiên cứu
researcher = Agent(
role='Researcher', # Vai trò
goal='Research a new topic', # Mục tiêu
backstory='You are a master of desk research.', # Tiểu sử
llm=ollama_llm,
allow_delegation=False # Agent này làm việc một mình
)
# Agent 2: Người viết
writer = Agent(
role='Writer', # Vai trò
goal='Write a compelling article', # Mục tiêu
backstory='You are a renowned tech writer.', # Tiểu sử
llm=ollama_llm,
allow_delegation=False # Agent này cũng làm việc một mình
)
# Tác vụ 1: Giao cho nhà nghiên cứu
research_task = Task(
description='Investigate the latest advancements in AI.', # Mô tả
expected_output='A summary of the top 3 advancements.', # Đầu ra mong đợi
agent=researcher # Tác vụ này PHẢI được thực hiện bởi agent 1: researcher
)
# Tác vụ 2: Giao cho người viết
writing_task = Task(
description='Based on the research, write an article.', # Mô tả
expected_output='A 500-word article on the latest AI advancements.', # Đầu ra mong đợi
agent=writer # Tác vụ này PHẢI được thực hiện bởi agent 2: người viết
)
# Crew bao gồm cả hai agent và các tác vụ được giao của họ
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True
)
# Lệnh duy nhất này sẽ bắt đầu toàn bộ luồng công việc đa agent
result = crew.kickoff()
print(result)
Bài gốc: https://ksml4.com/using-the-crewai-to-create-and-manage-a-crew-of-agents-and-tasks/