一、前言:为什么要折腾 Hermes Agent

之前一直在用 OpenClaw,一个社区推动的 AI Agent 工具。后来发现 Nous Research 推出了 Hermes Agent——一个号称"越用越强"的自主 Agent,支持持久记忆、自动创建技能、跨会话学习,还能跑在 Telegram、Discord 等多个平台上。

作为一个爱折腾的人,当然想上手试试。但我有几个硬性要求,也正是这些要求,注定了这一路不会太平:

  • 不装 Docker(太占资源)

  • 不装 WSL(不想碰 Linux 子系统,Windows 原生能解决的事绝不开虚拟机)

  • 不占 C 盘(这是我的核心执念——C 盘一共就 256G,Windows 自己已经占了大半,任何新工具都必须安家在 D 盘)

  • 最好能用 CC Switch 统一管理(毕竟 Claude Code、Codex 都挂在里面)

说白了,我就是想在原生 Windows 上,把所有东西塞进 D 盘。如果愿意妥协,装个 WSL 或者 Docker 放 C 盘,这篇文章到这里就可以结束了。但既然选择了这条偏执的路,坑就一个接一个地来了。

<!-- more -->

二、部署方案选择:一切以 D 盘为宗旨

先摸清 WSL 的底

查了一下当前 WSL 的落点:

text

WSL安装路径:D:\DockerData\DockerDesktopWSL\main

WSL 确实在 D 盘,但它是 Docker Desktop 自带的那套,不是独立发行的 WSL。既然我本来就不打算用 Docker,WSL 这条路也就顺理成章地排除了。

方案对比

方案 优点 缺点
WSL2 安装 最成熟,官方最推荐 需要装 WSL,违背我的原则
Docker 部署 隔离性好 占用大,不想要
pip 安装 简单直接 容易和系统 Python 打架,而且默认往 C 盘塞
PowerShell 一键安装 原生 Windows,可指定安装到 D 盘 早期 Beta,偶有小问题

pip 安装虽然最简单,但大概率直奔 C 盘而去,直接 pass。最终选了 PowerShell 原生安装,官方从 v0.14.0 开始支持的方案,关键是可以自定义安装路径——就冲这一点,多踩几个坑也认了。

最终目录规划——D 盘阵地,寸土不让

text

D:\hermes-agent\
├── code\          # 代码本体
├── config.yaml    # 配置文件
├── .env           # API Keys
└── skills\        # 内置技能(89 个)

一切从 D 盘出发,这就是本次折腾的底层逻辑。

三、安装过程:三分钟搞定,C 盘纹丝不动

安装命令本身不复杂,重点在于从第一步就指定好 D 盘路径,不给 C 盘任何可乘之机:

powershell

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1))) `
  -HermesHome "D:\hermes-agent" `
  -InstallDir "D:\hermes-agent\code"

安装器自动处理了下面这些事:

  • Python 3.11(通过 uv 安装)

  • Node.js(浏览器工具要用)

  • Git Bash(便携版 MinGit,不干扰系统 Git)

  • Playwright Chromium(浏览器自动化)

  • 102 个 Python 依赖包

  • 89 个内置技能

  • 自动创建 hermes 命令并加入 PATH

安装完成后,整个目录大约 900MB,全在 D 盘。C 盘纹丝不动——截至目前,一切完美。

⚠️ 唯一逃不掉的是 Playwright Chromium 浏览器(约 294MB),会被下到 C:\Users\用户名\AppData\Local\ms-playwright\。这是 Playwright 自己的硬性行为,安装器也管不了。好在不算太大,忍了。

安装器还检测到了我之前装的 OpenClaw 配置,询问要不要迁移。我选了跳过,这个后面再说。

四、配置 Provider:当"不占 C 盘"遇上 CC Switch

4.1 为什么想用 CC Switch

CC Switch 是一款开源桌面工具,可以统一管理 Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 以及 Hermes Agent 的 Provider 配置。想象一下:在一个界面里切所有工具的 API 提供商,多省心。

