Cập nhật và gỡ cài đặt
Đang cập nhật
Cài đặt Git
Cập nhật lên phiên bản mới nhất chỉ bằng một lệnh:
Hermes update
`
``Thao tác này sẽ lấy mã mới nhất từ
`main
, cập nhật các phần phụ thuộc và nhắc bạn định cấu hình bất kỳ tùy chọn mới nào đã được thêm kể từ lần cập nhật gần đây nhất của bạn.
### số lượt cài đặt pip
PyPI phát hành theo dõi **phiên bản được gắn thẻ** (bản phát hành chính và phụ), không phải mọi cam kết trên
`main
. Kiểm tra các bản cập nhật và nâng cấp với:
`bash
Hermes update --check # see if a newer release is on PyPI
Hermes update # runs pip install --upgrade Hermes-agent
`
``Hoặc bằng tay:
`bash
pip install --upgrade Hermes-agent # or: uv pip install --upgrade Hermes-agent
`
:::tip
`Hermes update
` tự động phát hiện các tùy chọn cấu hình mới và nhắc bạn thêm chúng. Nếu bỏ qua lời nhắc đó, bạn có thể chạy
`Hermes config check
` theo cách thủ công để xem các tùy chọn bị thiếu, sau đó
`Hermes config migrate
` để thêm chúng một cách tương tác.
:::
### Điều gì xảy ra trong quá trình cập nhật (cài đặt git)
Khi bạn chạy
`Hermes update
, các bước sau sẽ xảy ra:
1. **Ảnh chụp nhanh dữ liệu ghép nối** — một ảnh chụp nhanh trạng thái trước khi cập nhật nhẹ được lưu (bao gồm
~/.Hermes/pairing/
, quy tắc nhận xét Feishu và các tệp trạng thái khác được sửa đổi trong thời gian chạy). Có thể phục hồi thông qua luồng khôi phục ảnh chụp nhanh được mô tả trong [Snapshots and rollback](../user-guide/checkpoints-and-rollback.md) hoặc bằng cách trích xuất zip ảnh chụp nhanh gần đây nhất mà Hermes đã viết bên cạnh thư mục
~/.Hermes/
` của bạn.
2. **Git pull** — lấy mã mới nhất từ nhánh
`main
` và cập nhật các mô-đun con
3. **Cài đặt phụ thuộc** — chạy
`uv pip install -e ".[all]"
` để nhận các phụ thuộc mới hoặc đã thay đổi
4. **Di chuyển cấu hình** — phát hiện các tùy chọn cấu hình mới được thêm kể từ phiên bản của bạn và nhắc bạn thiết lập chúng
5. **Tự động khởi động lại cổng** — các cổng đang chạy được làm mới sau khi cập nhật hoàn tất nên mã mới có hiệu lực ngay lập tức. Các cổng được quản lý dịch vụ (systemd trên Linux, launchd trên macOS) được khởi động lại thông qua trình quản lý dịch vụ. Các cổng thủ công được tự động khởi chạy lại khi Hermes có thể ánh xạ PID đang chạy trở lại một cấu hình.
### Chỉ xem trước:
`Hermes update --check
``Bạn muốn biết liệu có bản cập nhật nào trước khi kéo không? Chạy
`Hermes update --check
- để cài đặt git, nó sẽ tìm nạp và so sánh các cam kết với
`origin/main
; để cài đặt pip, nó truy vấn PyPI để có bản phát hành mới nhất. Không có tập tin nào được sửa đổi, không có cổng nào được khởi động lại. Hữu ích trong các tập lệnh và công việc định kỳ yêu cầu "có bản cập nhật" hay không.
### Sao lưu đầy đủ trước khi cập nhật:
--backup
``Đối với các cấu hình có giá trị cao (cổng sản xuất, cài đặt nhóm dùng chung), bạn có thể chọn tham gia bản sao lưu kéo trước đầy đủ của
`Hermes_HOME
` (cấu hình, xác thực, phiên, kỹ năng, ghép nối):
``` bash
Hermes update --backup
`
``Hoặc đặt nó làm mặc định cho mỗi lần chạy:
`YAML
# ~/.Hermes/config.yaml
updates:
pre_update_backup: true
`
--backup
` là chế độ luôn bật trong các bản dựng trước đó nhưng nó đã bổ sung thêm số phút cho mỗi bản cập nhật trên những ngôi nhà lớn nên giờ đây nó được chọn tham gia. Ảnh chụp nhanh dữ liệu ghép nối nhẹ ở trên vẫn chạy vô điều kiện.
### Windows: một
`Hermes.exe
` khác đang chạy
Trên Windows,
`Hermes update
` sẽ từ chối chạy nếu phát hiện một quy trình
`Hermes.exe
` khác đang mở tệp thực thi điểm vào của venv — phổ biến nhất là phần phụ trợ được sinh ra của ứng dụng Hermes Desktop,
`Hermes
` REPL đang mở trong một terminal khác hoặc một cổng đang chạy:
`
$ Hermes update
✗ Another Hermes.exe is running:
PID 12345 Hermes.exe
Updating now would fail to overwrite ...\venv\Scripts\Hermes.exe because
Windows blocks REPLACE on a running executable.
Close Hermes Desktop, exit any open
`Hermes
` REPLs, and
stop the gateway (
`Hermes gateway stop
) before retrying.
Override with
`Hermes update --force
` if you've already
confirmed those processes will not write to the venv.
`
``Đóng các quy trình được liệt kê và chạy lại. Nếu bạn chắc chắn rằng quy trình đồng thời sẽ không can thiệp (hiếm - thường chỉ hữu ích khi miếng chêm chống vi-rút bị phân bổ sai), hãy chuyển
--force
` để bỏ qua kiểm tra. Trong trường hợp đó, trình cập nhật sẽ vẫn thử lại việc đổi tên
.exe
` với thời gian chờ theo cấp số nhân và đối với các khóa cứng đầu, hãy lên lịch thay thế cho lần khởi động lại tiếp theo thông qua
`MoveFileEx(MOVEFILE_DELAY_UNTIL_REBOOT)
` để quá trình cập nhật có thể hoàn tất.
Sản lượng dự kiến có dạng:
`
$ Hermes update
Updating Hermes Agent...
📥 Pulling latest code...
Already up to date. (or: Updating abc1234..def5678)
📦 Updating dependencies...
✅ Dependencies updated
🔍 Checking for new config options...
✅ Config is up to date (or: Found 2 new options — running migration...)
🔄 Restarting gateways...
✅ Gateway restarted
✅ Hermes Agent updated successfully!
`
### Xác thực sau cập nhật được đề xuất``Hermes update
` xử lý đường dẫn cập nhật chính, nhưng xác thực nhanh sẽ xác nhận mọi thứ đã được hạ cánh một cách rõ ràng:
1.
`git status --short
` — nếu cây bị bẩn bất ngờ, hãy kiểm tra trước khi tiếp tục
2.
`Hermes doctor
` — kiểm tra cấu hình, các phần phụ thuộc và tình trạng dịch vụ
3.
`Hermes --version
- xác nhận phiên bản bị lỗi như mong đợi
4. Nếu bạn sử dụng cổng:
`Hermes gateway status
5. Nếu
`doctor
` báo cáo các vấn đề kiểm tra npm: hãy chạy
`npm audit fix
` trong thư mục được gắn cờ
:::warning[Dirty working tree after update]
Nếu
`git status --short
` hiển thị những thay đổi không mong muốn sau
`Hermes update
, hãy dừng và kiểm tra chúng trước khi tiếp tục. Điều này thường có nghĩa là các sửa đổi cục bộ đã được áp dụng lại trên đầu mã đã cập nhật hoặc các tệp khóa được làm mới ở bước phụ thuộc.
:::### Nếu terminal của bạn ngắt kết nối giữa quá trình cập nhật``Hermes update
` tự bảo vệ khỏi mất terminal do tai nạn:
- Bản cập nhật bỏ qua
`SIGHUP
, do đó, việc đóng phiên SSH hoặc cửa sổ đầu cuối của bạn sẽ không còn tắt nó trong khi cài đặt nữa. Các tiến trình con
`pip
` và
`git
` kế thừa sự bảo vệ này, do đó môi trường Python không thể được cài đặt một nửa do kết nối bị ngắt.
- Tất cả đầu ra được phản chiếu sang
~/.Hermes/logs/update.log
` trong khi chạy bản cập nhật. Nếu terminal của bạn biến mất, hãy kết nối lại và kiểm tra nhật ký để xem liệu quá trình cập nhật đã kết thúc hay chưa và quá trình khởi động lại cổng có thành công hay không:
``` bash
tail -f ~/.Hermes/logs/update.log
`
-
`Ctrl-C
` (SIGINT) và tắt hệ thống (SIGTERM) vẫn được tôn trọng — đó là những sự hủy bỏ có chủ ý chứ không phải tai nạn.
Bạn không còn cần phải bọc
`Hermes update
` trong
`screen
` hoặc
`tmux
` để tồn tại khi bị rơi ở terminal.
### Kiểm tra phiên bản hiện tại của bạn
`bash
Hermes version
`
``So sánh với bản phát hành mới nhất tại [GitHub releases page](https://GitHub.com/NousResearch/Hermes-agent/releases).
### Cập nhật từ Nền tảng nhắn tin
Bạn cũng có thể cập nhật trực tiếp từ Telegram, Discord, Slack, WhatsApp hoặc Teams bằng cách gửi:
`
/update
`
``Thao tác này sẽ lấy mã mới nhất, cập nhật các phần phụ thuộc và khởi động lại các cổng đang chạy. Bot sẽ ngoại tuyến trong thời gian ngắn khi khởi động lại (thường là 5–15 giây) rồi tiếp tục lại.
### Cập nhật thủ công
Nếu bạn cài đặt thủ công (không thông qua trình cài đặt nhanh):
`bash
cd /path/to/Hermes-agent
export VIRTUAL_ENV="$(pwd)/venv"
# Pull latest code
git pull origin main
# Reinstall (picks up new dependencies)
uv pip install -e ".[all]"
# Check for new config options
Hermes config check
Hermes config migrate # Interactively add any missing options
`
### Hướng dẫn khôi phục
Nếu bản cập nhật gây ra sự cố, bạn có thể quay lại phiên bản trước:
`bash
cd /path/to/Hermes-agent
# List recent versions
git log --oneline -10
# Roll back to a specific commit
git checkout <commit-hash
git submodule update --init --recursive
uv pip install -e ".[all]"
# Restart the gateway if running
Hermes gateway restart
`
``Để quay lại thẻ phát hành cụ thể:
`bash
git checkout v0.6.0
git submodule update --init --recursive
uv pip install -e ".[all]"
`
:::warning
Việc quay lại có thể gây ra sự không tương thích về cấu hình nếu các tùy chọn mới được thêm vào. Chạy
`Hermes config check
` sau khi quay lại và xóa mọi tùy chọn không được nhận dạng khỏi
`config.yaml
` nếu bạn gặp lỗi.
:::
### Lưu ý dành cho người dùng Nix
Nếu bạn cài đặt qua Nix, các bản cập nhật sẽ được quản lý thông qua trình quản lý gói Nix:
``` bash
# Update the flake input
nix flake update Hermes-agent
# Or rebuild with the latest
nix profile upgrade Hermes-agent
`
``Quá trình cài đặt Nix là bất biến - việc khôi phục được xử lý bởi hệ thống tạo của Nix:
``` bash
nix profile rollback
`
``Xem [Nix Setup](./nix-setup.md) để biết thêm chi tiết.
---
## Đang gỡ cài đặt
### Cài đặt Git
`bash
Hermes uninstall
`
``Trình gỡ cài đặt cung cấp cho bạn tùy chọn giữ lại các tệp cấu hình của bạn (
~/.Hermes/
) để cài đặt lại trong tương lai.
### số lượt cài đặt pip
`bash
pip uninstall Hermes-agent
rm -rf ~/.Hermes # Optional — keep if you plan to reinstall
`
### Gỡ cài đặt thủ công
`bash
rm -f ~/.local/bin/Hermes
rm -rf /path/to/Hermes-agent
rm -rf ~/.Hermes # Optional — keep if you plan to reinstall
`
:::info
Nếu bạn đã cài đặt cổng làm dịch vụ hệ thống, trước tiên hãy dừng và tắt cổng này:
`
`bash
Hermes gateway stop
# Linux: systemctl --user disable Hermes-gateway
# macOS: launchctl remove ai.Hermes.gateway
`
:::