Lê Ngọc Tú← Về trang chủ

Đăng ngày 08/11/2026

Giao việc cho agy và để Claude nghiệm thu: lần chạy thử đầu tiên

Kinh nghiệm chạy thử quy trình ba bước Planner, Execute, Audit giữa Claude Code và Antigravity CLI, hai tầng kiểm tra và những lỗi chỉ tìm ra khi đọc bài.

  • Antigravity
  • Claude Code
  • Tự động hóa
  • Kiểm thử
Giao việc cho agy và để Claude nghiệm thu: lần chạy thử đầu tiên

Mình dùng hai công cụ: Claude Code và Antigravity CLI (agy, bản 1.5.2, model Gemini 3.8 Flash (High)). Mình chỉ giao agy khi nói rõ, còn lại Claude tự làm. Câu hỏi là có nên tin lời agy báo xong không. Ngày 07/11/2026, mình chạy thử quy trình phối hợp trên repo này để soạn bài blog.

Ba giai đoạn và ranh giới an toàn

Skill giao-viec-agy có ba giai đoạn: Planner (Claude khảo sát, dựng brief đủ ngữ cảnh thay vì chuyển nguyên văn), Execute (agy làm), và Audit (Claude xem diff, chạy script kiểm tra, nghiệm thu).

Do agy chạy cờ --dangerously-skip-permissions (sửa tệp không hỏi lại), phải có commit sạch để xem diff và hoàn tác. Kinh nghiệm trong skill: không tin mã thoát hay lời agy báo xong; khẳng định đã kiểm tra không phải bằng chứng.

Diễn biến lần chạy thử

Lần chạy thật đầu tiên là giao agy soạn bài blog về làm video dọc bằng code:

Planner. Tạo nhánh riêng, commit mốc 33d8161 sạch. Claude viết tệp dữ kiện thật làm nguồn duy nhất, dựng brief nêu vai trò, phạm vi đọc, phạm vi ghi (đúng 3 mục: tệp MDX, ảnh bìa, bảng kích thước ảnh sinh bằng script), danh sách cấm (package.json, cấu hình, dữ liệu trang, scripts/...) và cách nghiệm thu.

Chặn an toàn. Lần gọi đầu bị Claude Code chặn vì "Create Unsafe Agents" do cờ bỏ qua quyền; chỉ chạy khi mình cho phép.

Execute. Agy đạt status: SUCCESS, 1 lượt, JSON báo 191.842 token. Agy tự tạo ảnh bìa, đổi sang WebP 800x597, 27 KB (bản gốc JPEG 429 KB tại brain ổ C), tự kiểm tra và báo mọi lệnh exit 0.

Hai tầng kiểm tra và ba lỗi sót

Audit lần 1 với mốc 33d8161, kiểm tra tự động đều đạt:

Hạng mụcKết quảGhi chú thực tế
Phạm vi ghiPASSĐúng 3 tệp, không đụng tệp cấm
SecretPASSKhông chứa khóa hay token
Ảnh bàiPASSWebP 27 KB (dưới 300 KB), có trong bảng kích thước
Chặn nội dungPASSĐạt chuẩn MDX, không mã ngoài quy tắc
Số liệuPASSMọi số trong bài có trong tệp dữ kiện
Typecheck và buildPASSĐều qua (exit 0)

Dù vậy, khi Claude đọc bài thì tìm ra 3 lỗi:

  1. Câu mở đầu thêm hai chi tiết ngoài dữ kiện: "cho kênh kỹ sư AI" và "để kiểm soát bằng mã thay vì kéo thả thủ công".
  2. Bài ngôi thứ nhất nhưng gọi "tác giả" và "chủ kênh" ở ngôi thứ ba.
  3. Cụm từ "Ghi chú để lại", "Ghi chú kết luận" đọc như người ngoài kể lại ghi chú.

Vòng sửa nhanh và nghiệm thu

Claude mở vòng sửa ngắn (REFACTOR), gửi brief vào cùng cuộc hội thoại bằng --conversation <id>, nêu đúng tệp, 3 lỗi, cách sửa, cấm đụng tệp khác và không đổi số liệu.

Agy xong sau 2 lượt (status: SUCCESS), JSON lượt hai báo 226.272 token (chưa rõ cộng dồn hay riêng lượt). Theo dấu thời gian tệp, lượt sửa mất chưa đầy 2 phút (ước tính, chưa đo lượt đầu).

Audit lần 2, kiểm tra tự động vẫn đạt; Claude đọc lại dòng sửa, đúng yêu cầu. Claude xóa đúng một ảnh gốc trên ổ C, giữ transcript, kiểm lại còn 0 ảnh. Bài được merge khi mình duyệt và nói push.

Bộ nghiệm thu dựng cho quy trình

Bộ công cụ nghiệm thu gồm:

  • scripts/check-content.mjs: chặn trước build (prebuild). MDX là mã chạy được và agy bỏ qua quyền, script từ chối import, export, ngoặc nhọn ngoài khối mã, thẻ HTML, ảnh và liên kết ngoài quy tắc; vi phạm thì build thất bại.
  • scripts/audit-agy.mjs: so mốc git, kiểm phạm vi ghi, tệp cấm, secret, ảnh (WebP, dưới 300 KB, có trong bảng kích thước), chạy script chặn nội dung và đối soát số. Đã thử trên trường hợp xấu (sửa package.json, khóa sk-, ảnh PNG 400 KB chưa đăng ký), script báo FAIL đúng từng mục.
  • .claude/agents/agy-auditor.md: agent chỉ đọc (Read, Grep, Glob, Bash, không sửa tệp), đã dựng và push nhưng chưa chạy lần nào trong lần thử này; ở bước Audit, Claude tự đọc bài.
  • docs/agy-brief-base.md: có mục "Lớp lỗi đã gặp", đã thêm hai lớp lỗi ở mục 1 và 2.

Skill ghi giới hạn: brief dài quá 28.000 ký tự vượt giới hạn tham số Windows (cần ghi ra tệp); hết --print-timeout agy thoát mã 3 (cần đọc status, finished_reason, mã thoát, stderr).

Hạn chế cần nói rõ

Nếu bạn cũng đang phân chia việc cho AI agent, mình rất muốn nghe chia sẻ về cách bạn kiểm tra và nghiệm thu sản phẩm.

Tác giả

Lê Ngọc Tú, AI Engineer. Viết lại những gì mình đã làm với RAG, AI Agent và mô hình tiếng Việt.

Muốn trao đổi về bài viết này?

Nếu bạn có câu hỏi hoặc góp ý, hãy liên hệ trực tiếp.