Bản đồ công trìnhTờ này lắp: Coding agent, Repo & CI
Bài nàyĐã họcChưa tớiĐã thay thế
Bạn sẽ học được gì
Tiêu chí nghiệm thu
Vì sao cần một tấm bản đồ
Mỗi tháng lại có một công cụ AI coding mới được giới thiệu là “thay đổi cuộc chơi”. Nếu chạy theo từng cái tên, bạn sẽ mất nhiều thời gian thử hơn là làm. Một tấm bản đồ giúp bạn nhìn công cụ mới và trả lời ngay: nó thuộc nhóm nào, giải quyết vấn đề gì, có hợp với giai đoạn mình đang ở không.
Hãy nghĩ tới việc chọn phương tiện đi lại. Xe công nghệ gọi qua app (app builder) đưa bạn đến nơi nhanh nhất mà không cần biết lái. Xe tự lái có vô lăng (IDE AI) cho bạn quan sát và giành lại tay lái bất kỳ lúc nào. Đội xe tải có điều phối viên (agent dòng lệnh và đám mây) chở được hàng lớn, chạy nhiều chuyến song song, nhưng cần người biết lập kế hoạch tuyến đường. Mỗi loại hợp với một việc.
Nhóm 1: App builder (nền tảng tạo app từ prompt)
Cách làm việc
Bạn mở trình duyệt, gõ mô tả (“app quản lý đơn bánh kem có đăng nhập, danh sách đơn, form tạo đơn”), và vài phút sau có một ứng dụng chạy được, kèm đường dẫn để chia sẻ. Bạn tiếp tục trò chuyện để chỉnh sửa. Nhiều nền tảng tích hợp sẵn database, đăng nhập, hosting.
Ví dụ tại thời điểm viết (2026): Lovable, Bolt, v0, Replit (với tính năng agent của nó). Một số nền tảng cho phép đồng bộ code ra GitHub; một số tích hợp với Supabase cho phần dữ liệu.
Mạnh ở đâu
- Nhanh nhất từ ý tưởng tới thứ bấm được. Rất hợp để thử ý tưởng, cho người dùng xem và góp ý trước khi đầu tư.
- Không cần cài đặt gì. Người không biết lập trình dùng được ngay.
- Giao diện ban đầu thường đẹp, vì các nền tảng này được tối ưu cho ấn tượng đầu tiên.
Yếu ở đâu
- Kiểm soát hạn chế: khó áp quy trình kỹ thuật (test, review, nhánh, CI). Khi logic nghiệp vụ phức tạp dần (tiền cọc, hủy đơn, phân quyền theo chi nhánh), việc sửa qua trò chuyện trở nên chập chờn.
- Rủi ro bảo mật dễ bị bỏ qua: ứng dụng “chạy được” nhưng có thể thiếu phân quyền phía server, chính sách bảo vệ dữ liệu ở database chưa bật, khóa bí mật nằm ở phía trình duyệt.
- Phụ thuộc nền tảng: hosting, database, cách tổ chức code thường gắn với nền tảng. Chuyển đi có thể tốn công.
- Vòng sửa tốn kém: mỗi lần “sửa chỗ này” lại tiêu tín dụng (credit), và vòng sửa đi sửa lại có thể kéo dài.
Nhóm 2: IDE AI (trình soạn thảo tích hợp AI)
Cách làm việc
IDE (Integrated Development Environment) là “bàn làm việc” của lập trình viên: nơi mở thư mục dự án, xem cây file, sửa code, chạy lệnh. IDE AI tích hợp trợ lý vào bàn làm việc đó, thường gồm ba lớp:
- Gợi ý khi gõ (autocomplete): đoán dòng code tiếp theo.
- Trò chuyện về code: hỏi đáp về file đang mở hoặc cả dự án.
- Chế độ agent: giao việc, AI tự sửa nhiều file, chạy lệnh, bạn xem từng thay đổi dưới dạng diff (phần thêm màu xanh, phần xóa màu đỏ) và chấp nhận hoặc từ chối.
Ví dụ tại thời điểm viết (2026): Cursor, Windsurf, VS Code kèm GitHub Copilot, trợ lý AI trong các IDE của JetBrains, Zed, Kiro. Nhiều agent dòng lệnh cũng có tiện ích mở rộng chạy bên trong các IDE này.
Mạnh ở đâu
- Trực quan: thấy cây thư mục, thấy diff, dễ hiểu agent đã đổi gì. Rất hợp với người đang học đọc code.
- Kiểm soát chi tiết: có thể tự sửa một dòng, rồi nhờ AI làm tiếp.
- Hệ sinh thái tiện ích: trình gỡ lỗi, Git trực quan, xem trước Markdown, Mermaid.
Yếu ở đâu
- Phải cài đặt và làm quen với trình soạn thảo; ban đầu hơi choáng với người chưa từng lập trình.
- Gắn với một ứng dụng giao diện: khó chạy tự động trong CI hay chạy nhiều phiên song song so với công cụ dòng lệnh (dù khoảng cách đang thu hẹp).
- Dễ sa vào “sửa tay vặt” thay vì giao việc rõ ràng cho agent.
Nhóm 3: Agent dòng lệnh và agent đám mây
Cách làm việc
Agent dòng lệnh (CLI agent) chạy trong cửa sổ terminal, ngay trong thư mục dự án. Bạn trò chuyện bằng chữ, agent đọc file, sửa code, chạy lệnh theo đúng vòng lặp đã học ở bài Từ chatbot đến coding agent02-02. Bạn có thể mở song song một IDE bất kỳ để xem code.
Agent đám mây (cloud agent) chạy trên máy chủ của nhà cung cấp, trong môi trường cô lập. Bạn giao việc từ trình duyệt, từ issue trên GitHub hoặc từ ứng dụng chat; agent tự làm và trả về một pull request để bạn review. Bạn không cần ngồi canh.
Ví dụ tại thời điểm viết (2026): Claude Code, OpenAI Codex (có cả bản dòng lệnh lẫn bản đám mây), Gemini CLI, GitHub Copilot coding agent (nhận việc từ issue, trả về pull request), Jules, Aider (mã nguồn mở). Nhiều công cụ trong nhóm này có cả bản dòng lệnh, tiện ích IDE và giao diện web.
Mạnh ở đâu
- Không phụ thuộc trình soạn thảo: dùng với bất kỳ IDE nào, hoặc không cần IDE.
- Tự động hóa được: chạy trong script, trong CI, theo lịch; xem bài Tự động hóa vận hành bằng agent11-07.
- Song song hóa: mở nhiều phiên cho nhiều việc độc lập; agent đám mây làm việc trong lúc bạn ngủ.
- Hợp với quy trình kỹ thuật bài bản: spec, kế hoạch, test, commit, pull request.
Yếu ở đâu
- Terminal gây e ngại cho người mới (bài Terminal và cấu trúc dự án01-06 giúp vượt qua).
- Ít trực quan hơn khi xem thay đổi, trừ khi dùng kèm IDE hoặc giao diện review trên GitHub.
- Đòi hỏi kỷ luật: sức mạnh lớn, quyền lớn; thiếu quy trình thì cũng “vibe” nhanh không kém app builder.
So sánh ba nhóm
| Tiêu chí | App builder | IDE AI | Agent dòng lệnh/đám mây |
|---|---|---|---|
| Thời gian tới bản demo đầu tiên | ✅ Nhanh nhất | Trung bình | Trung bình |
| Yêu cầu kỹ năng ban đầu | ✅ Thấp nhất | Trung bình | Trung bình đến cao |
| Kiểm soát code và kiến trúc | ❌ Hạn chế | ✅ Cao | ✅ Cao |
| Áp quy trình test, review, CI | ❌ Khó | ✅ Được | ✅ Tốt nhất |
| Chạy tự động, song song | ❌ Hầu như không | Hạn chế | ✅ Mạnh |
| Phụ thuộc nền tảng | ❌ Cao | Thấp | Thấp |
| Phù hợp sản phẩm vận hành lâu dài | ❌ Thường không | ✅ Có | ✅ Có |
Ma trận chọn công cụ theo giai đoạn dự án
Giai đoạn của dự án quyết định bạn cần tốc độ hay cần kiểm soát. Bảng dưới gắn với các giai đoạn của Bánh Mộc trong chuỗi bài:
| Giai đoạn | Mục tiêu chính | Nhóm nên dùng | Dùng vào việc gì | Lưu ý |
|---|---|---|---|---|
| 0. Khám phá, thử ý tưởng | Cho người dùng thấy và góp ý nhanh | App builder; chatbot để viết tài liệu | Prototype bấm được, phác giao diện | Không nhập dữ liệu thật; xác định trước là “vứt đi được” |
| 1. Xây MVP | Đúng nghiệp vụ, an toàn, nền móng tốt | IDE AI và/hoặc agent dòng lệnh | Spec, kế hoạch, code từng lát, test | Thiết lập AGENTS.md, test, Git ngay từ đầu |
| 2. Ra mắt và vận hành | Ổn định, sửa lỗi nhanh, ít rủi ro | Agent dòng lệnh, agent đám mây cho việc nhỏ | Sửa bug từ issue, review PR, cập nhật thư viện | Quyền hạn chặt; agent không chạm production |
| 3. Thêm tính năng AI | Tích hợp mô hình vào sản phẩm | Agent dòng lệnh + IDE | Viết prompt sản phẩm, evals, tích hợp API | Thử nhiều mô hình, đo chất lượng |
| 4. Mở rộng, có đội ngũ | Nhiều người, nhiều agent cùng làm | Kết hợp: mỗi người chọn IDE quen tay, chung một bộ quy ước | Song song hóa, review tự động trong CI | Quy ước chung trong repo quan trọng hơn công cụ chung |
Và theo người sử dụng:
| Người dùng | Gợi ý khởi đầu | Lý do |
|---|---|---|
| Chủ doanh nghiệp muốn thử ý tưởng trong một buổi chiều | App builder | Thấy kết quả ngay, không cài đặt |
| Người mới học nghiêm túc để làm sản phẩm thật | IDE AI có chế độ agent, sau đó thêm agent dòng lệnh | Trực quan để học đọc code, dần chuyển sang giao việc |
| Người đã quen terminal, muốn tự động hóa | Agent dòng lệnh | Linh hoạt, script được, song song được |
| Đội nhỏ có backlog nhiều việc vặt | Agent đám mây gắn với issue | Giao việc nhỏ, nhận pull request để review |
- Bạn cần gì lúc này?
- Chỉ cần cho người khác xem ý tưởng?
- Bạn muốn ngồi cùng AI xem từng thay đổi?
- Việc cần bạn theo dõi sát?
- Chung một nền: Git, AGENTS.md, spec, test
Xem sơ đồ gốc (Hình 1)
Vuốt ngang để xem hết sơ đồ
Đọc sơ đồ dạng chữ
- Bạn cần gì lúc này? → Chỉ cần cho người khác xem ý tưởng?
- Chỉ cần cho người khác xem ý tưởng? → App builder: làm prototype, không dùng dữ liệu thật (Có)
- Chỉ cần cho người khác xem ý tưởng? → Bạn muốn ngồi cùng AI xem từng thay đổi? (Không, cần sản phẩm dùng lâu dài)
- Bạn muốn ngồi cùng AI xem từng thay đổi? → IDE AI với chế độ agent (Có, đang học đọc code)
- Bạn muốn ngồi cùng AI xem từng thay đổi? → Việc cần bạn theo dõi sát? (Muốn giao việc và nghiệm thu)
- Việc cần bạn theo dõi sát? → Agent dòng lệnh trên máy bạn (Có)
- Việc cần bạn theo dõi sát? → Agent đám mây trả về pull request (Không, việc nhỏ và rõ)
- IDE AI với chế độ agent → Chung một nền: Git, AGENTS.md, spec, test
- Agent dòng lệnh trên máy bạn → Chung một nền: Git, AGENTS.md, spec, test
- Agent đám mây trả về pull request → Chung một nền: Git, AGENTS.md, spec, test
Lưu ý nút cuối của sơ đồ: dù chọn nhánh nào ở giai đoạn xây sản phẩm, mọi con đường đều quy về một nền chung. Đó là chìa khóa để không bị khóa chặt vào công cụ.
Bộ tiêu chí đánh giá một công cụ mới
Khi nghe về một công cụ mới, thay vì hỏi “nó có hot không”, hãy chấm nó theo các câu hỏi sau:
- Code có thuộc về mình không? Có đồng bộ ra repo Git của mình không, có chạy được ngoài nền tảng không?
- Agent có tự kiểm chứng được không? Có chạy được test, build, trình duyệt không?
- Có đọc file hướng dẫn dạng chuẩn mở không? Ví dụ AGENTS.md, xem bài AGENTS.md, rules và skills02-06.
- Kiểm soát quyền hạn ra sao? Có chế độ chỉ đọc, phê duyệt, sandbox không?
- Dữ liệu và code của mình được xử lý thế nào? Có dùng để huấn luyện mô hình không, có tùy chọn tắt không, máy chủ đặt ở đâu? Đọc điều khoản chính thức.
- Mô hình tính tiền thế nào? Thuê bao, tín dụng hay theo token; chuyện gì xảy ra khi hết hạn mức? (bài Giới hạn, rủi ro và chi phí02-08)
- Có kết nối được với công cụ khác không? Hỗ trợ MCP, chạy trong CI, tích hợp GitHub.
- Đội ngũ của mình có dùng chung được không? Cài đặt, chia sẻ cấu hình, quản lý tài khoản.
Tránh khóa chặt vào một nhà cung cấp
Rủi ro nằm ở đâu
Khóa chặt nhà cung cấp (vendor lock-in) là khi việc rời một công cụ tốn kém tới mức bạn buộc phải ở lại, dù giá tăng, chất lượng giảm hay điều khoản thay đổi. Với AI coding, rủi ro này lớn hơn bình thường vì thị trường biến động: công cụ đang dẫn đầu năm nay có thể tụt hạng năm sau, gói cước có thể đổi, dịch vụ có thể ngừng ở một số khu vực.
Nguyên tắc giữ tính di động
- Code luôn nằm trong repo Git của bạn, đẩy lên GitHub tài khoản của doanh nghiệp. Công cụ chỉ là “người làm thuê” vào repo đó.
- Tri thức dự án viết bằng Markdown trong repo: PRD, spec, ADR, AGENTS.md. Đừng để kiến thức quan trọng chỉ nằm trong lịch sử chat của một công cụ.
- Ưu tiên chuẩn mở: AGENTS.md cho hướng dẫn, MCP cho kết nối, Git cho mã nguồn. Nếu công cụ chỉ hỗ trợ định dạng riêng, giữ một file chuẩn làm gốc và trỏ tới nó.
- Kiểm chứng bằng công cụ độc lập: test chạy bằng Vitest, Playwright, CI trên GitHub Actions. Đổi agent không làm mất lưới an toàn.
- Stack phổ biến: TypeScript, Next.js, PostgreSQL được mọi mô hình và mọi công cụ hiểu tốt.
- Định kỳ thử công cụ thứ hai trên một việc nhỏ của dự án thật, để luôn có phương án dự phòng đã kiểm nghiệm.
Áp dụng vào dự án Bánh Mộc
Nhật ký công trình · Bánh Mộc
BM-261013-017
13.10.2026
- Chị LanChủ chuỗi
- Anh TuấnBếp trung tâm
- HàBán hàng online
- KhoaFreelancer

