Cách học AI agent từ đầu qua 6 giai đoạn
Lộ trình học AI agent từ đầu qua 6 giai đoạn: hiểu khái niệm, tự viết vòng lặp, thêm tools, memory và safety, mỗi bước đều có thứ để xây dựng.
Lộ trình gồm 6 giai đoạn
Để học AI agent từ đầu, hãy thực hiện lần lượt 6 giai đoạn: khái niệm, vòng lặp đầu tiên, tools, memory, thiết kế vòng lặp và safety. Mỗi giai đoạn có một thứ để bạn tự tay xây dựng. Bỏ qua các bước là lý do phổ biến nhất khiến người học bị đình trệ, vì framework che khuất đúng phần bạn cần thấy.
AI agent là một vòng lặp bao quanh language model và được phép gọi tools. Đây là toàn bộ chủ đề. Mọi phần sau chỉ giải thích chi tiết những gì nằm trong vòng lặp, tools có thể truy cập vào đâu và cách dừng vòng lặp khi xảy ra lỗi. Nếu bạn có thể giải thích vòng lặp này cho người khác, bạn đã hiểu vấn đề. Nếu bạn chỉ có thể kể tên các framework, bạn vẫn chưa hiểu.
Kế hoạch dưới đây giả định bạn học bằng cách xây dựng. Đọc một giai đoạn, xây dựng thứ nhỏ tương ứng, cố ý làm cho nó lỗi, rồi chuyển sang giai đoạn tiếp theo. Một giai đoạn mà bạn chỉ mới đọc thì chưa phải là giai đoạn bạn đã thực hành.
Bạn thực sự cần gì trước giai đoạn 1
Danh sách điều kiện tiên quyết thực sự rất ngắn, ngắn hơn nhiều so với mô tả của hầu hết các trang khóa học.
- Bạn có thể đọc và viết Python hoặc TypeScript ở mức một script 50 dòng.
- Bạn sử dụng Linux shell thành thạo: cài package, chỉnh sửa file, đọc log.
- Bạn có API key cho một model được host, hoặc có máy chạy được model local.
Chỉ có vậy. Bạn không cần lý thuyết machine learning và cũng không cần từng train model. Không có phần nào trong việc xây dựng agent liên quan đến gradient hay training data. Graphics card chỉ cần thiết nếu bạn quyết định tự chạy model, đây là một kỹ năng riêng mà bạn có thể học sau từ host Ollama trên VPS để tự host LLM.
Điều mọi người thường đánh giá thấp là phần shell. Agent thường lỗi do permission, path, biến môi trường và các process âm thầm dừng. Nếu stack trace liên quan đến PATH hoặc file mode khiến bạn đóng terminal, hãy dành một cuối tuần học Linux cơ bản trước. Việc đó sẽ giúp bạn tiết kiệm cả tháng về sau.
Giai đoạn 1: agent là gì và không phải là gì
Bắt đầu bằng một API call và không có loop. Gửi một prompt, in câu trả lời, rồi xem số lượng token trong response. Đến đây, bạn đã hiểu đơn vị chi phí và đơn vị độ trễ.
Sau đó, hãy tìm hiểu cách dùng tool. Đây là ý tưởng mới thực sự duy nhất trong toàn bộ lĩnh vực này. Bạn mô tả một function cho model bằng name, description và schema JSON (JavaScript object notation) cho các input của function đó. Model không chạy bất kỳ thứ gì. Nó trả lời bằng một request có cấu trúc: gọi run_command với các argument này. Code của bạn chạy function, gửi output trở lại dưới dạng một message, rồi yêu cầu model xử lý lại. Model là một planner đọc text và ghi text. Code của bạn mới là phần có thể thực hiện hành động. Phần code ở phía bạn trong quá trình trao đổi này có một tên gọi khi bắt đầu so sánh các thiết kế: đó là bộ khung agent, gồm loop, các tool và permissions được bọc quanh một model vốn không có những thứ này.
Chatbot kết thúc sau một response. Agent lặp lại quá trình trao đổi đó cho đến khi model không còn yêu cầu tool. Sự lặp lại này là khác biệt duy nhất, và cũng là lý do các failure mode khác nhau. Chatbot có thể trả lời sai một lần. Agent có thể 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ó người phát hiện.
Giai đoạn 2: tự viết vòng lặp một lần
Đừng bắt đầu bằng framework. Hãy tự viết khoảng 30 dòng Python để bạn nắm được cấu trúc của chương trình.
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 chương trình bằng python3 agent.py. Một lần chạy thành công sẽ in ra một đoạn văn nêu tên các filesystem và dung lượng trống của chúng, vì model đã yêu cầu df -h, code của bạn đã chạy lệnh đó, rồi lượt xử lý thứ hai đã chuyển bảng kết quả thành một câu. Nếu không có gì được in ra, vòng lặp đã kết thúc trước khi nhận được một khối văn bản. Thêm print(response.stop_reason) vào bên trong vòng lặp rồi theo dõi các giá trị thay đổi.
Bây giờ hãy cố ý làm hỏng chương trình. Xóa dòng tool_use_id rồi đọc lỗi, vì API sẽ từ chối tool result không có id tương ứng; đây là lỗi phổ biến nhất của người mới. Đặt một câu hỏi cần 2 lệnh rồi theo dõi vòng lặp chạy 2 lần. Đặt một câu hỏi không thể thực hiện rồi xem chương trình bỏ cuộc hay chạy vô hạn.
Có một cảnh báo về ví dụ này. Ví dụ truyền thẳng output của model vào shell bằng shell=True. Cách này chỉ chấp nhận được trên một máy thử nghiệm mà bạn có thể cài lại, và không phù hợp trong mọi môi trường khác. Giai đoạn 6 sẽ xử lý vấn đề đó. Các khái niệm trong vòng lặp được trình bày chi tiết hơn trong tự xây dựng AI agent trên VPS.
Giai đoạn 3: các tool mà agent chưa có
Tool run_command của bạn hoạt động, nhưng agent thực tế cần các tool có thể truy cập ra bên ngoài máy chủ: hệ thống ticket, database, repository. Viết wrapper riêng cho từng service và từng agent không thể mở rộng.
Model Context Protocol (MCP) là giải pháp mà ngành đã thống nhất sử dụng. MCP server cung cấp một tập tool qua transport tiêu chuẩn, và mọi agent hỗ trợ MCP đều có thể sử dụng mà không cần glue code riêng. Filesystem server tham chiếu chỉ cần một command:
npx -y @modelcontextprotocol/server-filesystem /home/you/projectsLệnh này cần Node đã được cài đặt, và đối số directory là path duy nhất mà server được phép truy cập. Đây là mô hình bảo mật ở dạng đơn giản nhất: server quyết định ranh giới, không phải model. Trỏ client vào server này, agent của bạn sẽ có khả năng đọc và ghi file mà bạn không cần tự viết. Cách chạy các server này đúng cách, dưới một service account và với phần giải thích về các lựa chọn transport, được trình bày trong chạy MCP server trên VPS cho AI coding agent. Nếu cần một server thứ hai trỏ đến dữ liệu thực thay vì một directory tạm, tự host openGym, ứng dụng theo dõi buổi tập cung cấp một server chỉ đọc. Bạn có thể luyện đặt câu hỏi về lịch sử tập luyện của mình mà không cấp cho agent bất kỳ quyền nào có thể làm hỏng dữ liệu.
Bài học của giai đoạn này là thiết kế tool mới là phần việc thực sự. Mô tả mơ hồ khiến model phải tự đoán. Tool trả về 40.000 ký tự sẽ làm hỏng context window. Tool có thể xóa dữ liệu thì sớm muộn cũng sẽ xóa dữ liệu.
Giai đoạn 4: bộ nhớ, phần lớn chỉ là các file
Người mới thường chọn vector database ở bước này. Ít nhất là chưa nên làm vậy.
Agent không có memory giữa các lần gọi. Mỗi lần bạn phải gửi lại toàn bộ cuộc trò chuyện. Vì vậy, một phiên dài có chi phí cho mỗi lượt cao hơn một phiên ngắn. Do đó, memory gồm 2 bài toán. Bài toán đầu tiên là nội dung nào hiện vừa với context window. Bạn xử lý bằng cách tóm tắt, cắt bớt output cũ của tool và cache phần prefix ổn định của prompt để chỉ phải trả một phần chi phí. Bài toán thứ hai là nội dung nào vẫn còn sau khi restart. Đó là storage.
Với bài toán thứ hai, một file markdown đơn giản mà agent có thể đọc và ghi phù hợp hơn vector database cho gần như mọi project đầu tiên. Cấp cho agent 1 file, quy định format, yêu cầu agent đọc file đó trước khi bắt đầu và cập nhật file khi học được điều gì mới. Bạn nhận được phần lớn lợi ích, đồng thời có thể mở file để xem agent đang tin điều gì. Chỉ dùng embeddings và retrieval khi các ghi chú không còn vừa trong context window, không dùng sớm hơn.
Giai đoạn 5: vòng lặp là sản phẩm
Đến đây, bạn có thể tạo một agent hoạt động khi bạn theo dõi nó. Giai đoạn 5 là làm cho nó hoạt động ngay cả khi bạn không theo dõi.
Bốn câu hỏi quyết định một agent chạy không cần giám sát có an toàn để mặc kệ hay không. Điều gì kích hoạt nó, để nó không chạy vô cớ. Nó hoạt động trong ranh giới nào, để sai sót vẫn ở mức nhỏ. Kết quả được xác minh như thế nào, vì một agent tự chấm bài của mình thì lúc nào cũng đạt. Ngân sách nào sẽ dừng nó, tính theo token hoặc thời gian thực. Thiết kế có chủ đích cả bốn yếu tố này là kỷ luật được mô tả trong kỹ thuật xây dựng vòng lặp và phạm vi của định nghĩa đó.
Bài tập: lấy agent ở giai đoạn 2, giao cho nó một task cần bốn hoặc năm bước, rồi thêm giới hạn iteration cứng. Sau đó bỏ giới hạn và theo dõi một vòng lặp không giới hạn làm tăng hóa đơn token như thế nào. 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 vô tình làm vậy với ngân sách lớn.
Giai đoạn 6: an toàn, secret và chi phí
Giai đoạn này là bắt buộc. Nó chỉ được đặt cuối cùng vì bạn chưa thể cảm nhận rủi ro trước khi xây dựng được một thứ hoạt động.
Chạy agent bằng một user riêng không có quyền đặc biệt. Không chạy bằng root hoặc tài khoản cá nhân của bạn. Như vậy, phạm vi ảnh hưởng chỉ giới hạn trong một directory thay vì toàn bộ máy. Không để credential trong phạm vi agent có thể truy cập. Bất kỳ nội dung nào nằm trong context window cũng có thể bị trích xuất qua một tool call. Cách khắc phục là dùng token có thời hạn ngắn, giới hạn phạm vi, thông qua một helper như mô tả trong giữ secret ngoài phạm vi truy cập của AI agent. Đặt mức trần cứng cho chi phí. Một loop chạy không giám sát sẽ tính phí cho mọi iteration mà không có ai theo dõi. Các giới hạn và cách batching để kiểm soát chi phí được nêu trong kiểm soát chi phí AI agent trên VPS luôn bật.
Nếu agent chạy bên trong một harness thay vì một script do bạn tự viết, một phần của giai đoạn này sẽ được cấu hình thay vì lập trình. các plugin DeepSeek Harness đáng cài đặt bao quát phần lớn các yêu cầu tương tự, gồm giới hạn ngân sách, rule cấp quyền cho tool và quét injection.
Chi phí cần một con số cụ thể. Tính đến July 2026, Claude Opus 5 tính $5 cho mỗi million input token và $25 cho mỗi million output token. Một agent gửi lại cuộc hội thoại ngày càng dài ở mỗi lần gọi có thể đưa vài trăm thousand token qua một task duy nhất. Prompt caching và việc dùng model nhỏ hơn cho các bước thường lệ có thể thay đổi phép tính này nhiều hơn bất kỳ chỉnh sửa prompt nào.
Prompt injection cũng thuộc phạm vi này. Nếu agent đọc một web page, issue tracker hoặc inbox, người viết nội dung đó cũng đang viết instruction cho agent của bạn. Web search thường là tool đầu tiên mở ra điểm này. trỏ agent vào SearXNG instance của bạn trình bày đồng thời cách kết nối và bề mặt injection phát sinh. Cách phòng vệ không phải là viết system prompt thông minh hơn. Đó là boundary. Một agent không thể xóa repository thì cũng không thể bị dụ để xóa repository đó.
Bạn nên theo lộ trình nào?
Hãy chọn một curriculum và học hết thay vì thử qua sáu curriculum. Repository Microsoft ai-agents-for-beginners là tài liệu miễn phí đầy đủ nhất. Đây là khóa học gồm eighteen bài học, đã vượt 70,000 stars tính đến July 2026, và khớp rõ ràng với các giai đoạn ở trên. Các bài tổng hợp những agent repository đang thịnh hành hữu ích để xem hiện có những gì, nhưng ít phù hợp làm syllabus, vì danh sách sắp xếp theo stars được sắp xếp theo độ phổ biến chứ không theo thứ tự giảng dạy.
Khi cần một project thực tế để luyện tập, coding agent là mục tiêu đầu tiên phù hợp nhất: phản hồi đến ngay, các tool dễ hiểu và dễ hoàn tác khi mắc lỗi. Chạy một coding AI agent trên VPS hướng dẫn toàn bộ quy trình từ đầu đến cuối. Nếu muốn nghiên cứu các hệ thống đang hoạt động thay vì tự xây dựng từ đầu, phần so sánh trong các AI agent tự host tốt nhất cho thấy nhiều project triển khai cùng một vòng lặp theo các cách khác nhau.
Mất bao lâu để hoàn thành?
Với người đã biết lập trình, giai đoạn 1 và 2 có thể hoàn thành trong 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 tìm hiểu các công cụ chứ không phải giao thức. Giai đoạn 4 và 5 cần vài tuần sử dụng thực tế, vì bạn chỉ biết agent của mình quên điều gì bằng cách theo dõi lúc nó quên. Giai đoạn 6 gần như không bao giờ kết thúc, vì mỗi capability mới bạn cấp đều khiến bạn phải xem xét lại nó.
Hai tháng dành đều đặn các buổi tối thường đủ để xây dựng một agent hoạt động được, có phạm vi rõ ràng và hữu ích. Những người mất cả năm thường là những người tiếp tục đọc thay vì bắt tay xây dựng.
FAQ
Tôi có cần biết machine learning để xây dựng AI agent không?
Không. Xây dựng agent là gọi model qua API và kết nối các yêu cầu dùng tool của model với những hàm thực tế. Đây là lập trình ứng dụng thông thường. Bạn không cần đụng đến việc training, gradient hay dataset. Những kỹ năng quyết định agent có hoạt động hay không là thiết kế schema cho tool, xử lý lỗi và phân quyền Linux. Lý thuyết machine learning chỉ trở nên cần thiết nếu bạn tiếp tục fine-tune model. Đó là một công việc khác với các yêu cầu đầu vào khác.
Tôi có nên bắt đầu bằng framework như LangChain hoặc CrewAI không?
Trước tiên hãy tự viết một vòng lặp thô, sau đó mới dùng framework. Framework thay 30 dòng trong stage 2 bằng một configuration object. Cách này tiện sau khi bạn đã biết nó thay thế phần nào, nhưng sẽ khó hiểu nếu bạn chưa biết. Khi agent hoạt động sai, bạn phải trực tiếp phân tích danh sách message và kết quả từ tool. Việc 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.
Học AI agent tốn bao nhiêu?
Ít hơn đa số mọi người nghĩ, nếu bạn đặt giới hạn. Một API key của dịch vụ hosted và một VPS nhỏ là đủ cho toàn bộ 6 stage này. Rủi ro thực sự không nằm ở đơn giá theo giờ. Rủi ro là một vòng lặp không giới hạn tiếp tục tính phí cho từng iteration trong khi bạn đang ngủ. Hãy đặt spend limit cứng cho API account ngay từ ngày đầu, thêm giới hạn iteration vào mọi vòng lặp bạn viết và dùng model rẻ hơn cho các bước thường lệ. Chạy model locally sẽ loại bỏ chi phí token, nhưng thay bằng yêu cầu về phần cứng.
AI agent khác chatbot như thế nào?
Chatbot trả lời một lần. Agent lặp lại một chu kỳ: model yêu cầu dùng tool, code của bạn chạy tool đó, kết quả được gửi lại và model quyết định bước tiếp theo. Việc lặp lại này cho phép agent hoàn thành một task gồm nhiều bước. Đây cũng là lý do agent cần các giới hạn mà chatbot không cần. Câu trả lời sai của chatbot là một đoạn văn không đúng. Câu trả lời sai của agent là một đoạn văn không đúng cộng với mọi hành động mà nó đã thực hiện.