Windows 也能跑 Hermes Agent!完整安装教程 + 飞书接入,全程避坑

一、一键安装

打开 PowerShell(建议以管理员身份运行),执行以下命令:

powershell 复制代码
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

脚本会自动检测并安装 Python、Node.js、Git、ripgrep 等所有依赖,耐心等待即可。

二、初始配置

安装完成后会自动进入配置向导,直接选第一项 Quick setup(推荐新手使用)。

2.1 配置模型供应商

根据自己的情况选择模型供应商,本文以 Kimi 为例。

2.2 跳过消息平台配置

向导中的消息平台列表暂时没有飞书选项,直接跳过,后续通过 Gateway 单独配置。

接下来的自动化配置步骤,输入 Y 确认即可。

看到欢迎界面,说明安装成功。

2.3 ⚠️ 坑一:模型未被识别

安装完成后可能会发现模型没有被正确识别,如下图所示:

这个问题不确定是否与 Windows 环境有关,解决方式很简单------使用内置命令 /model 手动指定模型,看到模型名称正确显示即代表设置成功。

三、接入飞书

3.1 创建飞书机器人应用

前往飞书开放平台新建一个机器人应用,配置流程和我写的那篇小龙虾的安装教程完全一致,不熟悉的同学可以先去参考那篇,这里不再重复。

3.2 配置 Gateway

新开一个 PowerShell 终端,执行以下命令进入 Gateway 配置流程:

powershell 复制代码
hermes gateway setup

在渠道列表中选择 飞书。

依次填入飞书应用的 App ID 和 App Secret。

其余选项说明如下:

  • 来源 :国内版填 feishu,海外版填 lark
  • 连接方式 :默认 websocket,直接回车即可
  • 允许的 User ID :留空;在下一步鉴权中输入 1(不限制对话人),这样群里所有人都可以与机器人交互。如果有更严格的权限需求,可以按需填写。

配置完成后确认界面内容,选择 Done 保存。

3.3 ⚠️ 坑二:缺少 lark-oapi 依赖

运行 hermes gateway 启动网关时,Windows 下大概率会报错,原因是 Hermes 的 venv 里缺少飞书 SDK lark-oapi。

由于 hermes gateway 使用的是其内置 venv 中的 Python,需要将依赖装进对应的 venv,而不是系统环境:

powershell 复制代码
# 第一步:找到 Hermes 可执行文件的位置,从而定位 venv 路径
Get-Command hermes | Select-Object -ExpandProperty Source

# 第二步:确认 venv 的 Scripts 目录结构
ls "C:\Users\10371\AppData\Local\hermes\hermes-agent\venv\Scripts"

# 第三步:用 uv 将 lark-oapi 安装进 venv
uv pip install lark-oapi --python "C:\Users\10371\AppData\Local\hermes\hermes-agent\venv\Scripts\python.exe"

⚠️ 注意:请将上方路径中的 <用户名> 替换为你自己的 Windows 用户名,下文同理。

四、消息不响应?逐步排查与修复

重新运行 hermes gateway 后,如果去群里 @ 机器人却没有任何响应,请按以下顺序排查。

第一步:先检查飞书机器人的权限配置是否完整,参考「小龙虾」那篇教程中的权限清单逐一核对。

第二步:如果权限没问题,则很可能是以下两个 Windows 兼容性问题,按顺序修复即可。

4.1 ⚠️ 坑三:status.py 的 Windows 兼容性 Bug

问题根源: status.py 中使用 os.kill(pid, 0) 检查进程是否存活,但在 Windows 上这个调用会抛出 WinError 11,而原始代码没有捕获这个异常,导致整个 Gateway 进程异常退出。

修复方案: 将 OSError 加入异常捕获范围,使 WinError 11 被视为"进程不存在"(即锁已过期)来处理。

在 PowerShell 中运行以下 patch 命令:

powershell 复制代码
python -c "
path = r'C:\Users\10371\AppData\Local\hermes\hermes-agent\gateway\status.py'
with open(path, 'r', encoding='utf-8') as f:
    content = f.read()
