更新與卸載
更新
通過一條命令即可更新到最新版本:
hermes update
此命令會拉取最新代碼,更新依賴項,並提示你配置自上次更新以來新增的任何選項。
hermes update 會自動檢測新增的配置選項,並提示你添加。如果你跳過了該提示,可以手動運行 hermes config check 來查看缺失的選項,然後運行 hermes config migrate 以交互方式添加它們。
更新期間發生的情況
當你運行 hermes update 時,將執行以下步驟:
- Git 拉取 — 從
main分支拉取最新代碼,並更新子模塊 - 依賴安裝 — 運行
uv pip install -e ".[all]"以獲取新增或更改的依賴項 - 配置遷移 — 檢測自你當前版本以來新增的配置選項,並提示你設置它們
- 網關自動重啟 — 如果網關服務正在運行(Linux 上為 systemd,macOS 上為 launchd),在更新完成後將自動重啟,使新代碼立即生效
預期輸出如下:
$ 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 gateway service...
✅ Gateway restarted
✅ Hermes Agent updated successfully!
推薦的更新後驗證
hermes update 處理了主要的更新流程,但快速驗證可確保一切順利落地:
git status --short— 如果工作樹意外處於非乾淨狀態,請檢查後再繼續hermes doctor— 檢查配置、依賴項和服務健康狀況hermes --version— 確認版本號已按預期更新- 如果你使用網關:
hermes gateway status - 如果
doctor報告 npm 審計問題:在標記的目錄中運行npm audit fix
如果 git status --short 在 hermes update 後顯示意外更改,請停止並檢查這些更改。這通常意味著本地修改被重新應用到了更新後的代碼上,或某個依賴步驟刷新了鎖文件。
檢查當前版本
hermes version
與 GitHub 發佈頁面 上的最新版本進行對比,或檢查是否有可用更新:
hermes update --check
從消息平臺更新
你也可以通過發送以下內容直接從 Telegram、Discord、Slack 或 WhatsApp 進行更新:
/update
此操作會拉取最新代碼,更新依賴項,並重啟網關。機器人在重啟期間將短暫離線(通常為 5–15 秒),然後恢復運行。
手動更新
如果你是手動安裝的(非通過快速安裝器):
cd /path/to/hermes-agent
export VIRTUAL_ENV="$(pwd)/venv"
# 拉取最新代碼和子模塊
git pull origin main
git submodule update --init --recursive
# 重新安裝(選擇新的依賴項)
uv pip install -e ".[all]"
uv pip install -e "./tinker-atropos"
# 檢查新的配置選項
hermes config check
hermes config migrate # 交互式添加任何缺少的選項
回滾說明
如果更新引入了問題,你可以回滾到之前的版本:
cd /path/to/hermes-agent
# 列出最近版本
git log --oneline -10
# 回滾到特定提交
git checkout <commit-hash>
git submodule update --init --recursive
uv pip install -e ".[all]"
# 如果正在運行,請重新啟動 gateway
hermes gateway restart
要回滾到特定的發佈標籤:
git checkout v0.6.0
git submodule update --init --recursive
uv pip install -e ".[all]"
回滾可能導致配置不兼容,如果新增了配置選項。回滾後請運行 hermes config check,若遇到錯誤,請從 config.yaml 中移除任何無法識別的選項。
Nix 用戶注意事項
如果你通過 Nix flake 安裝,更新由 Nix 包管理器管理:
# 更新 flake 輸入
nix flake update hermes-agent
# 或者用最新的重建
nix profile upgrade hermes-agent
Nix 安裝是不可變的 —— 回滾由 Nix 的生成系統處理:
nix profile rollback
更多詳情請參見 Nix 設置。
卸載
hermes uninstall
卸載程序會提示你是否保留配置文件(~/.hermes/),以便將來重新安裝時使用。
手動卸載
rm -f ~/.local/bin/hermes
rm -rf /path/to/hermes-agent
rm -rf ~/.hermes # 可選 - 如果您打算重新安裝,請保留
如果你將網關作為系統服務安裝,請先停止並禁用它:
hermes gateway stop
# Linux: systemctl --user 禁用 hermes-gateway
# macOS:launchctl刪除ai.hermes.gateway