Series 0 - Bài 1: Agent vs Chatbot vs Automation
Chatbot, Automation và AI Agent thường bị dùng lẫn lộn. Bài này phân tích rõ ranh giới cơ chế giữa ba paradigm, kèm diagram so sánh flow và trade-off của từng loại.
Nghe bài viết này dưới dạng podcastHầu hết các cuộc thảo luận về AI Agent đều bắt đầu bằng sự nhầm lẫn. Chatbot, Automation, Agent — ba từ này bị dùng thay thế cho nhau mỗi ngày, nhưng chúng đại diện cho ba paradigm hoàn toàn khác nhau.
Hiểu rõ ranh giới này không phải chuyện học thuật. Nó quyết định bạn thiết kế hệ thống thế nào, debug thế nào, và quan trọng hơn — biết khi nào nên dùng cái gì.
Ba paradigm, ba cơ chế khác nhau
Chatbot: Request → Response
Chatbot là paradigm đơn giản nhất. Người dùng gửi một message, hệ thống trả về một response. Xong.
User Input
│
▼
┌─────────────┐
│ LLM │
└─────────────┘
│
▼
Response
Không có memory thực sự (conversation history chỉ là illusion — bạn đang paste lại toàn bộ lịch sử vào mỗi request). Không có action. Không có side effect. LLM nhận text, trả text.
Ví dụ điển hình: ChatGPT ở dạng cơ bản, customer support bot, FAQ bot.
Đặc điểm nhận dạng: Nếu tắt LLM đi, không có gì xảy ra với thế giới bên ngoài.
Automation: Chuỗi bước cố định
Automation là một pipeline được định nghĩa trước. Bước 1 xong chạy bước 2, bước 2 xong chạy bước 3. LLM có thể là một trong các bước đó, nhưng flow không thay đổi dựa trên output của LLM.
Trigger
│
▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Step 1 │────▶│ Step 2 │────▶│ Step 3 │
└─────────┘ └─────────┘ └─────────┘
│ │
(LLM (Send
classify) email)
Flow là deterministic. Nếu bước 2 fail, bạn biết chính xác tại sao và phải làm gì. Không có bất ngờ.
Ví dụ điển hình: n8n workflow, Zapier, CI/CD pipeline có AI step.
Đặc điểm nhận dạng: Bạn có thể vẽ toàn bộ flow trên whiteboard trước khi viết một dòng code.
Agent: Dynamic Loop
Agent là paradigm khác hoàn toàn. Không có flow cố định. LLM nhận task, tự quyết định cần làm gì tiếp theo, thực thi, quan sát kết quả, và lặp lại cho đến khi task hoàn thành.
Task
│
▼
┌─────────────┐
│ Observe │◀──────────────┐
└──────┬──────┘ │
│ │
▼ │
┌─────────────┐ │
│ Think │ │
│ (LLM) │ │
└──────┬──────┘ │
│ │
┌──────▼──────┐ │
│ Act? │ │
│ tool_use │───────────────▶│ (tool result)
│ hoặc │
│ text_done │
└─────────────┘
LLM tự quyết định: cần đọc file nào, cần chạy lệnh gì, cần hỏi thêm thông tin gì. Flow xuất hiện tại runtime, không phải lúc thiết kế.
Ví dụ điển hình: Claude Code, Devin, agent tự research và viết report.
Đặc điểm nhận dạng: Bạn không thể vẽ toàn bộ execution path trước khi chạy.
So sánh trực tiếp
| Tiêu chí | Chatbot | Automation | Agent |
|---|---|---|---|
| Flow | Single turn | Fixed pipeline | Dynamic loop |
| Quyết định | Không | Predefined | LLM tự quyết |
| Side effects | Không | Có, predictable | Có, unpredictable |
| Memory | Stateless | Stateful theo step | Stateful phức tạp |
| Debug | Dễ | Trung bình | Khó |
| Predictability | Cao | Cao | Thấp |
| Autonomy | Không | Thấp | Cao |
Ranh giới thực sự
Ranh giới không phải ở độ thông minh của LLM. Ranh giới nằm ở ai quyết định bước tiếp theo là gì.
- Chatbot: Không có bước tiếp theo — chỉ có response.
- Automation: Developer quyết định trước.
- Agent: LLM quyết định tại runtime.
Đây là shift quan trọng nhất. Khi LLM được quyền quyết định hành động tiếp theo, bạn không còn building một feature — bạn đang building một system có autonomous behavior.
Trade-off không thể tránh
Autonomy cao đi kèm unpredictability cao. Đây không phải bug — đây là property cơ bản của hệ thống.
Chatbot: Predictable, nhưng không làm được gì ngoài trả lời.
Automation: Predictable và có side effects, nhưng rigid — không xử lý được edge case ngoài thiết kế.
Agent: Flexible và powerful, nhưng behavior khó đoán trước. Agent có thể làm đúng theo cách bạn không mong đợi, hoặc làm sai theo cách bạn không nghĩ đến.
Đây là lý do tại sao thiết kế agent system không phải chỉ là viết code tốt — mà là thiết kế guardrails, permission model, và observability từ ngày đầu tiên.
Kết luận
- Chatbot là input/output machine — phù hợp khi bạn cần trả lời, không cần hành động.
- Automation là orchestrated pipeline — phù hợp khi bạn biết trước toàn bộ flow.
- Agent là autonomous system — phù hợp khi task quá phức tạp để define flow trước.
- Ranh giới là ai quyết định bước tiếp theo: developer hay LLM.
- Autonomy cao hơn đòi hỏi thiết kế hệ thống phức tạp hơn — không phải chỉ là viết prompt tốt hơn.
Chưa có bình luận
Để lại bình luận
Bình luận sẽ được phê duyệt trước khi hiển thị.