Hành trình chọn công cụ của chị Lan đi qua cả ba nhóm, mỗi nhóm đúng một vai:
Giai đoạn khám phá. Sau khi phỏng vấn Hà và anh Tuấn, chị dùng một app builder dựng nhanh màn hình “tạo đơn bánh kem” và “màn hình bếp” trong một buổi tối. Sáng hôm sau, chị đưa điện thoại cho anh Tuấn bấm thử. Anh góp ý ngay: “Bếp cần thấy chữ viết trên bánh to và rõ, sắp theo giờ nhận, chứ không phải theo giờ đặt.” Góp ý này đáng giá hơn cả trăm dòng code. Chị ghi lại vào tài liệu yêu cầu, và lần này chị chủ động không nhập dữ liệu khách thật vào bản demo. Đó mới là giả định ban đầu: về sau, khi đứng xem bếp làm việc thật, chị phát hiện anh Tuấn sắp bánh theo chuyến xe giao về từng chi nhánh chứ không chỉ theo giờ nhận (xem bài Nghiên cứu người dùng03-02).
Giai đoạn MVP. Chị tạo repo banhmoc-oms trên GitHub của công ty. Chị dùng VS Code để xem code và một agent dòng lệnh để giao việc. Lúc đầu chị hay nhìn diff trong IDE cho dễ hiểu; dần dần chị quen đọc kết quả ngay trong terminal. Mọi quy ước nằm trong AGENTS.md ở gốc repo.
Giai đoạn vận hành. Khi Mộc OMS đã chạy, Hà báo lỗi nhỏ qua issue trên GitHub (ví dụ “lọc đơn theo chi nhánh Gò Vấp bị trống”). Những việc nhỏ, rõ ràng như vậy chị giao cho agent đám mây, nhận về pull request, đọc lại, chạy CI rồi mới merge.
Giai đoạn mở rộng. Khoa, bạn freelancer được thuê part-time, quen dùng Cursor. Chị Lan không bắt Khoa đổi công cụ. Vì quy ước nằm trong AGENTS.md, spec nằm trong docs/specs/, test chạy trong CI, Khoa dùng công cụ của mình mà vẫn làm đúng chuẩn chung. Chị rút ra: “Chuẩn chung nằm trong repo, công cụ là chuyện của mỗi người.“
Prompt mẫu
Nhờ AI đánh giá một công cụ mới theo bộ tiêu chí (sau đó tự kiểm tra lại trên trang chính thức):
Điền ô trống rồi sao chép
Mình đang cân nhắc dùng công cụ [tên công cụ] cho dự án Next.js + Supabase quản lý đơn hàng.
Hãy đánh giá theo 8 tiêu chí: quyền sở hữu code, khả năng tự kiểm chứng (test/build/trình duyệt),
hỗ trợ AGENTS.md, kiểm soát quyền hạn, chính sách dữ liệu, mô hình tính tiền, hỗ trợ MCP/CI,
dùng chung cho đội.
Với mỗi tiêu chí, ghi rõ mức độ chắc chắn và chỉ ra trang tài liệu chính thức mình cần đọc để
xác minh. Kiến thức của bạn có thể đã cũ, hãy nói rõ điều đó.
Chuyển prototype từ app builder sang repo bài bản:
Điền ô trống rồi sao chép
Đây là code xuất từ bản prototype (đã đồng bộ vào thư mục prototype/).
Đừng sửa gì. Hãy đọc và lập danh sách:
1. Các màn hình và luồng người dùng đang có.
2. Các bảng dữ liệu và cột đang dùng.
3. Các vấn đề bảo mật nghi ngờ (khóa bí mật ở phía trình duyệt, thiếu kiểm tra quyền, thiếu RLS).
Kết quả ghi vào docs/prototype-review.md để mình dùng làm đầu vào viết spec.
Sai lầm thường gặp
-
Sự cố 01
Đưa prototype từ app builder thẳng vào vận hành.
Triệu chứngBản demo không có test, phân quyền mỏng, kiến trúc không tính tới tương lai.
Cách tránhCoi prototype là tài liệu yêu cầu dạng bấm được; xây MVP thật trong repo có quy trình.
-
Sự cố 02
Nhảy công cụ liên tục theo xu hướng.
Triệu chứngMỗi lần đổi lại mất công làm quen, cấu hình lại, mất mạch dự án.
Cách tránhChọn một công cụ chính cho mỗi giai đoạn; chỉ thử công cụ mới trên việc nhỏ, có tiêu chí đánh giá rõ.
-
Sự cố 03
Để tri thức dự án nằm trong lịch sử chat của công cụ.
Triệu chứngĐổi công cụ hoặc hết phiên là mất.
Cách tránhMọi quyết định, quy ước, spec viết thành file Markdown trong repo.
-
Sự cố 04
Chọn theo bảng xếp hạng trên mạng xã hội.
Triệu chứngBảng xếp hạng đo việc khác với việc của bạn.
Cách tránhThử trên một việc thật của dự án mình, chấm theo bộ tiêu chí.
-
Sự cố 05
Bỏ qua điều khoản dữ liệu.
Triệu chứngCode và dữ liệu doanh nghiệp có thể bị dùng theo cách bạn không muốn.
Cách tránhĐọc chính sách dữ liệu trên trang chính thức; với dữ liệu nhạy cảm, chọn gói có cam kết phù hợp.
Checklist
Bài tập thực hành
-
Bài 1
Cơ bản
Phân loại công cụ
Liệt kê 6 công cụ AI coding bạn từng nghe tên. Với mỗi cái, xếp vào nhóm 1, 2 hoặc 3 (có thể nhiều nhóm), và ghi một câu về cách nó làm việc.
Kết quả mong đợi
Bảng 6 dòng; bạn nhận ra một số công cụ có mặt ở nhiều nhóm, và bạn phân loại theo cách dùng chứ không theo tên.
-
Bài 2
Cơ bản
Ma trận cho dự án của bạn
Lấy dự án thực hành của bạn (hoặc Bánh Mộc), viết ma trận 4–5 giai đoạn, mỗi giai đoạn chọn một nhóm công cụ và lý do.
Kết quả mong đợi
Một bảng giống ma trận trong bài nhưng sát với hoàn cảnh của bạn, có cột “lưu ý rủi ro”.
-
Bài 3
Nâng cao
Thử nghiệm di động
Trong một repo nhỏ đã có AGENTS.md và vài test, giao cùng một việc (ví dụ thêm trường “ghi chú giao hàng” vào form) cho hai công cụ thuộc hai nhóm khác nhau. So sánh: thời gian, chất lượng, mức độ tuân thủ AGENTS.md, độ dễ review.
Kết quả mong đợi
Một ghi chú so sánh nửa trang; quan trọng hơn, bạn xác nhận được rằng đổi công cụ không làm gãy quy trình vì nền chung nằm trong repo.
Thuật ngữ trong bài
- App builder
- Nền tảng web tạo ứng dụng chạy được từ mô tả bằng lời
- IDE
- Môi trường phát triển tích hợp, “bàn làm việc” để mở và sửa dự án
- Autocomplete
- Gợi ý code tiếp theo khi đang gõ
- Diff
- Hiển thị phần thêm và xóa giữa hai phiên bản code
- CLI agent
- Agent chạy trong terminal, ngay trong thư mục dự án
- Cloud agent
- Agent chạy trên máy chủ nhà cung cấp, thường trả về pull request
- Pull request
- Đề nghị gộp thay đổi vào nhánh chính, kèm review
- Vendor lock-in
- Bị khóa chặt vào nhà cung cấp vì chi phí chuyển đổi quá cao
- Prototype
- Bản phác thảo bấm được để thử ý tưởng, không dùng vận hành thật
Đọc thêm
- Định dạng file hướng dẫn mở cho agent: https://agents.md
- Chuẩn kết nối agent với công cụ ngoài: https://modelcontextprotocol.io
- Tài liệu các công cụ tiêu biểu: https://code.claude.com/docs, https://docs.cursor.com, https://docs.github.com
- Bài liên quan: Tự xây, đi mua hay dùng no-code?03-03, Chọn tech stack04-06, Thiết lập môi trường làm việc06-01
Nghiệm thu tờ 02-03
Đọc xong và tự kiểm theo phiếu nghiệm thu, rồi đánh dấu tờ này.

