VPS

Checkpoint và quay lui khi agent đi sai hướng

Thanh Nguyễn Đăng 9 phút đọc 3 khối lệnh

Checkpoint và quay lui khi agent đi sai hướng
Mục lục bài viết
  1. Ba mức quay lui
  2. Thói quen commit quyết định tất cả
  3. Làm trên nhánh riêng
  4. Nhận ra sai hướng sớm
  5. Sau khi quay lui thì làm gì
  6. Bảng ba mức quay lui và lúc dùng
  7. Thói quen ghi lại quyết định tất cả
  8. Dấu hiệu sớm nhất là số tệp bị sửa
  9. Giao lại việc thế nào sau khi quay lui
  10. Câu hỏi thường gặp
  11. Bài viết liên quan

Trả lời nhanh: Khi agent đi sai hướng, bạn có ba mức quay lui theo thứ tự nên dùng: quay lui trong phiên để bỏ những thay đổi vừa rồi; quay về commit Git gần nhất khi phiên đã đi xa; và khôi phục từ bản sao lưu khi mọi thứ hỏng nặng. Điều quan trọng nhất không phải công cụ mà là thói quen: commit trước khi giao việc lớn, vì một commit sạch là điểm quay lui chắc chắn nhất mà không cơ chế nào thay được.

Ai giao việc cho agent đủ lâu cũng gặp cảnh nó đi lệch: sửa thêm những file không nên đụng, hoặc chọn một hướng mà bạn không muốn. Lúc đó câu hỏi duy nhất là làm sao quay về trạng thái trước đó cho nhanh và chắc. Bài này nói cả cơ chế lẫn thói quen.

Ba mức quay lui

Mức một, trong phiên. Bỏ những thay đổi agent vừa thực hiện và quay về trạng thái trước đó của phiên. Nhanh nhất, hợp khi bạn phát hiện sai ngay sau vài bước. Hạn chế là nó chỉ biết những gì diễn ra trong phiên hiện tại.

Mức hai, về commit Git. Đây là lưới an toàn thật sự:

TerminalBa mức quay luibash
# Xem nhung gi da thay doi so voi commit gan nhatgit statusgit diff # Bo het thay doi chua commitgit restore . # Bo ca file moi taogit clean -fd

Mức ba, khôi phục từ sao lưu. Dành cho trường hợp có thứ ngoài repo bị ảnh hưởng, ví dụ database hoặc file cấu hình máy chủ, theo bài về chu kỳ sao lưu.

Ghi nhớ thứ tự này để không hoảng: cái gì nằm trong Git thì luôn quay lui được, cái gì ngoài Git mới cần lo.

Thói quen commit quyết định tất cả

Cơ chế quay lui chỉ hữu ích khi bạn có điểm để quay về. Ba thói quen đáng có:

Commit trước khi giao việc lớn. Kể cả một commit tạm với thông điệp ngắn cũng đủ. Đây là việc mất mười giây và cứu bạn cả buổi.

Commit nhỏ và thường xuyên trong lúc làm. Khi agent hoàn thành một phần và bạn xem thấy ổn, hãy commit ngay thay vì để dồn. Nhờ vậy nếu phần tiếp theo hỏng, bạn chỉ mất phần đó.

Không để agent tự đẩy code lên nhánh chính. Đưa lệnh đẩy vào danh sách cấm theo bài về quyền. Đẩy rồi thì việc quay lui phức tạp hơn nhiều, nhất là khi người khác đã kéo về.

Làm trên nhánh riêng

Cách bố trí an toàn nhất cho việc giao cho agent:

TerminalLàm trên nhánh riêngbash
# Tao nhanh rieng truoc khi giao viecgit switch -c agent/them-luong-hoan-tien # Sau khi xem lai va thay ongit switch main && git merge --no-ff agent/them-luong-hoan-tien # Neu khong dung, bo ca nhanhgit switch main && git branch -D agent/them-luong-hoan-tien

Lợi ích: nhánh chính của bạn luôn sạch, và việc bỏ đi toàn bộ một hướng sai chỉ tốn một lệnh. Cách này cũng cần thiết khi bạn chạy nhiều phiên song song, vì mỗi phiên nên có nhánh riêng, theo bài thiết kế đội subagent.

Với việc kéo dài nhiều ngày, thư mục làm việc riêng cho từng nhánh còn tiện hơn nữa, chi tiết ở bài Git worktree.

Nhận ra sai hướng sớm

Quay lui rẻ nhất là quay lui sớm. Bốn dấu hiệu cho thấy nên dừng lại ngay:

  • Nó sửa file bạn không ngờ tới. Thường nghĩa là nó hiểu phạm vi khác bạn.
  • Nó thêm thư viện mới trong khi dự án đã có công cụ tương đương.
  • Nó bắt đầu sửa kiểm thử để kiểm thử chạy qua thay vì sửa code cho đúng.
  • Giải thích của nó mơ hồ dần. Thường là dấu hiệu ngữ cảnh đã quá tải, xem bài quản lý ngữ cảnh.

