Vấn đề thực tế: Đừng dùng máy cày để… đi chợ
Anh em làm DevOps chắc chẳng lạ gì cảnh muốn tự động hóa mấy việc vặt nhưng lại vướng vào đống framework cồng kềnh. Hồi đầu, mình thường tìm đến LangChain hay CrewAI. Công bằng mà nói, chúng rất mạnh. Nhưng thực tế triển khai lại là chuyện khác hẳn.
Có lần mình chỉ định viết con bot nhỏ để quét log server, tóm tắt lỗi rồi bắn lên Telegram. Dùng framework lớn, mình mất cả buổi chỉ để cấu hình Chain và AgentExecutor. Mớ dependency đi kèm nặng tới vài trăm MB. Cảm giác lúc đó giống như đang lái một chiếc xe tải chỉ để đi mua gói mì tôm vậy.
Làm thật mới thấy, kỹ năng quan trọng nhất không phải là biết dùng tool khủng. Quan trọng là bạn phải chọn đúng công cụ “vừa miếng”. Nếu bạn đang ngán ngẩm với sự phức tạp thái quá của các Agent hiện nay, Smolagents chính là thứ bạn tìm kiếm.
Tại sao xây dựng AI Agent lại mệt mỏi đến thế?
Để biết tại sao cần một giải pháp tinh gọn, hãy nhìn vào những “nỗi đau” mà anh em thường gặp:
- Code bị bọc quá nhiều lớp (Over-abstraction): Nhiều thư viện ẩn giấu logic quá kỹ. Khi Agent chạy sai, bạn chẳng biết nó lỗi ở Prompt hay do framework đang xử lý ngầm cái gì.
- Logic “ngáo” (Hallucination): Các Agent truyền thống thường suy nghĩ bằng văn bản (ReAct). Cách này rất dễ khiến AI “tự diễn biến” khi gặp các phép tính số học hoặc logic lập trình phức tạp.
- Gánh nặng hạ tầng: Chạy một Agent hoàn chỉnh đôi khi tốn cả GB RAM. Điều này cực kỳ lãng phí nếu bạn chỉ cần chạy một script nhỏ trên con VPS cấu hình thấp.
Các hướng giải quyết anh em thường dùng
Hiện tại, chúng ta thường có 3 lựa chọn phổ biến:
- Hard-coding + LLM API: Viết script Python thuần và gọi API OpenAI ở những đoạn cần xử lý ngôn ngữ. Cách này kiểm soát tốt nhưng lại thiếu linh hoạt khi gặp task mới.
- Dùng Framework lớn: Phù hợp cho hệ thống Enterprise đa nhân sự. Với cá nhân hoặc team nhỏ, nó tốn quá nhiều chi phí bảo trì.
- AI Coding Assistant: Nhờ Cursor hay Copilot viết hộ code. Cách này nhanh nhưng vẫn cần con người bấm chạy, chưa đạt tới mức tự động hóa hoàn toàn.
Smolagents: Tư duy “Code Agent” khác biệt
Sau nhiều lần thử sai, mình dừng chân tại Smolagents từ nhà Hugging Face. Triết lý của nó rất thực tế: Code Agents. Thay vì để AI mô tả hành động bằng văn bản, nó để LLM viết trực tiếp code Python để giải quyết vấn đề.
Code này được thực thi trong môi trường an toàn. Cách tiếp cận này cực kỳ trực quan. AI tính toán sai? Bạn chỉ cần check đoạn code nó vừa sinh ra là thấy ngay lỗi logic.
Bước 1: Cài đặt trong 10 giây
Đúng như cái tên “smol”, thư viện này cực kỳ nhẹ và không kéo theo mớ dependency rác:
pip install smolagents
Bước 2: Tạo Agent tìm kiếm thông tin
Chỉ cần khoảng 10 dòng code, bạn đã có một con Agent biết lên mạng “lùng” thông tin rồi tổng hợp lại.
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
# Dùng serverless API miễn phí của Hugging Face cho nhanh
model = HfApiModel()
# Giao công cụ tìm kiếm cho Agent
agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=model)
# Ra lệnh
agent.run("Giá Bitcoin hôm nay bao nhiêu và dự báo xu hướng ngắn hạn?")
Ở đây, CodeAgent sẽ tự viết code gọi tool, lấy dữ liệu và xử lý. Bạn không cần ngồi định nghĩa từng bước rườm rà.
Bước 3: Tự chế Tool riêng – Bí kíp cho dân DevOps
Điểm ăn tiền nhất là bạn có thể biến bất kỳ hàm Python nào thành một công cụ cho AI. Ví dụ, mình muốn Agent kiểm tra ổ đĩa server:
import shutil
from smolagents import tool, CodeAgent, HfApiModel
@tool
def check_disk_usage(path: str) -> str:
"""
Công cụ kiểm tra dung lượng ổ đĩa tại một đường dẫn.
Args:
path: Đường dẫn cần kiểm tra (ví dụ: '/')
"""
total, used, free = shutil.disk_usage(path)
return f"Đã dùng: {used // (2**30)}GB / {total // (2**30)}GB"
agent = CodeAgent(tools=[check_disk_usage], model=HfApiModel())
agent.run("Kiểm tra ổ đĩa hệ thống và báo cáo dung lượng trống.")
AI sẽ đọc phần docstring bên dưới hàm để hiểu khi nào cần lôi công cụ này ra dùng. Rất đơn giản và mạch lạc.
Tại sao Smolagents xứng đáng có trong bộ đồ nghề của bạn?
- Minh bạch tuyệt đối: Agent chạy đến đâu, code hiện ra đến đó. Bạn kiểm soát được hoàn toàn những gì AI đang làm trên server của mình.
- Siêu nhẹ: Một Docker image chứa Smolagents có thể nhẹ hơn 3-4 lần so với các framework khác.
- Chơi tốt với Local LLM: Bạn dễ dàng kết nối với Ollama để chạy offline hoàn toàn, bảo mật dữ liệu tuyệt đối.
Lời kết
Xây dựng AI Agent không nhất thiết phải là một dự án nghiên cứu đồ sộ. Đôi khi, bạn chỉ cần một script nhỏ, hiểu rõ logic và chạy ổn định. Smolagents giúp mình giải quyết bài toán đó: làm việc nhanh, code sạch và quan trọng là mình vẫn làm chủ được hệ thống. Chúc anh em sớm build được những con bot “xịn xò” cho riêng mình!

