Cây làm việc Git
Hermes Agent thường được sử dụng trên các kho lưu trữ lớn và tồn tại lâu dài. Khi bạn muốn:
- Chạy nhiều tác nhân song song trên cùng một dự án, hoặc
- Tách biệt các công cụ tái cấu trúc thử nghiệm khỏi nhánh chính của bạn,
Git worktrees là cách an toàn nhất để cung cấp cho mỗi tác nhân quyền kiểm tra riêng mà không cần sao chép toàn bộ kho lưu trữ.
Trang này trình bày cách kết hợp các cây làm việc với Hermes để mỗi phiên có một thư mục làm việc sạch sẽ, tách biệt.
Tại sao nên sử dụng Worktrees với Hermes?
Hermes coi thư mục làm việc hiện tại là thư mục gốc của dự án:
- CLI: thư mục nơi bạn chạy
hermeshoặchermes chat - Cổng nhắn tin: thư mục do
MESSAGING_CWDthiết lập
Nếu bạn điều hành nhiều tổng đài viên trong cùng một lần thanh toán, các thay đổi của chúng có thể ảnh hưởng lẫn nhau:
- Một tác nhân có thể xóa hoặc viết lại các tập tin mà tác nhân kia đang sử dụng.
- Việc hiểu những thay đổi nào thuộc về thí nghiệm nào trở nên khó khăn hơn.
Với cây công việc, mỗi tác nhân sẽ nhận được:
- Chi nhánh và thư mục làm việc riêng
- Lịch sử Trình quản lý điểm kiểm tra của riêng nó** cho
/rollback
Xem thêm: Điểm kiểm tra và /rollback.
Bắt đầu nhanh: Tạo cây làm việc
Từ kho lưu trữ chính của bạn (chứa .git/), hãy tạo một cây công việc mới cho nhánh tính năng:
# From the main repo root
cd /path/to/your/repo
# Create a new branch and worktree in ../repo-feature
git worktree add ../repo-feature feature/hermes-experiment
Điều này tạo ra:
- Một thư mục mới:
../repo-feature - Một nhánh mới:
feature/hermes-experimentđã được kiểm tra trong thư mục đó
Bây giờ bạn có thể cd vào cây công việc mới và chạy Hermes ở đó:
cd ../repo-feature
# Start Hermes in the worktree
hermes
Hermes sẽ:
- Xem
../repo-featurelàm thư mục gốc của dự án. - Sử dụng thư mục đó cho các tệp ngữ cảnh, chỉnh sửa mã và công cụ.
- Sử dụng lịch sử điểm kiểm tra riêng cho
/rollbacktrong phạm vi cây công việc này.
Chạy song song nhiều Agent
Bạn có thể tạo nhiều cây làm việc, mỗi cây có nhánh riêng:
cd /path/to/your/repo
git worktree add ../repo-experiment-a feature/hermes-a
git worktree add ../repo-experiment-b feature/hermes-b
Trong các thiết bị đầu cuối riêng biệt:
# Terminal 1
cd ../repo-experiment-a
hermes
# Terminal 2
cd ../repo-experiment-b
hermes
Mỗi quá trình Hermes:
- Hoạt động trên nhánh riêng của nó (
feature/hermes-avsfeature/hermes-b). - Ghi các điểm kiểm tra dưới hàm băm repo bóng khác (bắt nguồn từ đường dẫn cây công việc).
- Có thể sử dụng
/rollbackđộc lập mà không ảnh hưởng đến cái khác.
Điều này đặc biệt hữu ích khi:
- Chạy các trình tái cấu trúc hàng loạt.
- Thử các cách tiếp cận khác nhau cho cùng một nhiệm vụ.
- Ghép nối các phiên CLI + cổng với cùng một kho lưu trữ ngược dòng.
Dọn dẹp cây làm việc một cách an toàn
Khi bạn hoàn thành một thử nghiệm:
- Quyết định giữ hay loại bỏ tác phẩm.
- Nếu bạn muốn giữ nó:
- Gộp nhánh vào nhánh chính của bạn như bình thường.
- Xóa cây làm việc:
cd /path/to/your/repo
# Remove the worktree directory and its reference
git worktree remove ../repo-feature
Ghi chú:
git Worktree Removesẽ từ chối xóa một cây công việc có những thay đổi không được cam kết trừ khi bạn ép buộc.- Việc xóa một cây làm việc không tự động xóa nhánh; bạn có thể xóa hoặc giữ nhánh bằng các lệnh
git nhánhthông thường. - Dữ liệu điểm kiểm tra Hermes trong
~/.hermes/checkpoints/không được tự động cắt bớt khi bạn loại bỏ một cây công việc, nhưng nó thường rất nhỏ.
Các phương pháp hay nhất
- Một cây công việc cho mỗi thí nghiệm của Hermes
- Tạo một nhánh/cây công việc dành riêng cho mỗi thay đổi đáng kể.
- Điều này giúp tập trung vào những khác biệt và PR ở mức nhỏ và có thể xem xét được.
- Đặt tên các nhánh sau khi thử nghiệm
- ví dụ.
feature/hermes-checkpoint-docs,feature/hermes-refactor-tests. - Cam kết thường xuyên
- Sử dụng cam kết git cho các cột mốc cấp cao.
- Sử dụng checkpoints và /rollback làm mạng lưới an toàn cho các chỉnh sửa dựa trên công cụ ở giữa.
- Tránh chạy Hermes từ gốc repo trần khi sử dụng cây công việc
- Thay vào đó, hãy ưu tiên các thư mục cây làm việc để mỗi tác nhân có phạm vi rõ ràng.
Sử dụng hermes -w (Chế độ cây làm việc tự động)
Hermes có cờ -w tích hợp sẵn tự động tạo cây công việc git dùng một lần với nhánh riêng của nó. Bạn không cần phải thiết lập cây công việc theo cách thủ công — chỉ cần cd vào kho lưu trữ của bạn và chạy:
cd /path/to/your/repo
hermes -w
Hermes sẽ:
- Tạo một cây công việc tạm thời dưới
.worktrees/bên trong kho lưu trữ của bạn. - Kiểm tra một nhánh riêng biệt (ví dụ:
hermes/hermes-<hash>). - Chạy phiên CLI đầy đủ bên trong cây công việc đó.
Đây là cách dễ nhất để có được sự cô lập của cây làm việc. Bạn cũng có thể kết hợp nó với một truy vấn duy nhất:
hermes -w -q "Fix issue #123"
Đối với các tác nhân song song, hãy mở nhiều thiết bị đầu cuối và chạy hermes -w trong mỗi thiết bị đầu cuối — mỗi lệnh gọi sẽ tự động có cây làm việc và nhánh riêng.
Kết hợp tất cả lại với nhau
- Sử dụng git Worktrees để cung cấp cho mỗi phiên Hermes quyền kiểm tra rõ ràng.
- Sử dụng nhánh để nắm bắt lịch sử cấp cao của các thử nghiệm của bạn.
- Sử dụng điểm kiểm tra +
/rollbackđể khắc phục các lỗi trong mỗi cây công việc.
Sự kết hợp này mang lại cho bạn:
- Đảm bảo mạnh mẽ rằng các tác nhân và thí nghiệm khác nhau không dẫm lên nhau.
- Chu kỳ lặp lại nhanh và dễ dàng phục hồi sau những chỉnh sửa sai.
- Yêu cầu kéo sạch sẽ, có thể xem xét được.