[Agentic AI #1] Tạm Biệt Chatbot: Hướng Dẫn Build Đội Ngũ "Nhân Viên Ảo" Đầu Tiên Với Python
Chào các anh em developer! 👋
Nếu như năm 2023 là năm chúng ta "trầm trồ" trước khả năng trả lời câu hỏi của ChatGPT, thì 2024-2025 đang đánh dấu một bước chuyển mình mạnh mẽ hơn: Kỷ nguyên của AI Agents (Tác tử AI).
Chúng ta không còn muốn một con AI chỉ biết "chat". Chúng ta muốn một con AI biết "làm". Biết tự search Google, biết tự debug code, biết tự gửi email báo cáo.
Trong bài viết này, mình sẽ chia sẻ nhanh về khái niệm Agentic AI và demo code thực tế để anh em thấy việc build một "đội ngũ nhân viên ảo" bằng Python dễ dàng như thế nào với thư viện CrewAI.
1. AI Agent là gì? (Giải thích nhanh cho Dev)
Đừng nghĩ nó quá phức tạp. Hãy tư duy theo công thức này:
AI Agent = LLM (Bộ não) + Tools (Tay chân) + Planning (Quy trình)
- LLM (Large Language Model): Như GPT-4 hay Claude. Nó thông minh nhưng bị cô lập, không thể tác động ra thế giới bên ngoài.
- Tools: Là các hàm (functions) mà chúng ta cung cấp cho LLM. Ví dụ: hàm
Google Search(), hàmsave_file(), hàmsend_email(). - Planning: Khả năng tự suy luận. "Để trả lời câu hỏi này, trước tiên mình phải search Google, sau đó lấy kết quả tính toán, cuối cùng mới trả lời."
2. Tại sao lại dùng Python và CrewAI?
Python là "ngôn ngữ bản địa" của AI. Còn CrewAI hiện đang là framework nổi bật nhất để xây dựng hệ thống Multi-Agent (Đa tác tử).
Thay vì viết một file script dài ngoằng (if-else lồng nhau), CrewAI cho phép bạn định nghĩa các Nhân viên (Agents) với vai trò cụ thể và thả chúng vào một môi trường để chúng tự phối hợp làm việc.
3. Demo: Xây dựng "Tòa Soạn Báo AI"
Chúng ta sẽ code một chương trình gồm 2 Agents:
- Researcher (Nhà nghiên cứu): Chuyên đi "hóng biến" công nghệ trên Google.
- Writer (Nhà báo): Dựa trên thông tin Researcher tìm được để viết thành bài blog.
Bước 1: Cài đặt môi trường
Anh em mở terminal và cài các thư viện cần thiết:
pip install crewai crewai-tools
Bước 2: Chuẩn bị "Nguyên liệu" (API Keys)
Để code chạy được, anh em cần 2 chiếc chìa khóa quan trọng (nhớ giữ bí mật, đừng push lên Github nhé):
-
OPENAI_API_KEY (Bộ não):
- Truy cập: platform.openai.com/api-keys
- Đăng nhập và chọn Create new secret key.
- Lưu ý: Tài khoản OpenAI cần có credit (nạp tối thiểu $5) thì API mới hoạt động ổn định.
-
SERPER_API_KEY (Công cụ Search):
- Truy cập: serper.dev
- Đăng ký tài khoản (Free tier cho phép 2.500 queries đầu tiên - quá đủ để anh em test thoải mái).
- Vào Dashboard và copy Key.
Bước 3: Code Python hoàn chỉnh
Dưới đây là file main.py. Anh em copy về và điền key vừa lấy được vào nhé:
import os
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
# --- CẤU HÌNH API ---
# Paste key bạn vừa lấy vào đây
os.environ["OPENAI_API_KEY"] = "sk-..."
os.environ["SERPER_API_KEY"] = "..."
# 1. Khởi tạo công cụ
search_tool = SerperDevTool()
# 2. Định nghĩa Nhân sự (Agents)
# Agent chuyên đi tìm tin tức
researcher = Agent(
role='Chuyên gia nghiên cứu công nghệ',
goal='Tìm kiếm xu hướng mới nhất về chủ đề: {topic}',
verbose=True, # Bật log để xem nó suy nghĩ gì
memory=True,
backstory=(
"Bạn là người có khả năng tìm kiếm thông tin thượng thừa. "
"Nhiệm vụ của bạn là đào sâu các dữ liệu mới nhất trên Internet."
),
tools=[search_tool] # Trang bị công cụ Google Search
)
# Agent chuyên viết bài
writer = Agent(
role='Blogger công nghệ',
goal='Viết bài blog hấp dẫn từ thông tin được cung cấp',
verbose=True,
memory=True,
backstory=(
"Bạn là một cây bút chuyên nghiệp. Bạn biết cách biến những thông tin "
"kỹ thuật khô khan thành bài viết dễ hiểu, hài hước."
),
allow_delegation=False
)
# 3. Định nghĩa Nhiệm vụ (Tasks)
# Task 1: Nghiên cứu
research_task = Task(
description=(
"Tìm kiếm thông tin chi tiết về chủ đề: {topic}. "
"Tổng hợp 3 xu hướng chính trong năm nay."
),
expected_output='Báo cáo tóm tắt 3 xu hướng kèm nguồn dẫn chứng.',
tools=[search_tool],
agent=researcher,
)
# Task 2: Viết bài (Phụ thuộc vào Task 1)
write_task = Task(
description=(
"Dựa trên báo cáo của Researcher, hãy viết một bài blog ngắn (Markdown) "
"về chủ đề {topic}. Giọng văn thân thiện, dành cho lập trình viên."
),
expected_output='Nội dung bài blog định dạng Markdown.',
agent=writer,
context=[research_task] # Quan trọng: Nhận đầu vào từ kết quả task trước
)
# 4. Chạy Đội nhóm (Crew)
tech_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential # Chạy tuần tự
)
print("### BẮT ĐẦU QUY TRÌNH ###")
result = tech_crew.kickoff(inputs={'topic': 'AI Agents with Python'})
print("\n\n########################")
print("## KẾT QUẢ BÀI BLOG ##")
print(result)
Điều gì diễn ra "dưới nắp capo"?
Khi chạy đoạn code trên, bạn sẽ thấy log chạy rất thú vị:
- Researcher nhận task. Nó tự suy luận: "Cần search Google keyword 'AI Agents Python trends'".
- Nó gọi API Google, đọc kết quả, thấy chưa đủ, nó có thể search tiếp lần 2.
- Sau khi có dữ liệu, nó chuyển (hand-off) sang cho Writer.
- Writer nhận dữ liệu thô, dùng khả năng ngôn ngữ của GPT-4 để viết thành bài văn hoàn chỉnh.
Tất cả diễn ra tự động. Chúng ta không hề code logic if search_result is empty then..., Agent tự xử lý việc đó.
4. Ứng dụng thực tế là gì?
Đây chỉ là ví dụ đơn giản. Trong thực tế, các công ty đang dùng AI Agents để:
- Customer Support: Tự tra cứu database, check trạng thái đơn hàng và trả lời khách.
- Coding Assistant: Một agent viết test, một agent viết code, một agent review code.
- Marketing: Tự động theo dõi đối thủ, viết bài social và lên lịch đăng.
Kết luận
AI Agents không phải là trào lưu nhất thời. Nó là bước tiến hóa logic của việc ứng dụng AI vào sản phẩm. Là lập trình viên, việc hiểu tư duy "Agentic" (tư duy giao việc cho máy thay vì ra lệnh từng bước) sẽ là một lợi thế cạnh tranh cực lớn.
Anh em hãy thử copy đoạn code trên và chạy thử xem sao nhé. Nếu có lỗi hay thắc mắc gì, cứ comment bên dưới mình sẽ giải đáp!
Happy Coding! 🚀
All rights reserved