跳到主要內容

更新與卸載

更新

通過一條命令即可更新到最新版本:

hermes update

此命令會拉取最新代碼,更新依賴項,並提示你配置自上次更新以來新增的任何選項。

提示

hermes update 會自動檢測新增的配置選項,並提示你添加。如果你跳過了該提示,可以手動運行 hermes config check 來查看缺失的選項,然後運行 hermes config migrate 以交互方式添加它們。

更新期間發生的情況

當你運行 hermes update 時,將執行以下步驟:

  1. Git 拉取 — 從 main 分支拉取最新代碼,並更新子模塊
  2. 依賴安裝 — 運行 uv pip install -e ".[all]" 以獲取新增或更改的依賴項
  3. 配置遷移 — 檢測自你當前版本以來新增的配置選項,並提示你設置它們
  4. 網關自動重啟 — 如果網關服務正在運行(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 處理了主要的更新流程,但快速驗證可確保一切順利落地:

  1. git status --short — 如果工作樹意外處於非乾淨狀態,請檢查後再繼續
  2. hermes doctor — 檢查配置、依賴項和服務健康狀況
  3. hermes --version — 確認版本號已按預期更新
  4. 如果你使用網關:hermes gateway status
  5. 如果 doctor 報告 npm 審計問題:在標記的目錄中運行 npm audit fix
更新後工作樹處於髒狀態

如果 git status --shorthermes 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