- Chatbot trả lời từng câu. Agent nhận một mục tiêu rồi tự lặp lại: xem tình hình, làm một việc bằng công cụ, kiểm tra kết quả, cho tới khi xong.
- Một agent gồm bốn phần: mô hình ngôn ngữ, công cụ, hướng dẫn và ngữ cảnh (những gì nó đang nhìn thấy).
- Agent mạnh hơn nhưng tốn hơn và dễ sai lan truyền. Việc có thể viết thành các bước cố định thì nên dùng workflow, không cần agent.
Bài này dựa trên tài liệu chính thức của Anthropic, Claude Code, Model Context Protocol và OpenAI, đọc ngày 11/11/2026. Công cụ AI đổi nhanh, nên bài viết tập trung vào khái niệm và cách nghĩ; tên lệnh và tên tệp cụ thể chỉ ghi khi tài liệu hãng ghi rõ.
AI agent là gì?
AI agent (tác nhân AI) là hệ thống mà trong đó một mô hình ngôn ngữ lớn tự điều khiển quá trình làm việc của mình: nó tự chọn bước tiếp theo và tự quyết định dùng công cụ nào. Anthropic, trong bài "Building effective agents" đăng ngày 19/12/2024, chia các hệ thống dùng mô hình ngôn ngữ thành hai nhóm. Workflow là hệ thống mà mô hình và công cụ được điều phối bằng những đường đi viết sẵn trong code. Agent là hệ thống mà mô hình tự định hướng quá trình và cách dùng công cụ, giữ quyền kiểm soát cách hoàn thành nhiệm vụ. Tài liệu Agents SDK của OpenAI nói ngắn hơn: một agent là mô hình ngôn ngữ được trang bị hướng dẫn và công cụ.
Hai cách nói trên cùng chỉ về một điều. Bạn không đưa cho agent một danh sách bước. Bạn đưa một mục tiêu ("làm cho bài test chạy qua"), vài công cụ (đọc tệp, sửa tệp, chạy lệnh) và một vài hướng dẫn. Số bước, thứ tự bước và lúc nào dừng đều do mô hình quyết định trong lúc làm.
Đó cũng là lý do cùng một mô hình có thể là chatbot hoặc agent, tùy cách bạn dùng nó. Hộp chat trả lời một câu hỏi xong là hết lượt. Cũng mô hình ấy, nếu được nối với công cụ và cho phép lặp, sẽ làm việc nhiều bước mà bạn không cần bấm tiếp từng lần.
Agent khác chatbot và workflow ở đâu?
Cách dễ nhất để hiểu là hỏi: ai quyết định bước tiếp theo, và mô hình có chạm vào thế giới bên ngoài không.
| Chatbot | Workflow | Agent | |
|---|---|---|---|
| Ai chọn bước tiếp theo | Bạn, qua từng câu hỏi | Code viết sẵn | Mô hình, trong lúc chạy |
| Dùng công cụ | Thường không | Có, theo đường đi cố định | Có, tự chọn công cụ nào và lúc nào |
| Số bước | Một lượt trả lời | Biết trước | Không biết trước |
| Ví dụ | Hỏi "hàm map làm gì?" | Dịch tài liệu qua ba bước cố định | "Sửa lỗi đăng nhập rồi chạy test" |
Workflow không hề yếu hơn. Anthropic nêu năm mẫu workflow phổ biến, và khuyên tìm giải pháp đơn giản nhất trước, chỉ thêm độ phức tạp khi nó chứng minh được là giúp ích. Phần sau của bài điểm qua năm mẫu này, vì nhiều bài toán thực tế giải bằng workflow gọn hơn là dựng cả một agent.
Một agent gồm những phần nào?
Gạt hết tên gọi thương mại sang một bên, các agent hiện nay đều có bốn phần.
Mô hình ngôn ngữ. Đây là bộ não: đọc tình hình, lập kế hoạch từng bước, quyết định gọi công cụ nào. Tài liệu Claude Code viết rằng khi nó nói "Claude chọn" hay "Claude quyết định" thì đó là mô hình đang suy luận.
Công cụ (tools). Không có công cụ, mô hình chỉ trả lời bằng chữ. Có công cụ, nó mới hành động được: đọc tệp, sửa tệp, chạy lệnh, tìm trên web, gọi một dịch vụ khác. Tài liệu Claude Code chia công cụ có sẵn của nó thành năm nhóm: thao tác tệp, tìm kiếm, chạy lệnh, truy cập web và hiểu code (lỗi kiểu, tới nơi định nghĩa). Mỗi lần dùng công cụ trả về thông tin, và thông tin ấy quay lại làm đầu vào cho quyết định kế tiếp.
Hướng dẫn (instructions). Đó là nội dung bạn viết để agent làm đúng ý: mục tiêu, quy ước của dự án, điều không được làm. Với agent lập trình, phần này thường nằm trong một tệp hướng dẫn dự án (bài CLAUDE.md và AGENTS.md nói riêng về việc viết nó).
Ngữ cảnh (context). Là toàn bộ những gì mô hình đang nhìn thấy: lịch sử hội thoại, nội dung các tệp đã đọc, kết quả các lệnh đã chạy, hướng dẫn. Ngữ cảnh có giới hạn. Theo tài liệu Claude Code, mỗi phiên mới bắt đầu với cửa sổ ngữ cảnh trống, và khi gần đầy thì hệ thống nén cuộc hội thoại thành bản tóm tắt, nên chỉ dẫn nói từ đầu cuộc có thể bị mất. Vì vậy quy tắc cần giữ lâu nên được ghi vào tệp hướng dẫn thay vì chỉ nói trong cuộc trò chuyện.
Phần bao quanh mô hình, tức phần cung cấp công cụ và quản lý ngữ cảnh, được tài liệu Claude Code gọi là "agentic harness". Nói cách khác, sản phẩm agent = mô hình + lớp bao quanh. Cùng một mô hình trong hai lớp bao quanh khác nhau có thể cho hai trải nghiệm rất khác nhau.
Vòng lặp của agent: thu thập, hành động, kiểm tra
Tài liệu Claude Code mô tả công việc của nó qua ba pha: thu thập ngữ cảnh (gather context), hành động (take action) và kiểm tra kết quả (verify results). Ba pha này đan vào nhau, và agent lặp lại cho tới khi xong hoặc bị bạn ngắt. Một câu hỏi về codebase có thể chỉ cần pha đầu. Sửa một lỗi thì quay qua ba pha nhiều lần.
Để thấy vòng lặp này không có gì huyền bí, đoạn Python dưới đây dựng một agent tối giản. Để chạy được mà không cần mạng và không cần khóa API, "mô hình" là một hàm viết sẵn các bước. Khi dùng thật, bạn thay hàm đó bằng lời gọi API tới một mô hình ngôn ngữ; phần còn lại giữ nguyên. Dự án nhỏ nằm trong bộ nhớ: hàm tong bị viết sai thành a - b và có một bài test.
"""Vòng lặp agent tối giản: mô hình chọn công cụ, chương trình chạy công cụ, kết quả quay lại mô hình.
Để chạy không cần mạng và không cần khóa API, "mô hình" ở đây là một hàm viết sẵn các bước.
Khi dùng thật, bạn thay hàm mo_hinh_gia bằng lời gọi API của một mô hình ngôn ngữ.
"""
# Dự án nhỏ nằm trong bộ nhớ: một hàm sai dấu và một bài test.
du_an = {
"tinh.py": "def tong(a, b):\n return a - b\n",
"test_tinh.py": "assert tong(2, 3) == 5\n",
}
def doc_tep(ten):
return du_an.get(ten, f"không có tệp {ten}")
def sua_tep(ten, cu, moi):
if cu not in du_an.get(ten, ""):
return "không tìm thấy đoạn cần sửa"
du_an[ten] = du_an[ten].replace(cu, moi, 1)
return "đã sửa"
def chay_test():
vung = {}
try:
exec(du_an["tinh.py"], vung)
exec(du_an["test_tinh.py"], vung)
return "PASS"
except AssertionError:
return "FAIL: tong(2, 3) != 5"
CONG_CU = {"doc_tep": doc_tep, "sua_tep": sua_tep, "chay_test": chay_test}
def mo_hinh_gia(lich_su):
"""Trả về bước tiếp theo dựa trên kết quả vừa nhận, như một mô hình thật sẽ làm."""
ket_qua_cuoi = lich_su[-1]["ket_qua"] if lich_su else ""
if not lich_su:
return {"cong_cu": "chay_test", "tham_so": {}}
if ket_qua_cuoi.startswith("FAIL"):
return {"cong_cu": "doc_tep", "tham_so": {"ten": "tinh.py"}}
if "return a - b" in ket_qua_cuoi:
return {"cong_cu": "sua_tep", "tham_so": {"ten": "tinh.py", "cu": "a - b", "moi": "a + b"}}
if ket_qua_cuoi == "đã sửa":
return {"cong_cu": "chay_test", "tham_so": {}}
return {"xong": "Test đã qua: sửa a - b thành a + b trong tinh.py"}
def chay_agent(muc_tieu, mo_hinh=mo_hinh_gia, toi_da=10):
print("Mục tiêu:", muc_tieu)
lich_su = []
for buoc in range(1, toi_da + 1):
y = mo_hinh(lich_su)
if "xong" in y:
print("Xong:", y["xong"])
return y["xong"]
ham = CONG_CU.get(y["cong_cu"])
ket_qua = ham(**y["tham_so"]) if ham else f"không có công cụ {y['cong_cu']}"
print(f"Bước {buoc}: {y['cong_cu']} -> {ket_qua.strip().splitlines()[-1].strip()}")
lich_su.append({"buoc": y, "ket_qua": ket_qua})
print("Dừng: quá", toi_da, "bước")
return None
if __name__ == "__main__":
chay_agent("Làm cho test_tinh.py chạy qua")
Chạy đoạn code sẽ in ra:
Mục tiêu: Làm cho test_tinh.py chạy qua
Bước 1: chay_test -> FAIL: tong(2, 3) != 5
Bước 2: doc_tep -> return a - b
Bước 3: sua_tep -> đã sửa
Bước 4: chay_test -> PASS
Xong: Test đã qua: sửa a - b thành a + b trong tinh.py
Có ba điều đáng chú ý trong đoạn code này.
- Vòng lặp nằm ở hàm
chay_agent, không nằm trong mô hình. Mô hình chỉ trả lời một câu hỏi: "bước tiếp theo là gì, dùng công cụ nào?". Chương trình bao quanh chạy công cụ, gom kết quả, rồi hỏi lại. - Có giới hạn số bước (
toi_da). Agent thật cũng cần: nếu không, một agent bị kẹt sẽ lặp vô hạn và đốt tiền. Chạm giới hạn thì dừng và báo cho người dùng. - Công cụ lạ bị chặn bằng thông báo lỗi. Nếu mô hình đòi một công cụ không có, chương trình trả lỗi lại cho mô hình thay vì sập. Thông báo lỗi quay về ngữ cảnh, và mô hình thử cách khác.
Agent lập trình thật làm đúng như vậy, chỉ có nhiều công cụ hơn và mô hình mạnh hơn. Ví dụ tài liệu Claude Code đưa ra: khi bạn nói "sửa các bài test đang lỗi", nó có thể chạy bộ test để xem cái nào hỏng, đọc thông báo lỗi, tìm các tệp liên quan, đọc chúng, sửa, rồi chạy lại test để xác nhận. Đó cũng chính là chuỗi bước trong ví dụ phía trên.
Năm mẫu workflow nên biết trước khi dựng agent
Trước khi nghĩ tới agent, hãy xem bài toán của bạn có khớp với một trong các mẫu workflow Anthropic liệt kê không. Các mẫu này có thể ghép với nhau, và mỗi mẫu chỉ là cách tổ chức các lời gọi mô hình.
| Mẫu | Ý tưởng | Hợp với |
|---|---|---|
| Nối chuỗi lời nhắc (prompt chaining) | Chia việc thành các bước tuần tự, kết quả bước trước là đầu vào bước sau, có thể có bước kiểm tra giữa chừng | Việc chia được thành các bước rõ ràng, ví dụ viết dàn ý rồi viết bài từ dàn ý |
| Định tuyến (routing) | Phân loại đầu vào rồi chuyển tới lời nhắc hoặc xử lý chuyên biệt | Đầu vào thuộc nhiều loại khác nhau, ví dụ phân loại câu hỏi hỗ trợ |
| Song song hóa (parallelization) | Chạy nhiều việc nhỏ cùng lúc, hoặc chạy cùng một việc nhiều lần rồi tổng hợp | Việc chia được thành phần độc lập, hoặc cần nhiều góc nhìn |
| Điều phối viên và thợ (orchestrator-workers) | Một mô hình trung tâm tự chia việc, giao cho các mô hình khác rồi tổng hợp | Việc không biết trước cần chia thế nào, ví dụ sửa nhiều tệp |
| Người đánh giá và người tối ưu (evaluator-optimizer) | Một mô hình tạo kết quả, một mô hình khác nhận xét, lặp lại | Có tiêu chí đánh giá rõ và phản hồi giúp cải thiện được |
Hãy chú ý mẫu thứ tư: nó đã gần với agent, vì mô hình trung tâm tự quyết việc chia nhỏ. Ranh giới giữa workflow và agent là một dải liên tục chứ không phải một vạch kẻ cứng. Điều cần nhớ là càng nhường nhiều quyền quyết định cho mô hình thì hệ thống càng linh hoạt, nhưng càng khó dự đoán và khó kiểm tra.
Khi nào nên dùng agent, khi nào không?
Theo Anthropic, agent hợp với các bài toán mở, trong đó không thể biết trước hoặc viết cứng số bước, và bạn tin được vào khả năng quyết định của mô hình. Cái giá phải trả: agent tốn hơn (nhiều lượt gọi mô hình), và sai sót ở bước đầu có thể kéo theo sai ở các bước sau. Vì vậy Anthropic khuyên thử nghiệm kỹ trong môi trường cô lập (sandbox) và có hàng rào bảo vệ.
Có thể dùng bốn câu hỏi để tự quyết định:
- Các bước có biết trước không? Nếu có, viết thành workflow hoặc một đoạn script. Ví dụ đổi tên hàng trăm tệp theo quy tắc cố định thì không cần agent.
- Kết quả có kiểm tra được không? Agent hoạt động tốt nhất khi có tín hiệu rõ ràng về đúng và sai: bài test qua hay không, chương trình biên dịch được hay không. Việc không có cách kiểm thì agent dễ tự tin nhưng sai.
- Sai thì hậu quả thế nào? Sửa tệp trong một nhánh git thì làm lại được. Xóa dữ liệu thật hay gửi email cho khách hàng thì không. Việc không đảo ngược được cần người xác nhận trước khi chạy.
- Giá của nhiều bước có chấp nhận được không? Mỗi bước là một lượt gọi mô hình cùng toàn bộ ngữ cảnh. Bài chi phí khi dùng agent giải thích cách theo dõi và tiết kiệm.
Một nguyên tắc hay gặp khi dựng agent, cũng từ Anthropic: giữ thiết kế đơn giản, làm cho các bước lập kế hoạch của agent hiện ra rõ ràng, và đầu tư vào phần mô tả công cụ cho thật kỹ. Tài liệu này khuyên viết mô tả công cụ như viết tài liệu cho một lập trình viên mới vào nghề: tên tham số rõ ràng, có ví dụ, rồi thử với nhiều đầu vào để xem agent dùng sai chỗ nào.
Các mảnh ghép quanh một agent lập trình
Khi dùng một agent lập trình như Claude Code, bạn sẽ gặp năm khái niệm hay đi cùng nhau. Mỗi khái niệm có một bài riêng trong loạt này; dưới đây là bản đồ ngắn để biết cái nào giải quyết chuyện gì.
- Hướng dẫn dự án (CLAUDE.md, AGENTS.md). Tệp văn bản chứa quy ước và bối cảnh mà agent cần biết ở mọi phiên. Tài liệu Claude Code cho biết nếu kho mã của bạn có AGENTS.md dành cho các agent khác, Claude có thể đọc nó thay cho CLAUDE.md. Xem viết hướng dẫn dự án cho AI.
- Skill. Một thư mục có tệp
SKILL.mdchứa chỉ dẫn cho một loại việc. Điểm khác với tệp hướng dẫn dự án: tên và mô tả của skill luôn có trong ngữ cảnh, nhưng phần thân chỉ được nạp khi dùng tới, nên tài liệu dài tốn rất ít cho tới lúc cần. Skill của Claude Code theo chuẩn mở Agent Skills. Xem Agent Skills là gì và tự viết skill đầu tiên. - MCP (Model Context Protocol). Chuẩn mở để nối ứng dụng AI với hệ thống bên ngoài như tệp, cơ sở dữ liệu, công cụ tìm kiếm. Trang giới thiệu của MCP ví nó như cổng USB-C cho ứng dụng AI: một cách nối chung thay vì mỗi công cụ một kiểu. Xem MCP là gì và kết nối AI qua MCP server.
- Subagent. Một trợ lý AI chuyên biệt chạy trong cửa sổ ngữ cảnh riêng với chỉ dẫn và quyền riêng. Lợi ích chính theo tài liệu: kết quả tìm kiếm, nhật ký hay nội dung tệp dài ở lại trong ngữ cảnh của subagent, và chỉ bản tóm tắt quay về cuộc trò chuyện chính. Xem subagent là gì.
- Hook. Lệnh shell do bạn định nghĩa, chạy ở những thời điểm cố định trong vòng đời của agent, ví dụ sau mỗi lần sửa tệp. Theo tài liệu, hook cho bạn điều khiển có tính xác định: việc nào đó luôn xảy ra, không phụ thuộc mô hình có "nhớ" làm hay không. Xem hooks cho AI.
Một cách nhớ: tệp hướng dẫn và skill là chữ để mô hình đọc, MCP là công cụ để mô hình dùng, subagent là người để mô hình giao việc, còn hook là luật chạy tự động, không phụ thuộc vào mô hình.
Rủi ro khi giao việc cho agent và cách giữ an toàn
Agent có khả năng hành động, nên rủi ro khác hẳn chatbot. Có ba nhóm cần lưu ý.
Làm sai rồi tiếp tục. Một bước sai có thể kéo theo các bước sau dựa trên nó. Cách giảm: bắt agent kiểm tra sau mỗi bước quan trọng (chạy test, biên dịch), và đọc kỹ thay đổi trước khi chấp nhận. Bài kiểm chứng việc AI làm nói chi tiết.
Làm quá quyền. Agent chạy lệnh trên máy bạn thì có thể xóa tệp, cài gói, gọi mạng. Các công cụ tốt cho bạn chọn mức quyền. Theo tài liệu Claude Code, có chế độ hỏi trước khi sửa tệp và chạy lệnh, và có chế độ "lập kế hoạch" để agent chỉ khảo sát và đề xuất mà chưa sửa mã nguồn. Hãy bắt đầu với mức chặt rồi nới dần khi bạn đã hiểu nó làm gì. Xem giới hạn quyền khi cho AI tự chạy lệnh.
Hành động không quay lại được. Công cụ chạy trên máy bạn có thể có chức năng quay về trạng thái trước (Claude Code chụp lại nội dung tệp trước khi sửa), nhưng tài liệu nói rõ chức năng này chỉ áp dụng cho thay đổi tệp. Các hành động ảnh hưởng hệ thống bên ngoài như cơ sở dữ liệu, API hay triển khai thì không quay lại được; với chúng bạn phải dựa vào chế độ quyền và quy tắc chặn.
Ngoài ra, hãy coi chi phí là một dạng rủi ro. Theo tài liệu Claude Code, yêu cầu của subagent tính chung vào cùng giới hạn sử dụng với cuộc trò chuyện chính. Nhiều agent chạy song song nghĩa là hạn mức cạn nhanh hơn bạn nghĩ.
Bắt đầu trong một buổi chiều
Bạn không cần dựng gì phức tạp để hiểu agent. Có thể đi theo năm bước sau.
- Chọn một việc nhỏ có kiểm tra được. Ví dụ một dự án nhỏ có vài bài test, trong đó một bài đang lỗi. Tránh việc mơ hồ như "cải thiện cả dự án".
- Chạy thử đoạn code ở trên và thay hàm mô hình giả bằng một lời gọi API thật, hoặc dùng một công cụ agent có sẵn. Xem từng bước agent làm và đọc nhật ký các lệnh nó chạy.
- Đặt giới hạn. Số bước tối đa, thư mục được phép sửa, những lệnh bị cấm. Thử với một nhánh git riêng.
- Viết hướng dẫn dự án ngắn: cách chạy test, quy ước đặt tên, điều không được đụng tới.
- Đọc lại thay đổi như đọc bài nộp của một bạn thực tập: nó chạy được, nhưng có đúng ý bạn không, có sửa thừa gì không.
Sau buổi đầu, bạn sẽ thấy rõ agent làm tốt ở đâu và hay sai ở đâu, và từ đó mới quyết định có cần thêm skill, MCP hay subagent hay không. Thêm công cụ khi chưa có nhu cầu chỉ làm ngữ cảnh đầy nhanh hơn.
- Giao một việc quá rộng ("làm cả trang web") rồi bỏ mặc: agent sẽ đi lạc và bạn khó đọc lại thay đổi.
- Không có tín hiệu kiểm tra (không test, không biên dịch): agent vẫn báo "xong" dù kết quả sai.
- Cho quyền rộng ngay từ đầu, kể cả quyền xóa hay gửi dữ liệu ra ngoài, khi chưa hiểu agent hay làm gì.
- Dồn mọi quy tắc vào lời nhắn đầu cuộc trò chuyện: khi ngữ cảnh bị nén, chỉ dẫn đó có thể mất. Quy tắc cần giữ lâu nên ghi vào tệp hướng dẫn.
- Dùng agent cho việc mà một script ba dòng làm được: tốn hơn, chậm hơn, khó đoán hơn.
Thứ tự đọc cho cả loạt bài về agent, skill và MCP
Nếu bạn muốn đi một mạch từ khái niệm tới thực hành, các bài trong loạt này nên đọc theo nhóm sau.
Hiểu từng mảnh ghép: Agent Skills là gì · cài skill cho Claude Code từ GitHub · tự viết skill đầu tiên · 10 skill hữu ích · MCP là gì · kết nối AI qua MCP server · subagent · hooks · hướng dẫn dự án cho AI
Làm việc với agent hằng ngày: quy trình làm với agent · kiểm chứng việc AI làm · chi phí khi dùng agent · giới hạn quyền · đọc kho mã lớn với AI
Chọn và tự dựng: so sánh các công cụ agent · tự xây agent nhỏ bằng Python · tự động hóa việc văn phòng với agent
Các bài tới sau sẽ lần lượt được đăng lên; bài nào chưa lên thì tên bài hiện ở dạng chữ thường và sẽ thành đường dẫn khi bài được đăng.
Câu hỏi thường gặp
AI agent và chatbot khác nhau thế nào?
Chatbot trả lời từng câu và bạn quyết định bước tiếp theo. Agent nhận một mục tiêu, tự chọn công cụ và tự lặp qua nhiều bước cho tới khi xong hoặc chạm giới hạn. Cùng một mô hình ngôn ngữ có thể làm chatbot hoặc agent, tùy bạn có nối nó với công cụ và cho phép lặp hay không.
Agentic workflow và agent có phải một thứ không?
Không hoàn toàn. Theo cách phân loại của Anthropic, workflow đi theo đường viết sẵn trong code, còn agent tự quyết định đường đi. "Agentic" là chữ chung bao cả hai. Nhiều bài toán thực tế giải bằng workflow gọn và dễ đoán hơn.
Dùng agent có tốn nhiều hơn chat thường không?
Thường là có, vì mỗi bước là một lượt gọi mô hình kèm toàn bộ ngữ cảnh, và một việc có thể cần nhiều bước. Đặt giới hạn số bước, chia việc nhỏ và theo dõi mức dùng là các cách kiểm soát.
Cần biết lập trình để dùng agent không?
Dùng các công cụ có sẵn thì không bắt buộc, nhưng biết đọc code và chạy test giúp bạn kiểm được việc agent làm. Muốn tự dựng agent như đoạn code trong bài thì cần Python cơ bản.
Agent có thể làm hỏng dự án của tôi không?
Có thể, nếu bạn cho quyền rộng mà không kiểm tra. Hãy làm trên một nhánh git riêng, bắt đầu bằng chế độ phải xác nhận, đọc lại thay đổi và không giao việc không đảo ngược được khi chưa hiểu rõ nó sẽ làm gì.
Học tiếp
- Muốn biết một skill là gì và vì sao nó giúp AI làm đúng kiểu của bạn, đọc Agent Skills là gì.
- Muốn nối AI với tệp, cơ sở dữ liệu hay API, đọc MCP là gì.
- Muốn đặt câu hỏi rộng hơn về nghề nghiệp, đọc AI có thay thế lập trình viên không.
Nếu bạn muốn học nền tảng AI một cách có hệ thống cùng giảng viên, tham khảo khóa học AI của Big-O Coding.
Khóa AI – Introduction to Machine Learning: nền tảng Máy học từ thuật toán cơ bản đến Neural Networks và LLM, học bằng Python. Học thử buổi 1 miễn phí.


