Giới Thiệu AI Agents
AI Agent là gì, các loại agent, và khi nào nên sử dụng
AI Agent Là Gì?
AI Agents là hệ thống cho phép Large Language Models (LLMs) thực hiện hành động bằng cách mở rộng khả năng của LLM thông qua tools và knowledge.
Hãy phân tích từng phần:
Các Thành Phần Cơ Bản
-
System — Agent không phải một component đơn lẻ mà là một hệ thống gồm nhiều phần:
- Environment: Không gian agent hoạt động (ví dụ: hệ thống booking, codebase, database)
- Sensors: Thu thập thông tin từ environment (API responses, user input, file system)
- Actuators: Thực hiện hành động thay đổi environment (gọi API, viết file, gửi email)
-
LLM — Điểm khác biệt so với agent truyền thống: khả năng hiểu ngôn ngữ tự nhiên và dữ liệu. LLM diễn giải thông tin từ environment và lập kế hoạch hành động.
-
Tools — LLM được “mở rộng” bằng các công cụ: function calling, API calls, database queries, file operations.
-
Memory & Knowledge — Bộ nhớ ngắn hạn (conversation context) và dài hạn (database, vector stores, external knowledge).
Các Loại AI Agents
| Loại Agent | Mô Tả | Ví Dụ |
|---|---|---|
| Simple Reflex | Hành động dựa trên rules cố định | Chatbot tự động chuyển email khiếu nại sang bộ phận hỗ trợ |
| Model-Based Reflex | Hành động dựa trên model của thế giới và sự thay đổi | Agent ưu tiên routes có biến động giá dựa trên dữ liệu lịch sử |
| Goal-Based | Lập kế hoạch đạt mục tiêu cụ thể | Agent booking chuyến đi bằng cách xác định phương tiện cần thiết |
| Utility-Based | Cân nhắc preferences và trade-offs | Agent tối ưu hoá giữa tiện lợi và chi phí |
| Learning | Cải thiện theo thời gian qua feedback | Agent điều chỉnh gợi ý dựa trên đánh giá của người dùng |
| Hierarchical | Nhiều agent phân cấp, agent cấp cao chia task cho agent cấp thấp | Agent huỷ chuyến đi bằng cách phân chia subtasks cho các agent khác |
| Multi-Agent Systems | Nhiều agent hoạt động độc lập, hợp tác hoặc cạnh tranh | Nhiều agent cùng booking hotel, flights, entertainment |
Khi Nào Nên Sử Dụng AI Agents?
AI Agents phù hợp nhất cho:
1. Open-Ended Problems
Những bài toán mà các bước giải quyết không thể hardcode vào workflow. Agent cần tự xác định cách tiếp cận.
// Ví dụ: User yêu cầu không cụ thể
const userRequest = "Giúp tôi tối ưu performance cho website";
// Agent cần tự:
// 1. Phân tích codebase
// 2. Chạy lighthouse audit
// 3. Xác định bottlenecks
// 4. Đề xuất và implement fixes
2. Multi-Step Processes
Tasks phức tạp yêu cầu nhiều bước, sử dụng tools qua nhiều turns thay vì single-shot retrieval.
3. Improvement Over Time
Tasks mà agent có thể cải thiện theo thời gian qua feedback từ environment hoặc users.
So Sánh: LLM vs AI Agent
┌─────────────────┬───────────────────────────┐
│ LLM thuần │ AI Agent │
├─────────────────┼───────────────────────────┤
│ Input → Output │ Input → Plan → Act → Loop │
│ Stateless │ Có Memory │
│ Chỉ generate │ Generate + Execute │
│ Single turn │ Multi-turn autonomous │
└─────────────────┴───────────────────────────┘
Ví Dụ Thực Tế: Agent Đơn Giản Với TypeScript
import OpenAI from "openai";
const client = new OpenAI();
// Định nghĩa tool
const tools: OpenAI.ChatCompletionTool[] = [
{
type: "function",
function: {
name: "get_weather",
description: "Lấy thông tin thời tiết hiện tại",
parameters: {
type: "object",
properties: {
location: { type: "string", description: "Tên thành phố" }
},
required: ["location"]
}
}
}
];
// Agent loop
async function agent(userMessage: string) {
const messages: OpenAI.ChatCompletionMessageParam[] = [
{ role: "system", content: "Bạn là trợ lý thời tiết." },
{ role: "user", content: userMessage }
];
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages,
tools,
tool_choice: "auto"
});
// Agent tự quyết định có gọi tool không
const toolCalls = response.choices[0].message.tool_calls;
if (toolCalls) {
for (const call of toolCalls) {
console.log(`Agent gọi tool: ${call.function.name}`);
console.log(`Arguments: ${call.function.arguments}`);
}
}
return response.choices[0].message.content;
}
Tổng Kết
- AI Agent = LLM + Tools + Memory + Environment
- Có nhiều loại agent phù hợp cho các use cases khác nhau
- Agent phù hợp nhất cho bài toán open-ended, multi-step, cần cải thiện liên tục
- Trong series này, chúng ta sẽ xây dựng agents bằng TypeScript và Python với OpenAI API