Không phải mọi "AI coding tool" đều giống nhau — hiểu rõ agent bạn đang dùng nằm ở đâu trên phổ năng lực (capability spectrum) này quyết định bạn nên tin tưởng nó đến mức nào, và giao việc gì cho nó là hợp lý.
Năm Cấp Độ Của AI Agency
Khi đánh giá một công cụ AI hỗ trợ coding, câu hỏi quan trọng nhất không phải "nó dùng model nào" mà là: nó có bao nhiêu quyền tự chủ (agency) trong việc lên kế hoạch, hành động, và tự sửa sai mà không cần con người can thiệp giữa mỗi bước? Dựa trên tiêu chí này, ta có thể chia các công cụ AI hỗ trợ phát triển phần mềm thành năm cấp độ, từ thấp đến cao:
- Level 1 — Inline Autocomplete: gợi ý từng dòng/đoạn code khi bạn gõ.
- Level 2 — Chat Assistants: bạn hỏi, nó trả lời, bạn tự copy-paste và áp dụng.
- Level 3 — Single-Agent Task Runners: bạn giao một tác vụ, agent tự đọc code, sửa, chạy test trong một vòng lặp, rồi báo cáo.
- Level 4 — Multi-Agent Pipelines: nhiều agent chuyên biệt phối hợp với nhau (planner, coder, reviewer, tester...) để xử lý một luồng công việc phức tạp hơn.
- Level 5 — Fully Autonomous Agents: agent hoạt động liên tục, tự nhận việc từ hàng đợi (issue tracker, ticket), tự triển khai, gần như không cần con người khởi động từng tác vụ.
Phổ này không phải để xếp hạng "cái nào tốt hơn" — mỗi cấp độ phù hợp với một loại công việc khác nhau, và một kỹ sư giỏi trong thời đại agentic biết chọn đúng cấp độ cho đúng bài toán, thay vì cố dùng Level 5 cho mọi việc (rủi ro cao) hay mãi ở Level 1 (lãng phí năng lực sẵn có).
Một điểm quan trọng cần nhấn mạnh: agency càng cao thì blast radius (bán kính ảnh hưởng khi có sai sót) càng lớn. Một gợi ý autocomplete sai chỉ ảnh hưởng một dòng bạn đang gõ; một agent Level 5 hiểu sai yêu cầu có thể tạo ra hàng chục commit sai hướng, mở PR, thậm chí deploy nhầm trước khi ai đó kịp phát hiện.
Mẹo: Khi đánh giá bất kỳ công cụ AI mới nào, câu hỏi đầu tiên nên là "nó nằm ở level mấy trên phổ này?" — không phải "nó dùng model gì". Level quyết định quy trình review bạn cần thiết lập xung quanh nó.
Level 1 — Inline Autocomplete
Đây là hình thức AI hỗ trợ coding sơ khai và phổ biến nhất: công cụ gợi ý phần code tiếp theo ngay trong editor, dựa trên những gì bạn vừa gõ và context xung quanh con trỏ (thường là file hiện tại, đôi khi vài file mở gần đó). GitHub Copilot ở chế độ completion cơ bản, Tabnine, hay Supermaven là ví dụ điển hình.
Đặc điểm cốt lõi: không có vòng lặp. Công cụ đưa ra một gợi ý, bạn Tab để chấp nhận hoặc gõ tiếp để bỏ qua — không có bước "quan sát kết quả rồi tự sửa". Nó không chạy test, không đọc file khác ngoài phạm vi context hạn chế, và hoàn toàn không có khái niệm "hoàn thành tác vụ" — nó chỉ dự đoán token tiếp theo giống hệt cách LLM hoạt động ở mức thô nhất.
Giá trị của Level 1 nằm ở tốc độ và độ ma sát thấp: nó không đòi hỏi bạn viết prompt, không làm gián đoạn flow gõ code. Điểm yếu là nó thiếu ngữ cảnh toàn cục — nó có thể gợi ý một cách gọi hàm không tồn tại, hoặc lặp lại một pattern lỗi thời trong codebase.
Ví dụ thực tế: khi bạn gõ function calculateTax( trong một file mới, autocomplete sẽ dựa vào tên hàm và convention phổ biến để đoán tham số và thân hàm — nhưng nó không biết công ty bạn có quy tắc thuế riêng trừ khi điều đó xuất hiện gần đó trong file.
Mẹo: Đừng tắt autocomplete ngay cả khi bạn dùng agent Level 3+ hàng ngày — nó vẫn hữu ích cho những đoạn code nhỏ, lặp lại, nơi việc viết cả một prompt còn chậm hơn tự gõ.
Level 2 — Chat Assistants
Ở cấp độ này, bạn tương tác với AI qua giao diện hội thoại (chat panel trong IDE, hoặc web như ChatGPT/Claude.ai). Bạn đặt câu hỏi hoặc mô tả vấn đề, AI trả lời bằng văn bản kèm code, và bạn là người copy, paste, chỉnh sửa, và áp dụng vào codebase.
Điểm khác biệt cốt lõi so với Level 1: chat assistant có thể suy luận (reasoning) qua nhiều bước trong một câu trả lời — giải thích kiến trúc, so sánh phương án, viết cả một function hoàn chỉnh. Nhưng nó không có tool use thực sự trên máy bạn — nó không tự đọc file trong repo (trừ khi bạn paste nội dung vào), không tự chạy lệnh, không tự kiểm tra kết quả.
Đây vẫn là công cụ cực kỳ giá trị cho: giải thích một đoạn code lạ, brainstorm kiến trúc, viết pseudo-code, học một khái niệm mới, hoặc review nhanh một đoạn diff bạn paste vào. Nhưng gánh nặng "đảm bảo nó đúng với ngữ cảnh thật của bạn" hoàn toàn nằm ở bạn — AI không thể tự xác minh.
Ví dụ prompt điển hình ở Level 2:
Tôi có đoạn code sau (paste code). Nó đang chạy chậm khi dữ liệu
vượt quá 10,000 dòng. Giải thích vì sao, và đề xuất 2 cách tối ưu
kèm trade-off của mỗi cách.
Mẹo: Dùng chat assistant cho câu hỏi "tại sao" và "có những cách nào" — dùng agent Level 3 trở lên cho câu hỏi "hãy làm việc này giúp tôi". Nhầm lẫn hai loại nhu cầu này là nguyên nhân phổ biến khiến người mới thấy AI "không hữu ích như quảng cáo".
Level 3 — Single-Agent Task Runner
Đây là bước ngoặt thực sự: agent có quyền truy cập tool (đọc/ghi file, chạy shell command, chạy test) và vận hành một autonomous loop như đã học ở bài trước. Claude Code, Cursor ở chế độ Agent/Composer, Windsurf Cascade là các ví dụ tiêu biểu.
Bạn giao một tác vụ bằng ngôn ngữ tự nhiên, agent tự:
- Khám phá codebase liên quan (không cần bạn chỉ đường).
- Lên kế hoạch các bước cần làm.
- Sửa nhiều file nếu cần.
- Chạy test, đọc log lỗi, tự sửa lại nếu fail.
- Báo cáo kết quả cuối cùng — thường kèm diff để bạn review.
Khác biệt căn bản so với Level 2: agent tự xác minh công việc của chính nó trước khi báo cáo hoàn thành, thay vì chỉ đưa ra một câu trả lời và để bạn tự kiểm tra. Đây là lý do Level 3 phù hợp cho phần lớn công việc coding hàng ngày: sửa bug cụ thể, viết feature nhỏ-vừa, viết test, refactor một module.
Rủi ro ở Level 3 nằm ở "single-agent" — một agent duy nhất vừa viết code vừa tự đánh giá code của mình, thiếu góc nhìn độc lập của một reviewer thứ hai. Agent có thể tự tin báo "đã xong" trong khi chỉ pass test nó tự viết ra (test không đủ chặt), chứ chưa chắc đúng với ý định thật của bạn.
Mẹo: Với mọi tác vụ Level 3, luôn yêu cầu agent liệt kê rõ những gì nó đã kiểm tra (test nào chạy, case nào chưa cover) trong báo cáo cuối — đừng chỉ nhận "Done, đã fix xong".
Level 4 — Multi-Agent Pipeline
Ở cấp độ này, nhiều agent chuyên biệt (mỗi agent có vai trò, context, và đôi khi cả model riêng) phối hợp với nhau để xử lý một luồng công việc mà một agent đơn lẻ khó bao quát hết. Mô hình phổ biến: một planner agent phân tích yêu cầu và chia nhỏ thành các subtask, một hoặc nhiều coder agent thực thi từng subtask (có thể chạy song song), một reviewer/critic agent đánh giá độc lập kết quả, và đôi khi một integrator agent hợp nhất các thay đổi.
Giá trị lớn nhất của multi-agent pipeline là tách biệt vai trò tạo ra "second opinion" tự động — reviewer agent không mang cùng thiên kiến (bias) với coder agent vì nó chạy trong context riêng, không "nhớ" quá trình coder đã đi qua những ngã rẽ sai nào trước khi đến kết quả cuối. Điều này bắt chước quy trình con người: người viết code hiếm khi tự review tốt bằng người khác vì đã quá quen với logic của chính mình.
Ví dụ thực tế trong công cụ như Claude Code: bạn có thể chủ động dựng pipeline bằng cách gọi sub-agent cho từng vai trò —
Vai trò 1 (Planner): Phân tích yêu cầu "thêm tính năng export báo cáo
PDF" thành các subtask cụ thể, liệt kê file cần đụng tới.
Vai trò 2 (Coder): Với từng subtask ở trên, implement code tương ứng.
Vai trò 3 (Reviewer): Review lại toàn bộ diff từ Coder, độc lập,
như thể bạn chưa từng thấy plan ban đầu — chỉ nhìn diff và yêu cầu
gốc, chỉ ra chỗ nào sai hoặc thiếu.
Chi phí đánh đổi: multi-agent pipeline tốn nhiều token/thời gian hơn, và độ phức tạp điều phối (orchestration) tăng lên — cần quản lý việc agent nào chờ agent nào, dữ liệu truyền qua lại ra sao. Đây là công cụ dành cho tác vụ đủ phức tạp và đủ rủi ro để việc trả thêm chi phí orchestration là xứng đáng.
Mẹo: Đừng dựng multi-agent pipeline cho task có thể xong trong một lượt Level 3 — chi phí điều phối chỉ đáng bỏ ra khi task đủ lớn để lợi ích "second opinion độc lập" vượt qua chi phí thời gian/token tăng thêm.
Level 5 — Fully Autonomous Agents
Đây là cấp độ cao nhất hiện nay: agent hoạt động gần như liên tục, tự nhận việc từ một nguồn (issue tracker, ticket queue, monitoring alert), tự lên kế hoạch, tự code, tự mở pull request, và trong một số thiết lập, tự merge/deploy nếu đáp ứng đủ điều kiện đã định trước (test pass, coverage đạt ngưỡng, không có cảnh báo bảo mật). GitHub Copilot Workspace ở chế độ issue-to-PR tự động, hoặc các thiết lập agentic CI tự vá lỗi build, là ví dụ đang dần phổ biến.
Điểm phân biệt với Level 4: ở Level 4, con người vẫn là người khởi động pipeline cho từng tác vụ cụ thể. Ở Level 5, agent tự khởi động công việc dựa trên tín hiệu từ hệ thống (một issue mới xuất hiện, một alert từ production) — vai trò con người dịch chuyển hoàn toàn sang việc định nghĩa ranh giới an toàn (an toàn ở mức nào thì được tự merge, việc gì bắt buộc phải có người duyệt) và giám sát định kỳ, thay vì tham gia trực tiếp từng tác vụ.
Đây cũng là cấp độ mang rủi ro cao nhất, vì blast radius của một quyết định sai có thể lan rộng trước khi con người kịp phát hiện — đặc biệt nguy hiểm với các thao tác không thể hoàn tác (xóa dữ liệu, gửi email cho khách hàng, thay đổi cấu hình production). Vì vậy hầu hết tổ chức áp dụng Level 5 hiện nay giới hạn phạm vi rất chặt: chỉ áp dụng cho việc rủi ro thấp, có thể rollback dễ dàng (ví dụ tự động cập nhật dependency, tự động sửa lỗi lint, tự động viết test bổ sung cho code coverage thấp) — chứ chưa áp dụng cho toàn bộ vòng đời phát triển tính năng.
Mẹo: Nếu tổ chức bạn đang cân nhắc Level 5, hãy bắt đầu từ những tác vụ có đặc điểm "dễ verify tự động, dễ rollback" (dependency update, lint fix) — coi đó là bài kiểm tra niềm tin trước khi mở rộng sang việc rủi ro cao hơn.
Thực Hành: Sơ Đồ Hóa Quy Trình Làm Việc Của Bạn Trên Phổ Năng Lực
Bài tập này giúp bạn nhìn lại chính công cụ và thói quen hiện tại của mình, thay vì chỉ hiểu lý thuyết trừu tượng.
Bước 1 — Liệt kê công cụ AI bạn đang dùng. Viết ra tất cả: IDE autocomplete, chat assistant, Claude Code/Cursor agent mode, bất kỳ automation nào bạn đã thiết lập (CI bot tự sửa lỗi format chẳng hạn).
Bước 2 — Gán level cho từng công cụ. Với mỗi công cụ, tự hỏi: nó có tool use không? Nó có tự vòng lặp sửa-kiểm tra không? Nó có tự khởi động công việc không cần bạn gõ prompt không? Dựa vào ba câu hỏi này để xếp vào Level 1-5.
Bước 3 — Đối chiếu với loại công việc gần đây. Chọn 5 tác vụ bạn đã làm trong tuần qua (một bug fix nhỏ, một feature vừa, một refactor lớn, một lần viết tài liệu, một lần research kiến trúc). Với mỗi tác vụ, tự hỏi: level nào là phù hợp nhất? Bạn có đang dùng level thấp hơn cần thiết (lãng phí thời gian) hay cao hơn mức an toàn cho phép (rủi ro không được kiểm soát) không?
Bước 4 — Thử nâng một tác vụ lên một level. Chọn một tác vụ tuần này bạn định làm ở Level 2 (hỏi chat rồi tự paste code) và thử làm lại hoàn toàn ở Level 3 bằng agent thật:
Hãy implement tính năng [mô tả cụ thể], bao gồm viết test, chạy test,
và báo cáo lại phần nào bạn không chắc chắn về ý định ban đầu của tôi.
So sánh chất lượng, thời gian, và mức độ bạn phải can thiệp sửa tay so với cách làm cũ.
Mẹo: Lặp lại bài tập sơ đồ hóa này mỗi vài tháng — phổ năng lực của công cụ bạn dùng thay đổi rất nhanh (một tính năng agent mode có thể được thêm vào công cụ bạn quen dùng chỉ sau một bản cập nhật), và thói quen cũ có thể khiến bạn bỏ lỡ năng lực mới đã sẵn có.
Những điểm chính
- Phổ năng lực AI agent gồm 5 cấp độ: Inline Autocomplete, Chat Assistants, Single-Agent Task Runners, Multi-Agent Pipelines, và Fully Autonomous Agents — phân biệt chủ yếu bởi mức độ tự chủ trong lập kế hoạch, hành động, và tự xác minh.
- Agency càng cao, blast radius khi sai càng lớn — không có level nào "tốt nhất tuyệt đối", chỉ có level phù hợp nhất với từng loại công việc và mức rủi ro chấp nhận được.
- Level 3 (single-agent task runner) là công cụ chủ lực cho phần lớn công việc coding hàng ngày; Level 4 (multi-agent) đáng giá khi task đủ phức tạp để cần góc nhìn review độc lập; Level 5 hiện phù hợp nhất với các tác vụ rủi ro thấp, dễ rollback.
- Kỹ sư giỏi trong thời đại agentic biết chủ động chọn đúng level cho đúng tác vụ, thay vì mặc định dùng level cao nhất có sẵn hoặc mãi bám vào thói quen cũ ở level thấp.