content = content.replace(
    'except (ProcessLookupError, PermissionError):',
    'except (ProcessLookupError, PermissionError, OSError):'
)
with open(path, 'w', encoding='utf-8') as f:
    f.write(content)
print('Done')
"

验证 patch 是否生效:

powershell 复制代码
python -c "
path = r'C:\Users\10371\AppData\Local\hermes\hermes-agent\gateway\status.py'
with open(path, encoding='utf-8') as f:
    for i, line in enumerate(f, 1):
        if 'OSError' in line:
            print(f'Line {i}: {line.rstrip()}')
"

输出中出现 OSError 即说明 patch 已生效。

顺手修复日志编码问题(可选): Gateway 日志中的 Unicode 符号在 Windows 下可能显示乱码,启动时加上以下环境变量即可解决:

ini 复制代码
$env:PYTHONUTF8 = "1"
hermes gateway

4.2 ⚠️ 坑四:config.yaml 缺少飞书配置段

如果 patch 后机器人依然没有响应,检查 config.yaml 会发现里面根本没有 feishu 配置段。

问题出在消息拦截的两道关卡上:

第一道(Policy Gate): FEISHU_GROUP_POLICY 默认值为 allowlist,但 FEISHU_ALLOWED_USERS 为空,导致所有消息在这一关就被丢弃,甚至不会走到 @ 检测逻辑。

第二道(Mention Gate): 即使通过了 Policy Gate,还需要验证 @ 的对象是否为当前 Bot,这依赖 Bot 的 open_id / user_id / name 已正确加载。

修复步骤:

首先,将 Policy 改为 open(允许所有人):

powershell 复制代码
Add-Content "$env:LOCALAPPDATA\hermes\.env" "`nFEISHU_GROUP_POLICY=open" -Encoding UTF8

同时修正 config.yaml 中错误的配置键:

powershell 复制代码
(Get-Content "$env:LOCALAPPDATA\hermes\config.yaml" -Raw -Encoding UTF8) `
  -replace "feishu:\r?\n  require_mention: false", "feishu:`n  default_group_policy: open" |
  Set-Content "$env:LOCALAPPDATA\hermes\config.yaml" -Encoding UTF8 -NoNewline

然后以详细日志模式重启 Gateway:

powershell 复制代码
$env:PYTHONUTF8 = "1"
hermes gateway run -vv

日志无报错即代表配置生效。

五、配置飞书事件订阅

最后一步:前往飞书开放平台,在应用的事件订阅 页面开启长连接模式。

完成后在飞书群里 @ 机器人,即可正常对话。

总结

至此,我们成功在 Windows 上完成了 Hermes Agent 的安装,并接入了飞书。整个过程踩了不少 Windows 兼容性的坑。如果大家有遇到其他问题,也欢迎在评论区留言交流!

相关推荐
王中阳Go2 分钟前
面到 harness 架构就卡住的人,多半是做过但没这么叫过
架构·go·agent
千木SilvaMux11 分钟前
3 款免费模型颁奖词实测:0.90 分冠军赢在哪
llm·api
frankzch12 分钟前
Claude 刷新量子电路最优:LLM 与评估器的进化循环怎么搭
人工智能·深度学习·机器学习·语言模型·量子计算
郝学胜_神的一滴13 分钟前
游戏设计:原型与开发 05:读懂动态层,理解玩家如何活在游戏世界
人工智能·程序员
用户66982954852915 分钟前
同一句话,粤语要贵 24%:我量了 236 对双语文档和 4 种写法
人工智能
阿屿20 分钟前
从零手搓 AI 伴侣:Java + 大模型 + 多模态的工程化踩坑实录
人工智能
const_qiu21 分钟前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
cubestudio24 分钟前
云原生分布式训练怎么调度才不浪费算力?CubeStudio 分布式训练与加速架构解析(CRD+Operator / gang 调度 / 亲和反亲和 / GPU 利用率 / 共享 GPU)
人工智能·云原生·gpu
老马识码25 分钟前
7541 万笔,2424 万美元:x402 真正解决了什么?
人工智能
大明二代26 分钟前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能