Hermes Agent Windows 部署血泪史:从WSL2到本地模型,手把手喂饭级教程
本文详细记录了在Windows系统通过WSL2安装HermesAgent的全过程。主要内容包括:1) WSL2安装与迁移至非系统盘;2) WSL2内HermesAgent的安装配置;3) Windows端Ollama的安装与模型拉取;4) WSL2与Windows的网络互通设置;5) 上下文窗口限制的解决方案。文章提供了完整的安装流程、常见问题解决方法及模型推荐,帮助用户在本地搭建AI助手环境。虽
开篇废话
最近圈里被一个叫Hermes Agent的东西刷屏了——Nous Research出品,号称开源界的Claude Code,甚至能跟OpenClaw掰手腕。作为手痒的AI民工,不折腾一下对不起自己的显卡。
但这玩意儿对Windows用户极度不友好:官方明说不支持原生Windows,必须走WSL2。下面这份教程是我边装边炸、炸完再装的血泪记录。Mac用户直接右上角,你们一行命令搞定的事我们不配。

1. 系统要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Windows 10 64位(2004+) | Windows 11 |
| WSL2 | 必须 | — |
| 内存 | 8 GB RAM | 16 GB RAM+ |
| 显卡显存(GPU推理) | 8 GB VRAM(7B模型) | 16 GB+ VRAM |
| 磁盘空间 | 20 GB 可用 | 50 GB+ |
| 网络 | 安装时需联网 | — |
2. 整体流程(红线是容易炸的地方)
Windows环境
├─ 安装WSL2 → 搬到非C盘
├─ WSL2内运行官方安装脚本
├─ Windows端装Ollama + 拉模型
├─ 【大坑1】让Ollama监听0.0.0.0
├─ 【大坑2】防火墙干掉ollama.exe的Block规则
├─ WSL2内配置Hermes指向Windows Ollama
├─ 【大坑3】强行把模型上下文从32K改到65K
└─ hermes chat 起飞
3. Step 1:WSL2安装 + 迁移到非C盘
3.1 装WSL2
管理员PowerShell:
powershell
wsl --install
默认装Ubuntu,重启后设用户名/密码。
3.2 把WSL2虚拟磁盘挪出C盘(强烈建议)
C盘是系统盘,模型一拉就满。我们搬到G盘为例:
powershell
# 查看当前状态
wsl --list --verbose
# 建目标文件夹
New-Item -ItemType Directory -Path "G:\WSL\Ubuntu" -Force
# 导出当前系统
wsl --export Ubuntu G:\WSL\ubuntu-backup.tar
# 注销原系统
wsl --unregister Ubuntu
# 重新导入到G盘
wsl --import Ubuntu G:\WSL\Ubuntu G:\WSL\ubuntu-backup.tar --version 2
如果导出报错“系统找不到指定文件”:你的ext4.vhdx炸了,直接重建:
powershell
wsl --unregister Ubuntu
# 下载官方rootfs
Invoke-WebRequest -Uri "https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz" -OutFile "G:\WSL\ubuntu.tar.gz"
wsl --import Ubuntu G:\WSL\Ubuntu G:\WSL\ubuntu.tar.gz --version 2
3.3 恢复普通用户(默认导入后是root)
bash
wsl -d Ubuntu
useradd -m -s /bin/bash 你的用户名
passwd 你的用户名
usermod -aG sudo 你的用户名
echo -e '[user]\ndefault=你的用户名' > /etc/wsl.conf
exit
powershell
wsl --terminate Ubuntu
wsl -d Ubuntu # 现在应该以普通用户登录
4. Step 2:WSL2里安装Hermes Agent
4.1 装依赖
bash
sudo apt update && sudo apt install -y ripgrep ffmpeg
4.2 调教Git(防止克隆失败)
bash
git config --global http.postBuffer 524288000
# 有代理的先清掉
git config --global http.proxy ""
git config --global https.proxy ""
4.3 跑官方安装脚本(容易翻车,备用手动方案)
bash
cd ~
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
如果脚本里git clone死了,手动来:
bash
rm -rf ~/.hermes/hermes-agent
git clone --depth=1 https://github.com/NousResearch/hermes-agent.git ~/.hermes/hermes-agent
4.4 装Python依赖(加长超时时间)
bash
cd ~/.hermes/hermes-agent
export PATH="$HOME/.local/bin:$PATH"
uv venv venv --python 3.11
export VIRTUAL_ENV="$(pwd)/venv"
UV_HTTP_TIMEOUT=300 uv pip install -e ".[messaging,cron,cli,mcp,pty]"
不加超时,某些大包(比如elevenlabs)会下载到一半断掉。
4.5 创建全局命令
bash
ln -sf ~/.hermes/hermes-agent/hermes ~/.local/bin/hermes
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
hermes version # 应该显示 v0.8.0 之类
5. Step 3:Windows端Ollama安装与拉模型
-
官网 ollama.com 下载Windows版,正常安装,托盘会有小羊驼图标。
-
打开PowerShell拉模型(显存不够就换7B):
powershell
# 根据自己的显存选
ollama pull qwen3.5:35b # 24GB+显存
ollama pull deepseek-r1:32b # 20GB+显存
ollama pull qwen3:32b # 20GB+显存
ollama pull qwen2.5:7b # 6GB+显存(入门)
# 查看已有模型
ollama list
顺便做个32K上下文的模型(默认只有2K-8K,Hermes需要大上下文):
powershell
"FROM qwen3.5:35b`nPARAMETER num_ctx 32768" | Out-File -FilePath "Modelfile" -Encoding utf8
ollama create qwen3.5-35b-32k -f "Modelfile"
6. Step 4:打通WSL2 → Windows Ollama(地狱级难度)
原理:WSL2是个独立的虚拟机,它的localhost ≠ Windows的localhost。
我们需要让Windows的Ollama监听所有网卡,并放行防火墙。
6.1 让Ollama监听0.0.0.0
PowerShell(管理员或当前用户都可,但执行后要重启Ollama):
powershell
[System.Environment]::SetEnvironmentVariable("OLLAMA_HOST", "0.0.0.0", "User")
然后右键系统托盘Ollama图标 → Quit,再重新打开Ollama。
验证:
powershell
netstat -an | findstr 11434
# 必须看到 0.0.0.0:11434 LISTENING
6.2 加防火墙允许规则(管理员PowerShell)
powershell
New-NetFirewallRule -DisplayName "Ollama WSL" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow
6.3 关键一步:删除可能存在的Block规则
Windows有时候会自说自话给ollama.exe加一条阻止入站的规则,优先级高于Allow规则。检查并干掉它:
powershell
Get-NetFirewallRule -DisplayName "*Ollama*" | Format-Table DisplayName, Enabled, Direction, Action
# 如果看到某一行的Action是Block,就删掉
Get-NetFirewallRule -DisplayName "ollama.exe" | Where-Object {$_.Action -eq "Block"} | Remove-NetFirewallRule
6.4 从WSL2内测试连接
bash
# 获取Windows宿主IP
HOST_IP=$(ip route | grep default | awk '{print $3}')
echo $HOST_IP
# 测试Ollama API
curl http://$HOST_IP:11434/api/tags
-
看到模型列表 → 成功
-
Connection refused→ Ollama没监听0.0.0.0,回去重做6.1 -
Connection timed out→ 防火墙拦截,回去检查6.3的Block规则
7. Step 5:配置Hermes连接本地模型
交互式配置
bash
hermes model
选择 More providers... → Custom endpoint (enter URL manually)
-
API base URL:
http://你上面得到的HOST_IP:11434/v1(例如http://172.27.112.1:11434/v1) -
API key: 留空
-
Model name:
qwen3.5-35b-32k:latest -
Context length:
32768(后面会改)
或者直接修改配置文件
bash
HOST_IP=$(ip route | grep default | awk '{print $3}')
sed -i "s|http://[^/]*:11434|http://$HOST_IP:11434|g" ~/.hermes/config.yaml
8. Step 6:修复上下文窗口限制(必做,否则没法用)
Hermes Agent要求最低64K上下文,而你的模型只有32K。直接跑会报错:
text
Model has a context window of 32,768 tokens, which is below the minimum 64,000 required.
欺上瞒下大法:改配置文件的context_length,绕过检查。
bash
sed -i 's/context_length: 32768/context_length: 65536/' ~/.hermes/config.yaml
grep context_length ~/.hermes/config.yaml # 输出应为 65536
注意:这是骗过前端检查,实际模型还是32K。对话过长时模型会忘记开头。如果你显存够大,可以用
num_ctx 65536重新创建一个真正的64K版本模型。
9. Step 7:启动!启动!启动!
bash
hermes chat
如果看到这样的界面(ASCII艺术缩略版):
text
██╗ ██╗███████╗██████╗ ...
╭── Hermes Agent v0.8.0 ──────────────────────────────╮
│ Available Tools: browser, file, code_execution... │
│ qwen3.5-35b-32k:latest · 16.7K/65.5K [███░░] 26% │
╰─────────────────────────────────────────────────────╯
Welcome! Type your message.
恭喜,成了。随便输句话试试。
常用玩法:
bash
hermes chat # 交互模式
hermes "帮我写个Python脚本下载B站视频" # 单次任务
hermes doctor # 健康检查
hermes model # 交互式切换模型
状态栏解析:
| 示例 | 含义 |
|---|---|
| qwen3.5-35b-32k:latest | 当前模型 |
| 16.7K/65.5K | 已用token / 总上下文token |
| 26% | 上下文占用 |
| 5m | 当前会话时长 |
10. 常用命令速查(存一下)
| 命令 | 作用 |
|---|---|
hermes chat |
打开对话 |
hermes "query" |
直接执行单次任务 |
hermes model |
更换模型/提供商 |
hermes doctor |
诊断环境问题 |
/help |
在聊天中看内置帮助 |
Ctrl+C |
退出聊天 |
11. FAQ – 全是实战踩过的坑
Q1:git clone老是报GnuTLS recv error或HTTP/2 stream error
原因:WSL2下网络不稳 + 代理干扰。
解决:
bash
git config --global http.proxy ""
git config --global https.proxy ""
git config --global http.postBuffer 524288000
git clone --depth=1 https://github.com/NousResearch/hermes-agent.git ~/.hermes/hermes-agent
Q2:WSL2里curl Ollama返回Connection timed out
原因:防火墙有ollama.exe的Block规则。
解决:管理员PowerShell执行:
powershell
Get-NetFirewallRule -DisplayName "ollama.exe" | Where-Object {$_.Action -eq "Block"} | Remove-NetFirewallRule
Q3:返回Connection refused
原因:Ollama没有监听0.0.0.0。
解决:检查环境变量OLLAMA_HOST=0.0.0.0并彻底重启Ollama(托盘Quit+重新打开)。
Q4:hermes: command not found
解决:
bash
ln -sf ~/.hermes/hermes-agent/hermes ~/.local/bin/hermes
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Q5:Python依赖安装卡住或超时
解决:加长超时:
bash
UV_HTTP_TIMEOUT=300 uv pip install -e ".[messaging,cron,cli,mcp,pty]"
Q6:context window below minimum错误
解决:改配置文件,见第8步。
Q7:WSL导出时ext4.vhdx损坏怎么办
解决:注销重建,反正还没什么数据:
powershell
wsl --unregister Ubuntu
Invoke-WebRequest -Uri "https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz" -OutFile "G:\WSL\ubuntu.tar.gz"
wsl --import Ubuntu G:\WSL\Ubuntu G:\WSL\ubuntu.tar.gz --version 2
12. 模型推荐(按显存选)
| 模型 | 显存需求 | 中文 | 代码 | 推理 | 拉取命令 |
|---|---|---|---|---|---|
| qwen2.5:7b | 6GB | ★★★ | ★★ | ★★ | ollama pull qwen2.5:7b |
| qwen3:32b | 20GB | ★★★★ | ★★★ | ★★★★ | ollama pull qwen3:32b |
| deepseek-r1:32b | 20GB | ★★★ | ★★★ | ★★★★★ | ollama pull deepseek-r1:32b |
| qwen3.5:35b | 24GB | ★★★★★ | ★★★★ | ★★★★ | ollama pull qwen3.5:35b |
| qwen3-coder:30b | 20GB | ★★★ | ★★★★★ | ★★★ | ollama pull qwen3-coder:30b |
最后说句实话:本地35B模型跑Agent,跟Claude Sonnet/Opus这种云端巨兽还是有差距。Agent框架的效果严重依赖底层模型的智力。想体验完全体,建议申请OpenRouter的API Key,把Hermes接到GPT-4o或Claude 3.5上。
折腾完这一套,你就拥有了:
-
✅ 完全本地的AI Agent(数据不出门)
-
✅ 永久免费(不用充值AI币)
-
✅ 断网可用(适合宿舍/机房)
-
✅ 74个技能 + 28个工具(能看文件、写代码、开浏览器、发邮件……)
说白了,Hermes Agent就是你终端里的AI打工人——你动嘴,它动手。至于干得好不好,取决于你喂它什么脑子。
有空再写实战篇:怎么用Hermes自动写周报、爬数据、部署服务。现在,去hermes chat里调戏它吧!
更多推荐


所有评论(0)