Hướng dẫn: Chạy nhiều AI coding agent song song bằng Git worktree mà không giẫm chân nhau
Khi đã quen dùng AI coding agent (Claude Code, Codex...), sẽ đến lúc bạn muốn giao 2–3 việc cùng lúc: một agent sửa bug, một agent viết test, một agent làm tính năng nhỏ. Nếu tất cả chạy trên cùng một thư mục code thì chúng sẽ sửa đè file của nhau, chạy test lẫn lộn, rất loạn. Giải pháp gọn nhất mình đang dùng là Git worktree. WORKTREE LÀ GÌ? Git worktree cho phép một repo có nhiều thư mục làm việc cùng lúc, mỗi thư mục gắn với một nhánh riêng. Tất cả dùng chung lịch sử Git (không phải clone lại), nhưng file trên đĩa thì tách biệt hoàn toàn. Mỗi agent làm việc trong một thư mục riêng nên không đụng nhau. BƯỚC 1: TẠO WORKTREE CHO TỪNG VIỆC Đứng ở thư mục repo chính, chạy: git worktree add ../shop-fix-login -b fix/login git worktree add ../shop-add-tests -b test/order-service Lệnh trên tạo 2 thư mục mới nằm cạnh repo, mỗi thư mục ở một nhánh mới. Xem danh sách worktree đang có: git worktree list BƯỚC 2: CHUẨN BỊ MÔI TRƯỜNG CHO MỖI THƯ MỤC Đây là bước hay bị quên: - Thư viện phụ thuộc: mỗi thư mục cần cài riêng (npm install, pip install...), vì nodemodules hay virtualenv không được Git theo dõi. - File .env và cấu hình cục bộ: không nằm trong Git nên phải tự copy sang. - Cổng (port): nếu các agent cùng chạy server để test, đặt mỗi thư mục một cổng khác nhau (3001, 3002...). - Database: tốt nhất mỗi worktree dùng một database test riêng, tránh agent này xoá dữ liệu agent kia đang dùng. BƯỚC 3: MỞ AGENT TRONG TỪNG THƯ MỤC - Trong VS Code: File New Window, mở từng thư mục worktree trong một cửa sổ riêng, rồi mở agent trong cửa sổ đó. - Hoặc dùng terminal: cd vào từng thư mục rồi khởi động agent. - Giao việc rõ ràng cho từng agent, kèm tiêu chí xong việc ("chạy npm test phải xanh"). BƯỚC 4: REVIEW VÀ GỘP - Mỗi agent làm xong thì commit trên nhánh của nó. Bạn review như review PR của đồng nghiệp. - Gộp vào nhánh chính bằng merge hoặc mở pull request như bình thường. BƯỚC 5: DỌN DẸP git worktree remove ../shop-fix-login git branch -d fix/login Nếu lỡ xoá thư mục bằng tay, chạy git worktree prune để Git quên các worktree không còn tồn tại. KINH NGHIỆM SAU 2 THÁNG - Chia việc sao cho các agent ít sửa chung file nhất. Hai agent cùng sửa một file thì lúc merge vẫn xung đột như hai người. - 2–3 agent song song là hợp lý. Nhiều hơn thì người review (là bạn) thành nút thắt cổ chai. - Một nhánh chỉ được mở ở một worktree tại một thời điểm, Git sẽ báo lỗi nếu bạn cố mở lần hai. Đây là tính năng, không phải lỗi. - Mình có một script nhỏ tự tạo worktree, copy .env và cài thư viện, tiết kiệm được kha khá thao tác. Mọi người đang chạy nhiều agent song song kiểu gì? Có ai dùng container thay cho worktree không?