Hermes Agent | Lập trình đa nhánh git worktree

  May 7, 2026      2m      0   
 

Git Worktree cho phép checkout nhiều branch cùng lúc vào các thư mục riêng biệt. Kết hợp với Hermes Agent, bạn có thể chạy hàng chục agent song song — mỗi agent một nhánh, một phạm vi làm việc độc lập hoàn toàn.

Hermes Agent | Lập trình đa nhánh git worktree

Git Worktree là gì?

Git Worktree là tính năng built-in của Git (từ phiên bản 2.5) cho phép bạn checkout nhiều branch cùng lúc vào các thư mục riêng biệt — tất cả đều xuất phát từ một repository duy nhất, không cần clone nhiều lần.

Mỗi worktree có một branch độc lập, nhưng chia sẻ chung object store (.git/) — nghĩa là dung lượng không bị nhân lên, commit lịch sử vẫn đồng nhất.

Khi nào cần dùng Git Worktree?

  • Đang phát triển một tính năng nhưng cần hotfix nhánh main / master ngay lập tức — không cần stash hay commit dở dang
  • Muốn so sánh hành vi của hai branch khác nhau mà không cần liên tục switch
  • Chạy test suite trên nhiều branch song song để tiết kiệm thời gian
  • Giao cho nhiều AI agent mỗi agent một branch riêng để làm việc đồng thời

Các lệnh cơ bản:

# Tạo worktree mới với branch mới
git worktree add ../repo-feature feature/my-feature

# Tạo worktree từ branch đã có
git worktree add ../repo-hotfix hotfix/urgent-fix

# Liệt kê tất cả worktrees đang active
git worktree list

# Xóa worktree sau khi xong việc
git worktree remove ../repo-feature

Tham khảo thêm: git-scm.com/docs/git-worktree

Hermes Agent x Git Worktree

Hermes Agent coi thư mục hiện tại là project root — mọi đọc/ghi file, context phân tích code, checkpoint lịch sử đều gắn với thư mục đó. Nếu nhiều agent cùng chạy trong một checkout, chúng có thể ghi đè file của nhau, gây ra xung đột khó theo dõi.

Git Worktree giải quyết triệt để vấn đề này: mỗi agent có một thư mục riêng, branch riêng và lịch sử checkpoint (/rollback) độc lập.

Tạo worktree và chạy Hermes

# Từ thư mục gốc của repository
cd /path/to/your/repo

# Tạo worktree mới cho một tính năng cụ thể
git worktree add ../repo-feature feature/hermes-experiment

# Vào worktree và khởi động Hermes
cd ../repo-feature
hermes

Hermes Agent sẽ nhận ../repo-feature là project root, dùng thư mục đó để đọc/ghi code và lưu checkpoint riêng biệt.

Chạy nhiều agent song song

Tạo nhiều worktrees, mỗi cái một branch riêng, rồi mở terminal cho từng worktree:

git worktree add ../repo-experiment-a feature/hermes-a
git worktree add ../repo-experiment-b feature/hermes-b
# Terminal 1
cd ../repo-experiment-a && hermes

# Terminal 2
cd ../repo-experiment-b && hermes

Mỗi Hermes Agent làm việc hoàn toàn độc lập — khác branch, khác checkpoint, lệnh /rollback của agent này không ảnh hưởng agent kia.

Dọn dẹp sau khi xong

# Merge branch nếu cần giữ lại kết quả
# Sau đó xóa worktree
git worktree remove ../repo-experiment-a

Lưu ý:git worktree remove sẽ từ chối xóa nếu còn uncommitted changes — dùng --force để ép. Xóa worktree không tự xóa branch, bạn cần git branch -d riêng nếu muốn.

Best practices

  • Một worktree, một thí nghiệm — mỗi thay đổi đáng kể nên có branch/worktree riêng, giúp PR nhỏ gọn, dễ review
  • Đặt tên branch có nghĩa — ví dụ: feature/hermes-refactor-auth, fix/hermes-rate-limit
  • Commit thường xuyên — dùng git commit cho các mốc lớn, dùng checkpoint + /rollback để quay lại mốc cũ nếu phát sinh sai lầm
  • Không chạy Hermes từ bare repo root khi đang dùng worktree — ưu tiên chạy từ bên trong worktree để agent có phạm vi rõ ràng

Tham khảo thêm tài liệu: https://hermes-agent.nousresearch.com/docs/user-guide/git-worktrees

$ hermes -w

Flag -w là cách nhanh nhất để có worktree cô lập (isolation) mà không cần chạy lệnh git worktree add thủ công. Hermes Agent tự tạo một worktree tạm thời và checkout sang branch mới ngay khi khởi động:

cd /path/to/your/repo
hermes -w

Hermes Agent sẽ tự tạo thư mục .worktrees/ bên trong repo, checkout sang một branch tách biệt (ví dụ: hermes/hermes-<hash>) và chạy toàn bộ phiên làm việc trong đó — không cần cấu hình gì thêm.

Kết hợp với flag -q để giao việc ngay lập tức:

hermes -w -q "Fix issue #123"

Để chạy nhiều agent song song, chỉ cần mở nhiều terminal và gọi hermes -w trong mỗi cái — mỗi lần gọi tự tạo worktree và branch riêng, không bao giờ đụng nhau.


Cách @Tekniumcore contributor của Hermes Agent — làm việc thực tế (link trên X):

"I literally run 12 Hermes Agent instances every day in parallel to build Hermes Agent, and it's now a top 100 GitHub repository of all time. Agents do bring value and do create substantive software and work."

"It's literally just VSCode with 12 bash terminal windows over SSH open and launching Hermes withhermes -s hermes-agent-dev --yolo -wto load the hermes-agent-dev skill, YOLO mode, and in a worktree of the hermes-agent repo. Same model, same agent."

— @Teknium

@Teknium chỉ dùng một lệnh duy nhất — $ hermes -s hermes-agent-dev --yolo -w

  • Load skill chuyên biệt (-s)
  • Bật YOLO mode để tự động duyệt lệnh (--yolo)
  • Tự tạo worktree (-w)
  • Nhân lên 12 lần bằng cách mở trong 12 terminal
  • Tất cả chạy song song, cùng model (Opus 4.7), cùng agent.

Đây không phải lý thuyết — đây là quy trình thực tế đã xây dựng nên một trong những repository nổi tiếng nhất trên GitHub.

Nous Research đã áp dụng cho:

  • Đội backend dùng để điều tra và phân tích log hệ thống từ nhiều nguồn dữ liệu lớn;
  • Đội post-training dùng để tạo môi trường RL mới, xây dựng benchmark và xử lý dataset.

Hãy tham gia group Khám phá Hermes Agent: https://www.facebook.com/groups/hermes.agent.vn để cùng trao đổi và học hỏi.

Danh sách bài viết series Hermes Agent:

Tham gia ngay group trên Facebook để cùng thảo luận với đồng bọn nhé:

Khám phá Hermes Agent