Lộ trình học AI Agent từ con số 0 cho người mới
Hướng dẫn chi tiết lộ trình 6 giai đoạn học AI agent từ khái niệm cơ bản, vòng lặp, công cụ đến bảo mật. Bạn sẽ tự tay xây dựng sản phẩm thực tế thay vì chỉ dùng framework.
Lộ trình sáu giai đoạn
Để học về AI agent từ đầu, bạn hãy thực hiện theo sáu giai đoạn tuần tự: các khái niệm, vòng lặp đầu tiên, công cụ, bộ nhớ, thiết kế vòng lặp và bảo mật. Mỗi giai đoạn đều có một sản phẩm mà bạn phải tự tay xây dựng. Việc bỏ qua các bước là lý do phổ biến nhất khiến người học bị chững lại, vì các framework thường che giấu chính những phần mà bạn cần phải hiểu rõ.
Một AI agent là một vòng lặp bao quanh một mô hình ngôn ngữ (language model) được phép gọi các công cụ. Câu đó chính là toàn bộ chủ đề này. Mọi thứ sau đó chỉ là chi tiết về những gì nằm trong vòng lặp, những gì công cụ có thể tác động và cách bạn dừng vòng lặp khi có sự cố. Nếu bạn có thể giải thích vòng lặp cho người khác, bạn đã nắm vững vấn đề. Nếu bạn chỉ có thể liệt kê tên các framework, bạn chưa thực sự hiểu.
Kế hoạch dưới đây giả định bạn học thông qua việc xây dựng. Hãy đọc một giai đoạn, xây dựng sản phẩm nhỏ, cố tình làm hỏng nó, rồi mới chuyển sang bước tiếp theo. Một giai đoạn mà bạn chỉ đọc qua thì coi như bạn chưa thực hiện.
Những gì bạn thực sự cần trước giai đoạn 1
Danh sách điều kiện tiên quyết thực tế rất ngắn, ngắn hơn nhiều so với những gì các trang khóa học thường gợi ý.
- Bạn có thể đọc và viết Python hoặc TypeScript ở mức độ một script dài khoảng năm mươi dòng.
- Bạn sử dụng thành thạo Linux shell: cài đặt một package, chỉnh sửa file, đọc log.
- Bạn có một API key cho một model được host sẵn, hoặc một máy tính có thể chạy model cục bộ.
Đó là toàn bộ danh sách. Bạn không cần lý thuyết về machine learning, và bạn không cần phải từng train một model. Không có công việc nào liên quan đến agent đòi hỏi kiến thức về gradient hay dữ liệu huấn luyện. Card đồ họa chỉ quan trọng nếu bạn quyết định tự chạy model, đó là một kỹ năng riêng biệt mà bạn có thể học sau tại hosting Ollama trên VPS để tự host một LLM.
Điều mà mọi người thường đánh giá thấp là phần kỹ năng shell. Các agent thường thất bại do vấn đề về quyền truy cập (permissions), đường dẫn (paths), biến môi trường (environment variables) và các tiến trình bị chết âm thầm. Nếu một stack trace về PATH hoặc chế độ file khiến bạn muốn đóng terminal, hãy dành một cuối tuần để học lại các kiến thức cơ bản về Linux trước. Việc này sẽ giúp bạn tiết kiệm cả tháng trời sau này.
Giai đoạn 1: agent là gì và không phải là gì
Hãy bắt đầu với một API call và không dùng vòng lặp. Gửi một prompt, in kết quả trả về, và xem số lượng token trong phản hồi. Bạn sẽ hiểu được đơn vị chi phí và đơn vị độ trễ.
Sau đó, hãy tìm hiểu về tool use, đây là ý tưởng thực sự mới duy nhất trong toàn bộ lĩnh vực này. Bạn mô tả một hàm cho model dưới dạng tên, mô tả, và một JSON (JavaScript object notation) schema cho các đầu vào của nó. Model không tự chạy bất cứ thứ gì. Nó trả về một yêu cầu có cấu trúc: gọi run_command với các đối số này. Code của bạn chạy hàm đó, gửi kết quả đầu ra ngược lại như một tin nhắn, và hỏi lại model. Model đóng vai trò là một bộ lập kế hoạch đọc văn bản và viết văn bản. Code của bạn mới là thứ thực hiện hành động.
Một chatbot kết thúc sau một lần phản hồi. Một agent lặp lại quá trình trao đổi đó cho đến khi model ngừng yêu cầu sử dụng công cụ. Sự lặp lại đó là toàn bộ sự khác biệt, và đó cũng là lý do tại sao các kiểu lỗi cũng khác nhau. Một chatbot đưa ra câu trả lời sai một lần. Một agent thực hiện hành động dựa trên câu trả lời sai đó nhiều lần trước khi có ai đó nhận ra.
Giai đoạn 2: tự viết vòng lặp, một lần duy nhất
Đừng bắt đầu với một framework. Hãy viết khoảng ba mươi dòng Python để bạn nắm được cấu trúc của nó.
sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-hereimport subprocess
import anthropic
client = anthropic.Anthropic()
tools = [{
"name": "run_command",
"description": "Run a read only shell command and return its output.",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"],
},
}]
messages = [{"role": "user", "content": "How much disk space is free here?"}]
while True:
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=messages,
)
if response.stop_reason != "tool_use":
break
messages.append({"role": "assistant", "content": response.content})
results = []
for block in response.content:
if block.type == "tool_use":
done = subprocess.run(
block.input["command"], shell=True,
capture_output=True, text=True, timeout=10,
)
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": done.stdout or done.stderr,
})
messages.append({"role": "user", "content": results})
print(next(b.text for b in response.content if b.type == "text"))Chạy nó bằng python3 agent.py. Một lần chạy thành công sẽ in ra một đoạn văn liệt kê các filesystem của bạn và dung lượng trống, vì model đã yêu cầu df -h, code của bạn đã thực thi nó, và lượt chạy thứ hai đã chuyển bảng đó thành một câu văn. Nếu nó không in ra gì cả, vòng lặp đã kết thúc trước khi một khối văn bản được gửi đến. Hãy thêm print(response.stop_reason) vào bên trong vòng lặp và theo dõi các giá trị thay đổi.
Bây giờ hãy cố tình làm hỏng nó. Xóa dòng tool_use_id và đọc thông báo lỗi, vì kết quả công cụ không có id khớp sẽ bị API từ chối và đây là lỗi phổ biến nhất của người mới bắt đầu. Hãy đặt một câu hỏi cần hai lệnh và quan sát vòng lặp chạy hai lần. Hãy hỏi một điều gì đó bất khả thi và quan sát xem nó bỏ cuộc hay chạy mãi mãi.
Một cảnh báo về ví dụ này. Nó truyền output của model trực tiếp vào shell bằng shell=True, điều này chấp nhận được trên một máy thử nghiệm mà bạn có thể cài đặt lại, nhưng là sai lầm ở mọi nơi khác. Giai đoạn 6 sẽ khắc phục điều đó. Các khái niệm bên dưới vòng lặp được đề cập chi tiết hơn trong xây dựng AI agent của riêng bạn trên VPS.
Giai đoạn 3: các công cụ mà agent chưa có sẵn
Công cụ run_command của bạn hoạt động tốt, nhưng một agent thực thụ cần các công cụ có thể vươn ra ngoài phạm vi cục bộ: hệ thống ticket, cơ sở dữ liệu, kho lưu trữ. Việc viết một wrapper riêng cho từng dịch vụ, cho từng agent, sẽ không thể mở rộng được.
Model Context Protocol (MCP) là giải pháp mà ngành công nghiệp đã thống nhất. Một MCP server cung cấp một tập hợp các công cụ thông qua một giao thức truyền tải tiêu chuẩn, và bất kỳ agent nào hỗ trợ MCP đều có thể sử dụng nó mà không cần mã kết nối tùy chỉnh. MCP server tham chiếu cho hệ thống tệp chỉ cần một lệnh:
npx -y @modelcontextprotocol/server-filesystem /home/you/projectsLệnh này yêu cầu đã cài đặt Node, và đối số thư mục là đường dẫn duy nhất mà server sẽ truy cập. Đây là mô hình bảo mật thu nhỏ: server quyết định ranh giới, không phải model. Trỏ một client vào đó và agent của bạn sẽ có khả năng đọc và ghi tệp mà bạn không cần phải viết mã. Việc chạy các server này đúng cách, dưới một service account và với các tùy chọn truyền tải đã được giải thích, được đề cập trong chạy các MCP server trên VPS cho các AI coding agent.
Bài học của giai đoạn này là thiết kế công cụ mới là công việc thực sự. Một mô tả mơ hồ sẽ khiến model phải đoán. Một công cụ trả về bốn mươi nghìn ký tự sẽ làm hỏng context window. Một công cụ có khả năng xóa dữ liệu cuối cùng sẽ xóa dữ liệu.
Giai đoạn 4: bộ nhớ, thực chất chỉ là các tệp tin
Người mới bắt đầu thường tìm đến vector database ở bước này. Đừng làm vậy, ít nhất là chưa phải lúc này.
Một agent không có bộ nhớ giữa các lần gọi. Bạn phải gửi lại toàn bộ cuộc hội thoại mỗi lần, đó là lý do tại sao một phiên làm việc dài tốn kém hơn mỗi lượt so với phiên ngắn. Vì vậy, bộ nhớ được chia thành hai vấn đề. Vấn đề thứ nhất là những gì vừa vặn trong context window hiện tại, bạn quản lý nó bằng cách tóm tắt, cắt bớt output cũ của tool và cache phần tiền tố ổn định của prompt để trả phí thấp hơn cho phần đó. Vấn đề thứ hai là những gì tồn tại sau khi khởi động lại, đó chính là lưu trữ.
Đối với vấn đề thứ hai, một tệp markdown đơn giản mà agent có thể đọc và ghi sẽ hiệu quả hơn vector database cho hầu hết các dự án đầu tiên. Hãy cung cấp cho nó một tệp, chỉ định định dạng, yêu cầu nó đọc tệp đó trước khi bắt đầu và cập nhật nó khi học được điều gì đó mới. Bạn nhận được hầu hết các lợi ích và bạn có thể mở tệp ra để xem agent của mình đang ghi nhớ những gì. Hãy cân nhắc sử dụng embeddings và truy xuất khi các ghi chú không còn vừa với context window nữa, chứ không phải trước đó.
Giai đoạn 5: vòng lặp là sản phẩm
Đến đây, bạn đã có thể tạo ra một agent hoạt động khi bạn đang theo dõi nó. Giai đoạn 5 là làm cho nó hoạt động khi bạn không có mặt.
Bốn câu hỏi quyết định liệu một agent chạy tự động có an toàn để để mặc hay không. Điều gì kích hoạt nó, để nó không chạy vô ích. Nó hoạt động trong phạm vi nào, để một sai sót chỉ gây ra hậu quả nhỏ. Kết quả được xác minh như thế nào, vì một agent tự chấm điểm bài làm của chính mình thì luôn luôn đạt. Ngân sách nào sẽ dừng nó lại, tính theo token hoặc thời gian thực tế. Việc thiết kế có chủ đích bốn yếu tố đó là kỷ luật được mô tả trong kỹ thuật vòng lặp, và những gì định nghĩa đó bao hàm.
Bài tập: lấy agent giai đoạn 2 của bạn, giao cho nó một tác vụ cần bốn hoặc năm bước, và thêm một giới hạn lặp cứng. Sau đó, hãy gỡ bỏ giới hạn đó và quan sát xem một vòng lặp không giới hạn sẽ gây ra hậu quả gì cho hóa đơn token của bạn. Hãy thực hiện việc này một lần với ngân sách nhỏ để bạn không bao giờ vô tình lặp lại sai lầm đó với ngân sách lớn.
Giai đoạn 6: an toàn, bí mật và chi phí
Giai đoạn này không phải là tùy chọn, và nó nằm ở cuối chỉ vì bạn không thể cảm nhận được rủi ro cho đến khi bạn đã xây dựng được một thứ gì đó hoạt động.
Hãy chạy agent dưới quyền một người dùng không có đặc quyền riêng, không bao giờ chạy dưới quyền root và không bao giờ chạy dưới tài khoản của chính bạn, để phạm vi ảnh hưởng chỉ giới hạn trong một thư mục thay vì toàn bộ máy chủ. Giữ các thông tin xác thực nằm ngoài tầm với của model, vì bất cứ thứ gì nằm trong context window đều có thể bị trích dẫn ngược lại thông qua một lời gọi tool, và cách khắc phục là giới hạn các token có thời hạn ngắn phía sau một helper như đã mô tả trong giữ bí mật không để lộ cho AI agent của bạn. Hãy đặt giới hạn cứng cho chi phí, vì một vòng lặp không được giám sát sẽ tính phí mỗi lần lặp mà không có ai theo dõi, và các giới hạn cũng như việc xử lý theo lô giúp giữ cho nó ổn định nằm trong kiểm soát chi phí AI agent trên VPS luôn bật.
Chi phí xứng đáng có một con số cụ thể. Tính đến tháng 7 năm 2026, Claude Opus 5 tính phí 5 USD cho mỗi triệu input token và 25 USD cho mỗi triệu output token, và một agent hay trò chuyện khi gửi lại một đoạn hội thoại đang tăng dần có thể đẩy vài trăm nghìn token qua một tác vụ duy nhất. Prompt caching và một model nhỏ hơn cho các bước thông thường sẽ thay đổi bài toán đó nhiều hơn bất kỳ tinh chỉnh prompt nào.
Prompt injection cũng thuộc về phần này. Nếu agent của bạn đọc một trang web, một trình theo dõi vấn đề hoặc một hộp thư đến, thì bất cứ ai viết văn bản đó cũng đang viết hướng dẫn cho agent của bạn. Cách phòng thủ không phải là một system prompt thông minh hơn. Đó là ranh giới, vì một agent không thể xóa repository thì không thể bị thuyết phục để xóa nó.
Bạn nên theo lộ trình nào?
Hãy chọn một chương trình học và hoàn thành nó thay vì thử qua sáu chương trình khác nhau. Kho lưu trữ ai-agents-for-beginners của Microsoft là tài liệu miễn phí đầy đủ nhất, một khóa học gồm mười tám bài đã đạt hơn 70.000 sao tính đến tháng 7 năm 2026, và nó khớp hoàn toàn với các giai đoạn nêu trên. Các bản tổng hợp về những kho lưu trữ agent đang thịnh hành rất hữu ích để biết những gì đang tồn tại, nhưng lại ít giá trị làm giáo trình, vì danh sách được sắp xếp theo số sao chỉ phản ánh mức độ phổ biến chứ không phải thứ tự giảng dạy.
Khi bạn muốn có một dự án thực tế để thực hành, một coding agent là mục tiêu đầu tiên tốt nhất: phản hồi tức thì, các công cụ rõ ràng và lỗi sai dễ dàng khắc phục. Chạy một AI agent lập trình trên VPS hướng dẫn chi tiết từ đầu đến cuối. Nếu bạn muốn nghiên cứu các hệ thống đang hoạt động thay vì xây dựng từ con số không, bài so sánh trong các AI agent tự lưu trữ tốt nhất sẽ cho thấy cách một vài dự án giải quyết cùng một vòng lặp theo những hướng khác nhau.
Việc này mất bao lâu?
Đối với người đã biết lập trình, giai đoạn 1 và 2 chỉ mất một buổi tối. Giai đoạn 3 mất một cuối tuần, phần lớn thời gian dành cho việc mô tả công cụ thay vì giao thức. Giai đoạn 4 và 5 mất vài tuần sử dụng thực tế, vì bạn chỉ biết agent của mình quên gì khi quan sát nó quên. Giai đoạn 6 không bao giờ thực sự kết thúc, vì mỗi khả năng mới bạn cấp cho nó đều mở ra những vấn đề mới.
Hai tháng làm việc đều đặn mỗi buổi tối giúp hầu hết mọi người xây dựng được một agent hoạt động ổn định, có giới hạn và hữu ích. Những người mất cả năm thường là do họ chỉ đọc tài liệu thay vì bắt tay vào xây dựng.
FAQ
Tôi có cần biết về machine learning để xây dựng một AI agent không?
Không. Việc xây dựng một agent nghĩa là gọi một model thông qua API và kết nối các yêu cầu sử dụng tool của nó với các hàm thực tế, đây là công việc lập trình ứng dụng thông thường. Bạn không bao giờ phải can thiệp vào training, gradient hay dataset. Các kỹ năng quyết định agent của bạn có hoạt động hay không là thiết kế schema cho tool, xử lý lỗi và phân quyền trên Linux. Lý thuyết machine learning chỉ trở nên cần thiết nếu bạn tiến hành fine-tune một model, đó là một công việc khác với các yêu cầu tiên quyết khác.
Tôi có nên bắt đầu với một framework như LangChain hay CrewAI không?
Hãy viết một vòng lặp thô trước, sau đó mới áp dụng framework. Một framework thay thế ba mươi dòng code ở giai đoạn 2 bằng một đối tượng cấu hình, điều này rất tiện lợi khi bạn đã biết nó thay thế cái gì, nhưng sẽ gây khó hiểu nếu bạn chưa biết. Khi agent của bạn hoạt động sai, bạn phải suy luận trực tiếp từ danh sách tin nhắn và kết quả của tool, điều này khó hơn nhiều nếu bạn chưa từng thấy chúng. Sau khi tự viết một vòng lặp, framework sẽ giúp bạn tiết kiệm thời gian thay vì che giấu cơ chế hoạt động.
Chi phí để học về AI agent là bao nhiêu?
Ít hơn hầu hết mọi người nghĩ, nếu bạn biết giới hạn nó. Một API key được host và một VPS nhỏ là đủ cho tất cả sáu giai đoạn này. Rủi ro thực sự không nằm ở phí theo giờ, mà là một vòng lặp không giới hạn tính phí mỗi lần lặp trong khi bạn đang ngủ. Hãy thiết lập hạn mức chi tiêu cứng cho tài khoản API của bạn ngay từ ngày đầu tiên, thêm giới hạn số lần lặp vào mọi vòng lặp bạn viết và sử dụng model rẻ hơn cho các bước thông thường. Chạy model cục bộ sẽ loại bỏ hóa đơn token và thay thế bằng yêu cầu về phần cứng.
Sự khác biệt giữa một AI agent và một chatbot là gì?
Một chatbot chỉ trả lời một lần. Một agent lặp lại một chu kỳ: model yêu cầu một tool, code của bạn chạy tool đó, kết quả được gửi trả lại và model quyết định bước tiếp theo cần làm gì. Sự lặp lại đó là thứ cho phép một agent hoàn thành một tác vụ gồm nhiều bước, và đó cũng là lý do tại sao các agent cần các ranh giới mà chatbot không cần. Một câu trả lời sai từ chatbot chỉ là một đoạn văn tệ. Một câu trả lời sai từ một agent là một đoạn văn tệ cộng với bất cứ hành động nào mà nó đã thực hiện dựa trên câu trả lời đó.