但 CC Switch 有个让我头疼的默认行为:它的配置文件默认写在 C:\Users\用户名\.hermes\。这意味着,如果我要用 CC Switch 管 Hermes,就势必在 C 盘留下痕迹——这和我"一切去 D 盘"的原则正面冲突。

4.2 第一个坑:找不到 hermes 命令

CC Switch 在启动 Dashboard 时直接报错:

text

'hermes' is not recognized as an internal or external command

原因在于 CC Switch 的运行环境没有加载用户 PATH,而 hermes 装在 D 盘,它当然找不到。手动补上:

powershell

[Environment]::SetEnvironmentVariable("Path",
    [Environment]::GetEnvironmentVariable("Path", "User") + ";D:\hermes-agent\code\venv\Scripts",
    "User")

4.3 第二个坑:缺少 Web 依赖,系统 Python 遭殃

加上 PATH 之后,CC Switch 提示要装 pip install hermes-agent[web] 才能启动 Dashboard。我图省事直接 pip install,结果装到了 Anaconda 的系统 Python 里(d:\anaconda3\),虽然 Anaconda 也在 D 盘,但顺带把一堆包升级了:

  • PyYAML 6.0.2 → 6.0.3(paddlex 报错不兼容)

  • rich 13.7.1 → 14.3.3(streamlit 报错版本冲突)

  • tenacity 8.2.3 → 9.1.4(streamlit 又不兼容)

最要命的是:Hermes 的 CLI 压根没用到这些包,因为它跑在自己 D 盘的 venv 里。后来查了 pyproject.toml 才知道,hermes-agent[web] 其实只是 FastAPI + Uvicorn 两个包,专门给 hermes dashboard 用的。

血的教训:Hermes 的依赖,一定要装在它自己的虚拟环境里,别碰系统 Python!

正确姿势:

powershell

D:\hermes-agent\code\venv\Scripts\uv pip install "hermes-agent[web]"

4.4 第三个坑:配置文件重复——最恶心的问题

CC Switch 每切换一次 Provider,就在 config.yaml 末尾再追一段新配置,而不是覆盖原来的。结果就变成了这样:

yaml

model:
  default: auto
  provider: weapi
custom_providers:
  - name: weapi
    ...
model:
  default: auto
  provider: weapi
custom_providers:
  - name: weapi
    ...

YAML 不允许出现重复的顶级 key,Hermes 直接报错:

text

Failed to parse Hermes config as YAML: duplicate entry with key "custom_providers"

我前前后后手动删了三四次重复配置,每次 CC Switch 一切换就又接着往上追加。这个问题目前无解,是 CC Switch 本身的 Bug。

4.5 第四个坑:供应商缺少 api_mode 字段

CC Switch 写配置的时候会漏掉 api_mode 字段,导致 Hermes 继续报错:

text

Hermes provider is missing the `api_mode` field

需要手工补上:

yaml

custom_providers:
- name: huanchengwangan
  base_url: https://api.iamhc.cn/v1
  api_mode: chat_completions    # 这一行不能少
  api_key: sk-xxx

4.6 最终决定:放弃用 CC Switch 管理 Hermes

反复折腾之后,我的结论很明确:CC Switch 管理 Claude Code 和 Codex 确实不错,但对 Hermes Agent 的支持有 Bug。 不再用它来切 Hermes 的 Provider,让 Hermes 自己管自己。这样不仅省心,还彻底避免了 C 盘被写配置文件的问题。

五、曲线救国:目录联接——D 盘党的终极武器

5.1 核心矛盾:CC Switch 只认 C 盘,Hermes 只想住 D 盘

CC Switch 会把配置写到 ~/.hermes/(也就是 C:\Users\用户名\.hermes\),而 Hermes 实际读的是 D:\hermes-agent\,两边完全不通。如果妥协把东西放 C 盘,后面的事都很简单——但那就不是我了。

5.2 目录联接(Junction):让 C 盘路径指向 D 盘

于是找到了 Windows 的目录联接。这个技巧的核心思路是:在 C 盘放一个"指针",实际数据全部指向 D 盘。C 盘看起来有文件,其实只是几 KB 的链接:

powershell

