跳到主要内容

Windows 安装

安装遇到困难?

点击加入 中文社区微信群,提问并获取群内大佬帮助。

如果你主要在 Windows 上使用 Hermes Agent,这一页就是给你的。重点只有一句话:Windows 和类 Linux / macOS 的安装命令不一样。

先决定走哪条路径

路径适合谁推荐程度你要运行的命令
WSL2 + Ubuntu想要最稳的日常使用体验,希望尽量贴近官方文档、终端工具和自动化工作流强烈推荐在 WSL2 里运行 install.sh
原生 PowerShell想先在 Windows 本机快速跑起来,不想先配置 WSL2可用,但更容易遇到兼容性问题在 PowerShell 里运行 install.ps1
推荐结论
  • 长期使用 / 工具链完整 / 网关与自动化更省心:优先选 WSL2
  • 只是想先在 Windows 本机跑通 CLI:可以直接用 PowerShell
中国大陆网络环境提示

如果你在中国大陆安装 Hermes,可能会遇到 raw.githubusercontent.com、PyPI、Node.js 下载或 npm registry 较慢的问题。站内不直接展开写代理/镜像配置步骤,建议直接参考这些外链:

第一步:在管理员 PowerShell 中安装 WSL2

如果你还没装过 WSL,建议先看这篇中文帖子:

然后再执行:

wsl --install -d Ubuntu

执行后按提示重启电脑。重启完成后,打开 Ubuntu,设置 Linux 用户名和密码。

第二步:在 WSL2 终端里运行 Linux 安装命令

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装完成后,重新加载 shell:

source ~/.bashrc   # 或:source ~/.zshrc
hermes

第三步:继续配置模型

hermes model
hermes setup

如果你只是需要一个最稳的 Windows 版本 Hermes,做到这里就够了。后续文档默认也更偏向这条路径。

如果你的模型跑在 Windows 主机上

例如 Ollama、LM Studio 跑在 Windows 本机,而 Hermes 跑在 WSL2 中,这时 localhost 不一定直接可用。请继续看 提供商文档里的 WSL2 网络配置

方案二:原生 PowerShell(可用,但更容易踩坑)

一键安装

PowerShell 中运行:

irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

这个安装器会自动尝试处理:

  • uv
  • Python 3.11
  • Node.js
  • Git
  • ripgrep / ffmpeg
  • Hermes 本体与虚拟环境

安装完成后,关闭并重新打开 PowerShell,再运行:

hermes
hermes model

原生 Windows 安装后文件大致在哪里

默认安装目录通常在:

%LOCALAPPDATA%\hermes

例如:

  • Hermes 主目录:%LOCALAPPDATA%\hermes
  • 仓库目录:%LOCALAPPDATA%\hermes\hermes-agent
  • 虚拟环境:%LOCALAPPDATA%\hermes\hermes-agent\venv

如果 hermes 命令暂时不可用,最常见的解决方法就是:关掉当前 PowerShell 窗口,再开一个新的。

飞书接入:Windows 用户最容易踩的坑

这一节参考并改写自阿里云文章《Windows 也能跑 Hermes Agent!完整安装教程 + 飞书接入,全程避坑》。为了避免直接照抄,这里只保留最关键的结论和更稳的写法。

1. 先完成 Hermes 本体安装,再单独配置网关

hermes gateway setup

在渠道列表中选择 飞书,填入:

  • App ID
  • App Secret
  • 国内版填 feishu,海外版填 lark
  • 连接方式一般先用默认的 websocket

然后再启动网关:

hermes gateway run -vv

2. 如果报 lark-oapi 未安装

原生 Windows 下,飞书 SDK 有时没有被装进 Hermes 自己的虚拟环境。可以这样补装:

$hermesExe = (Get-Command hermes).Source
$venvPython = Join-Path (Split-Path $hermesExe -Parent) 'python.exe'
uv pip install lark-oapi --python $venvPython

如果你还缺 websocketsaiohttp,也可以用同样方式补进去:

uv pip install websockets aiohttp --python $venvPython

3. 如果网关一启动就退出,或看到 WinError 11

阿里云文章里提到,某些 Windows 环境下,gateway/status.py 里的 os.kill(pid, 0) 检查会触发 WinError 11,导致网关异常退出。这是原生 Windows 路径的兼容性问题,不是 WSL2 的常见问题。

如果你正好遇到这个问题,有两种选择:

  1. 最省心的办法:改走 WSL2。
  2. 继续坚持原生 PowerShell: 按阿里云文章中的思路,对 gateway/status.py 做临时补丁,把 OSError 也纳入异常捕获。

下面这段 PowerShell 会自动定位文件并打补丁:

$hermesExe = (Get-Command hermes).Source
$installRoot = Split-Path (Split-Path $hermesExe -Parent) -Parent
$statusPy = Join-Path $installRoot 'gateway\status.py'

$content = Get-Content $statusPy -Raw -Encoding UTF8
$content = $content.Replace(
'except (ProcessLookupError, PermissionError):',
'except (ProcessLookupError, PermissionError, OSError):'
)
Set-Content $statusPy $content -Encoding UTF8 -NoNewline

然后重新启动:

$env:PYTHONUTF8 = '1'
hermes gateway run -vv
注意

这是 原生 Windows 专用的临时规避方案。如果你希望少踩坑,仍然建议优先回到 WSL2。

4. 飞书群里 @ 机器人没反应

先确认两件事:

  1. 飞书开放平台里的机器人权限和事件订阅已经配好。
  2. 你已经启动了网关,并用 hermes gateway run -vv 看到了正常日志。

如果日志没报错,但群里依然不响应,可以先把群策略放宽为 open 进行排查:

Add-Content "$env:LOCALAPPDATA\hermes\.env" "`nFEISHU_GROUP_POLICY=open" -Encoding UTF8

然后重新运行:

$env:PYTHONUTF8 = '1'
hermes gateway run -vv

如果这样能恢复,再回头逐步收紧白名单配置。

  1. 先决定用 WSL2 还是 原生 PowerShell
  2. 安装完成后,先用 hermeshermes model 验证 CLI 与模型配置。
  3. 再去接飞书、微信、Telegram 等消息网关。
  4. 如果你要连接本地模型、Docker、浏览器自动化或各种 shell 工具,优先回到 WSL2 路径。

补充阅读