Cách phòng hiệu quả là bắt nó trình kế hoạch trước với việc lớn, theo bài về plan mode. Phát hiện hiểu nhầm ở bước kế hoạch rẻ hơn nhiều so với phát hiện sau ba trăm dòng code.

Sau khi quay lui thì làm gì

Sai lầm phổ biến là quay lui rồi bảo nó làm lại. Kết quả thường là nó đi đúng đường cũ, vì bạn chưa nói gì khác.

Ba việc nên làm:

  1. Nói rõ hướng vừa rồi sai ở đâu. Không phải sai kỹ thuật mà sai so với ý định của bạn.
  2. Bổ sung phần bối cảnh còn thiếu. Nếu nó chọn sai vì không biết một ràng buộc, hãy ghi ràng buộc đó vào file quy ước để lần sau không lặp lại, theo bài về memory.
  3. Cân nhắc mở phiên mới. Phiên cũ đã chứa cả hướng sai, và nội dung đó vẫn ảnh hưởng tới các lượt sau.

Điểm thứ hai là chỗ biến một lần sai thành cải thiện lâu dài. Nếu bạn thấy mình quay lui vì cùng một lý do tới lần thứ ba, đó là dấu hiệu rõ ràng rằng file quy ước của dự án đang thiếu một điều gì đó.

Bảng ba mức quay lui và lúc dùng

MứcQuay lui được gìKhi nào dùng
Hoàn tác trong công cụVài thao tác gần nhấtVừa nhận ra sai ngay lập tức
Quay về trạng thái mã nguồn đã ghi lạiToàn bộ thay đổi từ lần ghi cuốiĐi sai hướng qua nhiều bước
Bỏ cả nhánhToàn bộ công việc của nhánh đóHướng tiếp cận sai từ gốc

Mức hai là mức dùng nhiều nhất, và nó chỉ hoạt động nếu bạn có thói quen ghi lại trạng thái thường xuyên. Không ghi lại thì không có gì để quay về.

Thói quen ghi lại quyết định tất cả

TerminalThói quen ghi lại quyết định tất cảbash
# Ghi lai trang thai TRUOC khi giao mot viec longit add -A && git commit -m "truoc khi sua phan thanh toan" # Ghi lai sau moi buoc nho hoan thanh, dung doi den cuoi ngay# Ghi nhieu la re, quay lui khong duoc moi dat # Quay ve trang thai da ghi, bo moi thay doi chua ghigit reset --hard HEAD # Quay ve mot trang thai cu thegit log --oneline | head -10git reset --hard MA_TRANG_THAI # Neu da ghi nham roi muon bo: quay ve nhung giu thay doi de sua laigit reset --soft HEAD~1

Dấu hiệu sớm nhất là số tệp bị sửa

  • Số tệp bị sửa nhiều hơn dự kiến là dấu hiệu sớm nhất. Kiểm bằng cách xem danh sách tệp đã đổi.
  • Trợ lý bắt đầu tạo tệp mới cho việc lẽ ra chỉ sửa tệp có sẵn.
  • Nó giải thích dài dòng về một cách tiếp cận khác với cách bạn nghĩ. Dừng lại và làm rõ trước khi để nó đi tiếp.
  • Bộ kiểm thử bắt đầu hỏng ở chỗ không liên quan.
  • Cách phòng tốt: bắt lập kế hoạch trước với việc lớn. Xem bài về chế độ lập kế hoạch.

Giao lại việc thế nào sau khi quay lui

Đừng giao lại đúng yêu cầu cũ, vì kết quả sẽ tương tự. Ba việc nên làm: mô tả lại yêu cầu cụ thể hơn, nêu rõ cách tiếp cận bạn muốn; giới hạn phạm vi tệp được sửa; và nếu lỗi lặp lại nhiều lần thì viết nó thành một luật trong tệp luật dự án để không gặp lại.

Câu hỏi thường gặp

Cơ chế quay lui trong phiên có thay được Git không?

Không. Nó tiện cho việc bỏ vài bước vừa rồi, nhưng chỉ biết những gì xảy ra trong phiên hiện tại. Git mới là nơi lưu trạng thái bền vững và cho phép quay về bất kỳ điểm nào trong lịch sử.

Agent lỡ xóa file thì sao?

Nếu file đã được commit thì khôi phục dễ bằng lệnh Git. Nếu chưa từng commit thì gần như không cứu được, và đó chính là lý do nên commit trước khi giao việc lớn.

Có nên để agent tự commit không?

Nên, vì commit nhỏ và thường xuyên giúp bạn quay lui từng phần. Nhưng đừng cho nó đẩy lên kho từ xa, hãy giữ bước đó cho bạn sau khi đã xem lại thay đổi.

Làm việc trên máy chủ thì quay lui thế nào?

Y hệt, vì Git hoạt động như nhau. Điểm cộng khi làm trên máy chủ là bạn có thêm bản sao lưu định kỳ của cả máy, nên những thứ ngoài repo cũng có đường khôi phục.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.