
Hermes Windows 本地部署与 Agent 进化指南适用环境Windows 11原生非 Docker、非 WSL编写日期2026-07-06目录安装配置 LLM以 DeepSeek 为例打开 Web 界面与之对话配置 Hermes 作为 MCP Server与 OpenClaw 集成让 Hermes 成为真正的 Agent1. 安装1.1 环境要求项目要求说明Python≥ 3.11实测 3.11.x 最稳定3.14 可能有兼容问题Node.js≥ 18可选Web UI 构建需要纯 CLI 可跳过磁盘≥ 5GB 空闲主要是模型缓存和技能库网络能访问外网国内用户需配置代理1.2 安装方式二选一方式 Apip 安装推荐# 确保 pip 是最新版python-m pip install--upgrade pip# 安装 Hermespip install hermes-agent方式 Buv 安装更快# 先装 uvpowershell-ExecutionPolicy ByPass-cirm https://astral.sh/uv/install.ps1 | iex# 用 uv 装 Hermesuv pip install hermes-agent1.3 验证安装# 查看版本hermes--version# 运行诊断hermes doctor如果hermes命令找不到检查 Python Scripts 目录是否在 PATH 中# 典型路径C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\Scripts\1.4 HERMES_HOME 说明Hermes 的所有数据配置、记忆、技能、日志默认存储在~/.hermes/。重要如果设置了环境变量HERMES_HOME则使用该路径替代。检查当前值echo %HERMES_HOME%建议设到 D 盘避免占 C 盘空间# 设置环境变量用户级别setx HERMES_HOMED:\AI\Hermes\data设置后需要重新打开终端生效。1.5 安装后的目录结构%HERMES_HOME%/ ├── config.yaml # 主配置文件 ├── .env # API Key 等敏感信息绝不提交到 git ├── SOUL.md # 智能体人格/身份定义 ├── skills/ # 技能库核心 ├── memories/ │ ├── MEMORY.md # 长期记忆 │ └── USER.md # 用户画像 ├── logs/ # 运行日志 ├── sessions/ # 会话记录 ├── state.db # SQLite 会话存储 └── plugins/ # 插件2. 配置 LLM以 DeepSeek 为例2.1 获取 API Key访问 DeepSeek 开放平台注册/登录 → API Keys → 创建新的 API Key复制 key格式sk-xxxxxxxxxxxxxxxx2.2 写入 API Key# 写入 .env 文件echoDEEPSEEK_API_KEYsk-你的key %HERMES_HOME%\.env⚠️ 关键细节.env文件必须放在%HERMES_HOME%目录下不是~/.hermes/。即使hermes gateway setup的输出说存储在 ~/.hermes/.env实际读取的也是%HERMES_HOME%/.env。2.3 配置 DeepSeek 为默认模型# 设置提供商为 deepseekhermes configsetmodel.provider deepseek# 设置 API 端点DeepSeek 国内可直接访问hermes configsetmodel.base_url https://api.deepseek.com/v1# 设置默认模型hermes configsetmodel.default deepseek-v4-flash# 设置上下文长度hermes configsetmodel.context_length 1310722.4 同时配置备用提供商推荐避免 DeepSeek 挂了后 Hermes 无法工作# 如果已有阿里云百炼 API Keyhermes configsetproviders.alibaba.base_url https://dashscope.aliyuncs.com/compatible-mode/v1echoDASHSCOPE_API_KEYsk-你的阿里key %HERMES_HOME%\.env2.5 验证配置# 运行诊断hermes doctor# 发一条测试消息hermes chat-q你好你是谁请用中文回答--quiet如果测试失败常见原因.env路径不对 → 检查%HERMES_HOME%\.env是否存在API Key 过期 → 去 DeepSeek 平台重新生成网络问题 → 国内能否直连api.deepseek.com3. 打开 Web 界面与之对话Hermes 提供三种使用界面按推荐度排序3.1 Web Dashboard推荐这是功能最全的管理界面集聊天、配置、技能管理于一体。# 启动 Web Dashboard默认 127.0.0.1:9119hermes dashboard首次启动可能需要构建前端等待 1-2 分钟[12:34:56] Building web UI... (this may take a while on first run) [12:35:30] ✓ Web UI built [12:35:31] Dashboard → http://127.0.0.1:9119用浏览器打开http://127.0.0.1:9119你会看到页面功能Chat核心对话界面和 Hermes 聊天Sessions浏览/管理历史会话Models切换模型和提供商Config实时修改配置Skills浏览/安装/管理技能MCP管理 MCP 服务器连接Cron创建定时任务Webhooks配置 Webhook 触发Logs实时查看日志Profiles多配置文件管理常用参数# 指定端口如果 9119 被占用hermes dashboard--port 9120# 加速启动跳过前端构建适合已经构建过一次后hermes dashboard--skip-build3.2 命令行 TUI轻量不想开浏览器时直接命令行# 交互模式默认hermes# 单条查询hermes chat-q写一个 Python 快速排序--quiet快捷键CtrlC— 中断当前回复/new— 新建会话/model— 切换模型/help— 查看所有斜杠命令/voice on— 开启语音模式3.3 桌面 AppElectron# 构建并启动桌面 Apphermes desktop# 或者hermes gui桌面 App 适合需要原生桌面体验的用户但首次构建耗时较长。4. 配置 Hermes 作为 MCP Server与 OpenClaw 集成将 Hermes 以 MCP Server 模式暴露给外部 MCP Client如 OpenClaw实现跨智能体通信。⚠️注意hermes mcp serve原生暴露的是消息通信工具对话、发信、审批不是 Hermes 的 Agent 核心工具terminal、file、memory 等。要调用 Hermes 的 Agent 工具需自定义 Python 桥。两者不冲突可以并存。适用场景你有一个 MCP Client如 OpenClaw想通过 MCP 协议操作 Hermes 的工具(执行操作)或消息平台读取对话、发送消息等。4.1 架构说明OpenClawMCP Client │ ├── hermes-tools自定义 Python 桥 / stdio │ ├─ hermes_terminal → 执行 Shell 命令 │ ├─ hermes_file_* → 文件读写搜索 │ ├─ hermes_skills_* → 技能管理 │ ├─ hermes_memory_* → 长期记忆 │ ├─ hermes_web_search → 网页搜索 │ ├─ hermes_info → 环境信息 │ └─ hermes_doctor → 诊断 │ └── hermes-nativeHermes 原生 MCP Server / stdio ├─ messages_send → 发送消息 ├─ messages_read → 读取消息 ├─ conversations_list → 列出会话 ├─ conversation_get → 查看会话详情 ├─ attachments_fetch → 获取附件 ├─ channels_list → 列出消息渠道 ├─ events_poll / wait → 轮询/等待事件 ├─ permissions_list_open → 待审批列表 └─ permissions_respond → 响应审批⚠️注意hermes mcp serve原生暴露的是消息通信工具对话、发信、审批而不是 Hermes 的 Agent 核心工具terminal、file、memory 等。两者用途不同不能互相替代。详情见 4.5 节。4.2 方式一手动配置Step 1将 Hermes MCP Server 添加到 OpenClaw 配置OpenClaw 的配置存储在C:\Users\你的用户名\.openclaw\openclaw.json。通过 Python 脚本直接编辑python-c import json path C:/Users/用户名/.openclaw/openclaw.json with open(path, r, encodingutf-8-sig) as f: d json.load(f) d[mcp][servers][hermes-native] { command: D:\\AI\\Hermes\\agent\\venv\\Scripts\\hermes.exe, args: [mcp, serve], timeout: 300 } with open(path, w, encodingutf-8) as f: json.dump(d, f, indent2, ensure_asciiFalse) print(OK) Step 2重新加载 MCP 配置openclaw mcp reloadStep 3验证工具列表# 查看所有已配置的 MCP 服务器openclaw mcp list# 探测新服务器的工具清单openclaw mcp probe hermes-native# 期望输出hermes-native: 10 tools, resources, prompts补充这种方式添加的是 stdio 模式的 MCP ServerHermes 作为子进程启动通过标准输入/输出通信。hermes mcp serve不支持 HTTP/SSE 模式。Step 4在 AGENTS.md 中添加提示可选如果希望 OpenClaw 知道可以调用 Hermes 的通信工具在AGENTS.md中补充### Hermes 消息工具hermes-native 通过 Hermes 原生 MCP Server 连接到她的消息平台可以读取对话、发送消息。4.3 方式二让 Hermes 自己配置一句话搞定如果你已经在 Hermes 的对话界面里直接对它说“请以 MCP Server 模式启动暴露你的消息工具。然后输出添加方法和连接信息方便 OpenClaw 连接。”Hermes 会启动hermes mcp serve并返回连接指引。4.4 验证连接成功在 OpenClaw 侧发一条消息测试注意用的是 Hermes 的消息工具不是 Shell 命令“请通过 Hermes 的消息工具查看当前有哪些活跃的对话会话”如果返回了对话列表说明集成成功。4.5 两种 MCP 通道的对比当前环境下存在两个 MCP Server用途完全不同对比维度hermes-tools自定义 Python 桥hermes-nativeHermes 原生 MCP用途调用 Hermes 的 Agent 核心工具通过 Hermes 收发消息暴露工具类型terminal、file、skills、memory、web_search、info、doctorconversations、messages、events、channels、permissions工具数量12 个10 个能否调用 Hermes 干活✅ 能执行命令、读写文件、管理技能❌ 不能只有消息相关操作能否收发 IM 消息❌ 不能✅ 能接 Hermes 的消息平台通信协议stdio子进程stdio子进程启动命令python hermes_tools_mcp_server.pyhermes mcp serve需常驻进程按需拉起用完即撤按需拉起用完即撤是否替换对方—❌ 不能结论两者各司其职。需要 Hermes 干活 →hermes-tools需要读写 Hermes 的消息平台 →hermes-native。建议两个都留着。4.6 踩坑点openclaw mcp add的 size-drop 问题直接openclaw mcp add写入配置时可能因配置完整性校验失败size-drop 保护。推荐用openclaw mcp set JSON 字符串或直接 Python 脚本编辑openclaw.jsonopenclaw.json 含 UTF-8 BOM用 Python 编辑时必须指定encodingutf-8-sig读取否则 JSON 解析报错配置修改后需 reloadopenclaw mcp reload让新会话生效当前会话的 MCP 运行时不受影响hermes mcp serve不暴露 Agent 核心工具它只暴露消息通信工具不能替代hermes-tools桥。不要指望用它来执行 Shell 命令或操作文件5. 让 Hermes 成为真正的 Agent核心思路一个真正的 Agent不是聊天机器人是有记忆、有身份、能从经验中学习、能自我迭代工具能力的智能体。Hermes 原生就具备这些能力的基础设施关键是你怎么用。下面逐步展开。5.1 第一步定义身份SOUL.mdSOUL.md是 Hermes 的灵魂——每次对话都会加载定义它的身份和行为基调。初始状态安装后 SOUL.md 几乎是空的只有占位注释。你需要做的写入真正的身份定义。# Hermes 的灵魂 你是 Hermes一个自主 AI 智能体。 ## 核心价值观 - **实事求是** — 不确定的事必须查源码或文档验证不编造不猜测 - **持续进化** — 每次犯错都是一次学习机会把教训转化为技能 - **主动负责** — 发现问题主动修复不等人指挥 ## 行为准则 1. 遇到 Unknown/错误时先查日志和文档不行就问 2. 每解决一个新问题评估是否值得写成技能 3. 定期审视自己的记忆清理过时信息 4. 输出要简洁直接3000 字以内不打官腔设置方法Web Dashboard → Config → 编辑SOUL.md或者直接编辑%HERMES_HOME%\SOUL.md效果每次新会话都会加载 SOUL.mdHermes 的行为会以它为基础。5.2 第二步建立长期记忆系统Hermes 的内存系统已经内置# config.yaml 中的默认配置memory:memory_enabled:true# 启用长期记忆user_profile_enabled:true# 启用用户画像memory_char_limit:2200# 记忆上限字符user_char_limit:1375# 用户画像上限nudge_interval:10# 每隔 N 轮提醒 Hermes 更新记忆flush_min_turns:6# 最少 N 轮才写入一次你要做的事情a) 教会 Hermes 记住你在对话中直接说“记住我习惯用 PowerShell 不是 cmd”“记住我喜欢中文回复接地气的风格”“记录一下我的 Windows 用户名是 86150工作区在 D:\AI”Hermes 会自动把这些记到USER.md以后每次对话都会参考。b) 教会 Hermes 从错误中学习当 Hermes 犯错时用/remember纠正并让它写入记忆“你刚才犯了个错——你说 XX但实际上应该是 YY。请记住这个教训。”Hermes 会通过memory工具把它写入 MEMORY.md下次遇到类似场景会引以为戒。⚡关键机制config.yaml中evolution.error_learning: true已启用。这意味着 Hermes 在检测到工具调用失败或执行异常时会自动记录教训并可能生成新的技能。c) 定期审视记忆建议你每周检查一次“帮我整理一下记忆把过时的删掉重要的合并”5.3 第三步让 Hermes 自我迭代技能这是Agent 进化的核心。Hermes 有三种方式获取新能力方式一自动技能生成Auto Skill Generation# config.yaml — 已默认启用evolution:enabled:true# 进化系统总开关auto_skill_generation:true# 自动生成技能error_learning:true# 从错误中学习当 Hermes 完成一个复杂任务或反复解决同一类问题时它会评估这个任务是否值得保存为技能如果是自动生成SKILL.md写入skills/目录后续对话自动加载该技能提高效率自动生成技能的场景举例你教它如何访问某个 API → 它可能写成 API 工具技能它花了 10 步解决一个复杂问题 → 可能把流程保存为技能同一个操作你纠正了两次 → 可能生成一个防错技能方式二Curator技能管家# config.yaml — 已默认启用curator:enabled:trueinterval_hours:24# 每 24 小时检查一次consolidate:true# 合并相似技能min_idle_hours:4stale_after_days:21# 21 天未使用 → 标记为过时archive_after_days:42# 42 天未使用 → 归档Curator 是一个后台管家24 小时自动运行一次统计技能使用频率合并相似/重叠的技能归档长期不用的技能不删除可恢复备份技能库防止丢失你可以手动干预# 查看技能使用状态hermes curator status# 手动运行一次整理hermes curator run# 把重要技能固定住不被归档hermes curator pin skill-name方式三手动创建/安装技能# 从技能市场搜索安装hermes skills search微信hermes skills install id# 从 GitHub 源添加hermes skills tap add user/repo hermes skills install name5.4 第四步配置 Personality 体系Hermes 支持多角色切换目前已经预定义了 5 个角色personalities:technical:你是一位技术专家...creative:你是一个有创意的助手...skill-dev:# 待填充agent-expert:# 待填充dify-dev:# 待填充建议你填充空角色以agent-expert为例“你是一位 AI 智能体专家深谙各类 Agent 架构和框架。能用通俗语言解释复杂概念不打官腔。输出控制在 3000 字以内。”使用方式# 对话中切换/personality agent-expert# 设置默认hermes configsetdisplay.personality technical5.5 第五步完整进化循环把以上串联起来Hermes 的进化循环是┌─────────────────────────────────────────────────────┐ │ 进化飞轮 │ │ │ │ 你对话 ──→ Hermes 执行任务 ──→ 成功/失败 │ │ │ │ │ ▼ │ │ 经验记录到 MEMORY.md │ │ │ │ │ ┌────────────┴────────────┐ │ │ ▼ ▼ │ │ 自动生成技能 修正认知 │ │ (auto_skill_generation) (error_learning) │ │ │ │ │ └────────────┬────────────┘ │ │ ▼ │ │ Curator 整理/归档 │ │ (每 24h 自动) │ │ │ │ │ ┌───────┴───────┐ │ │ ▼ ▼ │ │ 常用技能保留 过时归档 │ │ │ │ │ ▼ │ │ 下次对话效率更高 │ └─────────────────────────────────────────────────────┘5.6 实战一个完整的培养周期以下是一周内的操作建议照着做就行了。第 1 天初始化[Step 1] 配置 SOUL.md按 4.1 写入身份定义 [Step 2] 告诉 Hermes 你的基本信息 → 记住我Windows 用户 86150D 盘工作区国内网络 [Step 3] 让它做第一件事 → 扫描一下我的电脑上有什么开发环境第 2-3 天训练与纠错[Step 4] 让 Hermes 执行实际任务 → 帮我检查一下 D 盘还剩多少空间 [Step 5] 如果它报了错误命令 → 纠正并让它记住 → 刚才的命令写错了应该用 Get-PSDrive 而不是 df [Step 6] 重复这个过程积累 5-10 次纠正第 4-5 天技能沉淀[Step 7] 查看 Hermes 自动生成了什么技能 → /curator status 或 hermes curator status [Step 8] 如果有自动生成的技能 → 审查质量 → hermes skills inspect skill-name [Step 9] 手动固定有用的技能 → hermes curator pin skill-name第 6-7 天复盘[Step 10] 检查记忆是否准确 → 帮我看看你记得关于我的信息 [Step 11] 清理过时记忆 → 我之前说的那个 XX 配置已经不用了删除吧 [Step 12] 让 Hermes 给自己写一份总结 → 总结一下这周你学会了什么生成一份技能报告5.7 验证你的 Agent 进化状态# 查看当前技能量hermes skills list|findstr/iskill# 查看记忆字节数hermes config|findstrmemory_char# 查看进化配置hermes config|findstr-A 3evolution# 查看 Curator 运行记录hermes curator status# 查看技能使用统计hermes insights--days 75.8 踩坑点问题原因解决记忆没被写入会话不够长少于 6 轮多聊几轮或手动/remember技能自动生成不活跃任务不够复杂给 Hermes 多步骤的复杂任务旧技能不消失手动 pin 了hermes curator unpin nameWeb UI 打不开端口被占用hermes dashboard --port 9120.env不生效路径不对确认在%HERMES_HOME%\.env5.9 禁止清单不要直接把生产环境的 API Key 写到 config.yaml放.env不要删除 skills/ 目录下的系统技能不要在 Hermes 还没积累足够经验时就期望它面面俱到不要让 Hermes 自动覆盖你手动创建的技能不要给max_turns设太高默认 150 够用太高浪费 token附录A. 常用命令速查用途命令启动 Web UIhermes dashboard交互式对话hermes单条查询hermes chat -q 问题查看配置hermes config编辑配置hermes config edit切换模型hermes model运行诊断hermes doctor查看技能hermes skills list安装技能hermes skills install id新建会话对话框内输入/new切换人格对话框内输入/personality name手动记住对话框内输入 “记住xxx”B. 目录参考默认路径 %USERPROFILE%\.hermes\ 自定义 %HERMES_HOME% 如 D:\AI\Hermes\data 技能目录 %HERMES_HOME%\skills\ 记忆文件 %HERMES_HOME%\memories\MEMORY.md 用户画像 %HERMES_HOME%\memories\USER.md 人格文件 %HERMES_HOME%\SOUL.md 日志目录 %HERMES_HOME%\logs\