Header Ads Widget

Thiết lập AI Coding Agent làm việc an toàn với Git

 Trong vài tháng gần đây, các AI Coding Agent như Codex, Claude Code, Gemini CLI hay Cursor Agent đã trở thành trợ lý lập trình rất mạnh. Chúng có thể đọc toàn bộ project, sửa code, chạy lệnh terminal, commit và thậm chí push code lên repository.



Đó cũng chính là lý do chúng ta cần đặt ra các "quy tắc làm việc" (Instructions) trước khi giao quyền cho AI.

Nếu không có giới hạn rõ ràng, AI hoàn toàn có thể:

  • Tự merge nhánh vào main

  • Chạy git reset --hard

  • Force push làm mất lịch sử commit

  • Tự build hoặc chạy test khiến môi trường thay đổi

  • Refactor hàng chục file dù bạn chỉ yêu cầu sửa một lỗi nhỏ

Để tránh những tình huống này, mình luôn cấu hình AI theo nguyên tắc: AI chỉ sửa code, mọi thao tác ảnh hưởng đến Git đều phải có sự xác nhận của mình.

Bộ Instruction mình đang sử dụng

Chỉ sửa code và không chạy thử.
Không tự động merge code vào `main`.

Mỗi khi tôi yêu cầu merge, AI phải chỉ review trước:
- fetch remote
- show commits
- show changed files
- summarize diff
- explain conflict risk

Sau đó phải hỏi tôi:
"Bạn có muốn tôi tiến hành merge không?"

Chỉ khi tôi trả lời xác nhận rõ ràng như:
- merge đi
- đồng ý
- tiến hành

AI mới được chạy:
- git merge
- git rebase
- git commit
- git push

Nếu có conflict, AI phải báo danh sách file conflict và hỏi tôi muốn xử lý theo hướng nào trước khi resolve.

Mình bổ sung thêm một số quy tắc an toàn

Ngoài phần trên, mình còn thêm các quy tắc sau để AI không làm quá phạm vi công việc.

1. Chỉ sửa đúng phạm vi yêu cầu

AI không được:

  • Refactor toàn bộ project

  • Format toàn bộ source

  • Đổi tên file hàng loạt

  • Sửa những module không liên quan

Điều này giúp mỗi lần thay đổi đều nhỏ, dễ review và dễ rollback.


2. Không chạy các lệnh nguy hiểm

AI tuyệt đối không được tự ý chạy:

git reset --hard
git clean -fd
git push --force
git push --force-with-lease

Đây đều là các lệnh có thể làm mất dữ liệu hoặc ghi đè lịch sử Git.


3. Không tự build hoặc chạy test

Nếu mình chỉ yêu cầu sửa code thì AI không được:

  • npm run build

  • npm test

  • pnpm build

  • yarn build

  • docker compose up

  • migrate database

  • restart service

Chỉ thực hiện khi mình yêu cầu rõ ràng.


4. Trước khi sửa phải báo kế hoạch

AI cần nói ngắn gọn:

  • sẽ sửa file nào

  • mục tiêu của từng thay đổi

  • phạm vi ảnh hưởng

Nhờ đó mình biết AI chuẩn bị làm gì trước khi nó bắt đầu chỉnh sửa.


5. Sau khi sửa phải có báo cáo

Sau mỗi lần hoàn thành, AI cần báo:

  • Danh sách file đã sửa

  • Nội dung thay đổi chính

  • Có rủi ro gì không

  • Có cần mình review thêm không

Điều này giúp việc kiểm tra Pull Request nhanh hơn rất nhiều.


6. Mọi thao tác với Git đều cần xác nhận

Theo mình, AI không nên tự:

  • merge

  • rebase

  • commit

  • push

Nếu cần thực hiện các thao tác này thì phải hỏi lại người dùng.

Đặc biệt với branch main, mình gần như không bao giờ cho AI thao tác trực tiếp.

Lợi ích của cách làm này

Sau một thời gian áp dụng, mình nhận thấy:

  • Không còn tình trạng AI sửa lan sang các module khác.

  • Giảm đáng kể nguy cơ mất lịch sử Git.

  • Review Pull Request nhanh hơn.

  • Dễ rollback nếu có lỗi.

  • AI hoạt động giống một lập trình viên trong team hơn là một công cụ tự động.

Kết luận

AI Coding Agent ngày càng mạnh, nhưng sức mạnh càng lớn thì càng cần có quy tắc rõ ràng.

Theo mình, nguyên tắc quan trọng nhất là:

AI được phép viết code, nhưng mọi thao tác có thể ảnh hưởng đến lịch sử Git hoặc môi trường chạy đều phải có sự xác nhận của con người.

Chỉ cần dành vài phút để thiết lập Instruction ngay từ đầu, bạn sẽ có một trợ lý lập trình an toàn, dễ kiểm soát và đáng tin cậy hơn rất nhiều.

Nhận xét