# 备份原目录
Move-Item "$env:USERPROFILE\.hermes" "$env:USERPROFILE\.hermes.bak" -Force

# 创建目录联接:C:\Users\a1\.hermes → D:\hermes-agent
New-Item -ItemType Junction -Path "$env:USERPROFILE\.hermes" -Target "D:\hermes-agent"

这样,CC Switch 往 ~/.hermes\config.yaml 写东西时,实际落盘到 D:\hermes-agent\,两边都能认。而且不占 C 盘空间——Junction 本身只是一个指针,几 KB 而已。这就是在不妥协的前提下,让两个路径握手言和的办法。

5.3 原生配置 Provider:回归简单

既然决定不再用 CC Switch 管 Hermes,那就直接用 Hermes 自带的命令来配:

powershell

hermes model

选 37. custom(直接 API),填上 base_url、api_key 和 api_mode,Hermes 会自己生成配置文件,干净整洁。最终配置不过寥寥几行:

yaml

custom_providers:
- name: huanchengwangan
  base_url: https://api.iamhc.cn/v1
  api_mode: chat_completions
  api_key: sk-xxx
  model: auto
model:
  default: auto
  provider: huanchengwangan

没有多余的官方预设,没有冗余配置,数据安安稳稳地躺在 D 盘。

六、最终成果:D 盘大胜利

  • Hermes Agent v0.14.0 成功运行

  • 自定义供应商「huanchengwangan」正常调用

  • 所有文件都在 D 盘,C 盘只占 Junction 指针(几 KB)——守护 C 盘空间,使命达成

  • hermes chat 正常对话,28 个工具集、76 个技能可用

  • CC Switch 依然用着,但只用来管 Claude Code 和 Codex——各司其职,互不越界

powershell

hermes  # 启动即可

banner、可用工具列表全部正常,直接开聊。

七、总结与避坑指南

给同样坚持"不占 C 盘"的 Windows 用户的建议

  1. 安装路径从一开始就规划好。 用 -HermesHome 和 -InstallDir 一步到位指定 D 盘。装完再迁移会非常麻烦——这是避免痛苦的第一道防线。

  2. CC Switch 配 Hermes 有 Bug,且默认写 C 盘。 不是你配置不对,是工具本身的问题。Hermes 的 Provider 切换,用自带的 /model 命令最稳妥,也不需要中间商往 C 盘写东西。

  3. 目录联接(Junction)是 D 盘党的神器。 当某个程序死活只认 C 盘默认路径时,用 Junction 把 C 盘路径重定向到 D 盘。表面上顺从工具的默认行为,实际数据全在 D 盘,不占 C 盘一丁点空间。这个技巧适用于迁移各种软件的配置目录。

  4. 不要用系统 pip 装 Hermes 的依赖。 它有自己的虚拟环境(venv)在 D 盘,用 uv pip install 装到 venv 里才对。否则不仅白装,还可能把系统 Python 的包版本搞乱。

  5. Playwright 可能会重复下载 Chrome。 如果之前有其他工具(比如 Claude Code)装过旧版 Playwright,ms-playwright 目录里会堆着多套 Chromium,每套约 600MB。可以删掉旧版腾出不少空间。

回头来看

如果一开始就接受"装个 WSL,文件放 C 盘",这篇文章 80% 的内容都不会发生。但正因为不想装 WSL、不想占 C 盘,才逼出了 PowerShell 原生安装、目录联接这些方案。踩坑的过程虽然痛苦,但最终换来的是一个完全按自己意愿搭建的环境——原生 Windows,D 盘安家,清清爽爽。

一句话总结

Hermes Agent 本身安装很简单,一行命令就能指定 D 盘。真正的坑在于:当你想用第三方工具管理它的时候,对方的默认行为会拼命往 C 盘写东西。如果和我一样对 C 盘空间有执念,别走 CC Switch 这条路,直接用 hermes model 配,然后用 Junction 兜底——干净、省心、不占 C 盘。


本文记录于 2026 年 5 月 23 日的实际部署过程。软件版本:Hermes Agent v0.14.0,CC Switch v3.15.0。折腾的根源就一句话:不想装 WSL,不想占 C 盘。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