Hướng dẫn 15: Git Worktrees — Tác nhân Song song
Hướng dẫn 15: Git Worktrees — Tác nhân Song song — hướng dẫn dễ hiểu dựa trên tài liệu chính thức
Đây là một phần trong loạt hướng dẫn chính thức của Hermes Agent. Xem tất cả các bài hướng dẫn
Hãy tưởng tượng bạn có một căn bếp nhưng có hai đầu bếp. Nếu cả hai cùng nấu trên một mặt bàn, họ sẽ va chạm khuỷu tay, làm đổ bột mì, và phá hỏng món ăn của nhau. Git worktrees cho mỗi đầu bếp một mặt bàn riêng—cùng một căn bếp, nhưng không gian làm việc tách biệt. Đó chính xác là điều tính năng này mang lại cho các tác nhân AI của bạn.
Tại Sao Phải Bận Tâm? Vấn Đề Với Một Thư Mục Làm Việc
Hermes Agent coi thư mục bạn chạy nó là thư mục gốc của dự án. Nếu bạn khởi chạy hai tác nhân trong cùng một thư mục, chúng sẽ dùng chung mọi tệp tin. Điều đó có nghĩa là:
- Tác nhân A có thể xóa một tệp tin mà tác nhân B đang chỉnh sửa.
- Bạn không thể biết thay đổi nào đến từ thí nghiệm nào.
- Việc khôi phục trở nên rối rắm—thao tác hoàn tác của một tác nhân có thể xóa sạch công việc của tác nhân kia.
Worktrees giải quyết vấn đề này bằng cách cho mỗi tác nhân:
- Nhánh riêng (để các thay đổi không xung đột)
- Thư mục làm việc riêng (để các tệp tin không va chạm)
- Lịch sử checkpoint riêng (để
/rollbackchỉ ảnh hưởng đến tác nhân đó)
Bước 1: Tạo Worktree (Lệnh Cơ Bản)
Từ kho lưu trữ chính của bạn (kho có chứa .git/ bên trong), chạy:
git worktree add ../my-agent-folder -b my-feature-branch
Hãy phân tích lệnh này:
../my-agent-folder– nơi thư mục mới sẽ được tạo (bên ngoài kho lưu trữ chính của bạn)-b my-feature-branch– tạo một nhánh mới cho tác nhân này
Giờ bạn đã có một bản sao hoàn toàn mới và tách biệt của dự án.
Bước 2: Trỏ Hermes Đến Worktree
Bạn có thể sử dụng worktree theo hai cách:
Tùy chọn A: CLI (đơn giản nhất)
Chỉ cần cd vào worktree và chạy Hermes ở đó:
cd ../my-agent-folder
hermes chat
Tùy chọn B: Cổng nhắn tin (như Slack hoặc Discord)
Nếu bạn dùng cổng nhắn tin, hãy sửa ~/.hermes/config.yaml và đặt terminal.cwd thành đường dẫn worktree:
terminal:
cwd: /path/to/my-agent-folder
Giờ mọi tin nhắn mà tác nhân đó nhận được sẽ hoạt động bên trong thư mục tách biệt đó.
Bước 3: Chạy Nhiều Tác Nhân Song Song
Tạo bao nhiêu worktree tùy theo nhu cầu của bạn:
git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2
Sau đó khởi chạy một phiên Hermes trong mỗi thư mục. Chúng sẽ không bao giờ đụng vào tệp tin của nhau, và mỗi tác nhân có nhánh riêng để commit.
Bước 4: Dọn Dẹp Khi Xong Việc
Khi một thí nghiệm hoàn tất, hãy xóa worktree:
git worktree remove ../agent-experiment-1
git branch -d exp-1
Lệnh đầu tiên xóa thư mục; lệnh thứ hai xóa nhánh. Kho lưu trữ chính của bạn vẫn sạch sẽ.
Những Điểm Chính Cần Nhớ
- Worktrees rất rẻ – chúng không sao chép toàn bộ kho lưu trữ, chỉ sao chép các tệp tin bạn cần.
- Mỗi tác nhân có lịch sử
/rollbackriêng – không còn thảm họa hoàn tác chéo giữa các tác nhân. - Sử dụng nhánh một cách thông minh – đặt tên rõ ràng (ví dụ:
refactor-login,fix-bug-42) để bạn biết mỗi tác nhân đã làm gì.
Tóm Tắt
Git worktrees cho phép bạn chạy nhiều tác nhân Hermes trên cùng một dự án mà không lo chúng giẫm chân nhau. Tạo một worktree cho mỗi tác nhân, trỏ Hermes đến đó, và xong. Giống như việc cho mỗi đầu bếp một cái thớt riêng—cùng một căn bếp, không va chạm.
Tiếp theo: Trong Bài hướng dẫn 16, chúng ta sẽ triển khai Hermes với Docker — một trợ lý tự phục hồi, luôn hoạt động.
📖 Tài liệu chính thức
この記事は Hermes Agent のTài liệu chính thứcに基づいています:Tài liệu chính thức › user-guide/git-worktrees