如果你想在 Windows 上尽量低门槛地跑 Hermes Agent,一个比较顺手的路径是:
- 宿主系统继续用 Windows
- 在
WSL里跑Ubuntu - 用
Ollama提供本地模型 - 让
Hermes Agent直接连接本地 Ollama 接口
这样做的好处是环境相对干净,命令大多按 Linux 方式执行,同时又不需要单独准备一台 Linux 机器。
整体流程
这套部署可以拆成 5 步:
- 启用
WSL并安装Ubuntu - 在 Ubuntu 里补齐 Python、Node.js、Git 等运行环境
- 安装
Ollama并拉取本地模型 - 安装
Hermes Agent,再接入Telegram
如果你只想先把 Hermes Agent 跑起来,其实做到第 4 步就已经接近完成了。
1. 安装 WSL 和 Ubuntu
在管理员权限的 PowerShell 里执行:
|
|
安装完成后重启电脑,然后继续安装 Ubuntu:
|
|
之后打开 Windows Terminal,切到 Ubuntu 环境,后续命令基本都在这里执行。
2. 更新 Ubuntu,并安装基础环境
先更新系统:
|
|
然后安装 Python、解压工具、Node.js 和 Git。
安装 Python
|
|
安装 zstd
|
|
安装 Node.js
|
|
安装 Git
|
|
安装完成后可以顺手检查一下:
|
|
3. 安装 Ollama,并拉取 Gemma 4
安装 Ollama:
|
|
如果你打算给 Hermes Agent 配一个本地模型,可以直接从 Gemma 4 开始。
例如:
|
|
如果机器资源更弱,也可以试:
|
|
更大的版本还有:
|
|
对大多数 Windows + WSL 的普通机器来说,gemma4:e4b 通常是一个更实际的起点。
4. 安装并配置 Hermes Agent
安装命令:
|
|
安装完成后,给它指定 Ollama 的本地接口:
|
|
模型名填你本地实际在用的那个,例如:
|
|
如果安装脚本要求刷新 shell,可以执行:
|
|
Hermes Agent 常用命令
平时最常用的是下面几个:
启动
|
|
重新进入配置
|
|
配置聊天平台网关
|
|
更新
|
|
接入 Telegram 的基础步骤
如果你要让 Hermes Agent 通过 Telegram 收发消息,核心还是先跑一遍:
|
|
然后准备 Telegram 侧需要的两个东西:
- 用
BotFather创建机器人 - 用
@userinfobot获取你的User ID
拿到这些基础信息后,再按 Hermes Agent 的网关配置继续填入即可。
这一套方案适合什么人
这套方式比较适合下面几类用户:
- 平时主力系统就是 Windows
- 不想单独折腾完整 Linux 主机
- 想先把本地 Agent 跑通,再慢慢扩展聊天平台接入
- 希望优先用本地模型,不依赖云端 API
如果你只是想本地体验一个 Agent,而不是一开始就做复杂生产部署,这条路线已经足够实用。
需要注意的几个点
WSL本质上还是一层兼容环境,极端场景下稳定性未必和原生 Linux 完全一样- 大模型能不能跑得顺,最终还是取决于你的内存、显存和 CPU / GPU 条件
gemma4:e4b虽然是比较现实的起点,但具体体验还是要看机器配置- Hermes Agent 的聊天平台接入属于“能力扩展”,先把本地模型链路跑通,再加 Telegram,会更稳
WSL 中接入 Ollama 与 Codex OSS 本地 Agent
在 Windows 上部署本地 Agent,最省心的结构通常不是把模型服务、Docker、终端和代码工具散落在 Windows、WSL 与多个虚拟环境里,而是把它们放进同一个 WSL2 Ubuntu 发行版:
|
|
这样 Ollama 和 Agent 直接通过 WSL 内的 localhost 通信,路径、权限和日志都在 Linux 环境内。Windows 端可以继续用 Windows Terminal、VS Code Remote WSL 或资源管理器访问项目。
先说结论
最小可用路线是:
|
|
不要一开始就让本地 Agent 获得全盘权限,也不要先追求最大的模型。先用能稳定运行的模型验证流程,比先折腾复杂代理、远程端口和多 Agent 编排更重要。
第一步:安装 WSL2 和 Ubuntu
在 Windows 的管理员 PowerShell 中执行:
|
|
重启后,默认会安装 Ubuntu。首次打开 Ubuntu 时,按提示创建 Linux 用户名和密码。
确认发行版使用 WSL2:
|
|
如果旧发行版仍是版本 1,可转换:
|
|
进入 Ubuntu:
|
|
后续大部分命令都在 Ubuntu 终端里执行,而不是 PowerShell。
第二步:准备 Ubuntu 基础环境
进入 WSL 后先更新系统:
|
|
确认环境:
|
|
项目建议放在 Linux 文件系统内,例如:
|
|
不要把高频 Git、Node.js、Python 虚拟环境和大规模依赖都放在 /mnt/c/... 下运行。跨文件系统访问在某些开发任务里会更慢,也更容易遇到权限和文件监听差异。需要从 Windows 打开项目时,可使用 VS Code 的 Remote WSL 功能。
第三步:在 WSL 内安装并验证 Ollama
按 Ollama Linux 安装方式执行:
|
|
先在当前终端启动服务:
|
|
另开一个 WSL 终端,下载并测试一个模型:
|
|
模型选择必须按你的 GPU 显存或 CPU/内存决定。没有可用 GPU 时,先用更小模型验证流程;不要把“大模型文件能下载”误认为“本机能流畅推理”。
确认服务和模型状态:
|
|
如果 ollama run 本身不能稳定输出,先解决模型、显存、驱动或内存问题,再接 Agent。
第四步:检查 WSL GPU 是否真的可用
有 NVIDIA GPU 时,在 WSL 内执行:
|
|
能显示显卡不等于 Ollama 已经使用 GPU,但它至少证明 WSL 看到了驱动。启动模型后,再执行:
|
|
观察模型是否使用 GPU、显存是否增长。
如果 nvidia-smi 不存在或报错,先检查 Windows 的 NVIDIA 驱动、WSL 版本和 GPU 支持,不要急着在 Ubuntu 内反复安装桌面 Linux 驱动。WSL 的 GPU 支持有自己的驱动链路。
第五步:让 Codex 使用本地 Ollama
Codex 提供 OSS 模式,可选择 Ollama 或 LM Studio 作为本地提供方。在 WSL 内安装并可运行 Codex 后,进入你的项目目录:
|
|
首次建议使用只读权限启动:
|
|
先给一个不修改文件的任务:
|
|
确认本地模型能读懂仓库、回答稳定后,再按需使用 workspace 写入权限。不要因为它是本地模型,就跳过 Git、测试和权限控制。
如果想把 Ollama 作为默认本地提供方,在用户级 Codex 配置 ~/.codex/config.toml 加入:
|
|
之后用下面命令即可:
|
|
注意,提供方相关配置应放在用户级配置中,而不是项目里的 .codex/config.toml。项目配置不应偷偷改变你机器的模型提供方。
第六步:需要常驻服务时启用 systemd
新安装的 WSL Ubuntu 通常已默认使用 systemd。先检查:
|
|
若当前发行版没有启用 systemd,编辑:
|
|
加入:
|
|
然后回到 Windows PowerShell:
|
|
重新进入 Ubuntu 后再检查 systemctl status。
是否把 Ollama 做成常驻服务,要看安装方式和你是否需要后台 API。刚开始学习时,保持一个 ollama serve 终端最容易看到日志;确认稳定后,再用 systemd 管理服务。
WSL 内的路径、端口和 API
默认情况下,Ollama 服务使用:
|
|
如果 Agent、脚本和 Ollama 都在同一个 WSL 发行版中,优先使用这个本地地址,不需要先开放局域网端口。
测试 API:
|
|
需要在 Windows 程序、手机或局域网其他设备中调用时,再单独设计网络暴露方式、反向代理和鉴权。不要把裸露的本地模型端口直接映射到公网。
推荐的资源分级
| 硬件情况 | 建议的起步方式 |
|---|---|
| 无独显、8GB–16GB 内存 | 小模型、只读分析、摘要和简单脚本 |
| 8GB 显存 | 7B/8B 量化模型,单用户短到中等上下文 |
| 12GB–16GB 显存 | 8B 更舒适,可谨慎尝试更大量化模型 |
| 24GB+ 显存 | 可考虑更大模型、长上下文或更复杂的本地 Agent 任务 |
模型越大不代表 Agent 越可靠。对本地 Agent 来说,命令执行稳定性、上下文、工具调用能力和任务拆分方式,同样影响结果。
最容易踩的坑
1. Windows 和 WSL 各跑了一套 Ollama
这会让你分不清 Agent 实际连到哪一个服务。初次部署建议只在 WSL 内运行一套 Ollama,所有测试都在同一个 WSL 终端完成。
2. 在 /mnt/c 里跑所有开发任务
可以访问,但依赖安装、文件监听、Git 性能和 Linux 权限行为未必理想。优先把活跃项目放到 ~/projects。
3. 本地模型一开始就允许写文件
先用 --sandbox read-only 验证模型是否理解任务。进入修改阶段后,也应先让它说明计划,再检查 diff、运行测试并用 Git 保留回退点。
4. 端口开放后没有鉴权
本地 API 一旦允许局域网访问,就不再只是“自己电脑上的服务”。至少限制防火墙来源,必要时在反向代理层增加鉴权和 HTTPS。
5. 以为安装成功就会自动后台运行
WSL 关闭或发行版被停止后,前台进程会退出。需要长期 API 时,先确认 systemd、服务状态和 Windows/WSL 的运行策略。
结论
如果你想在 Windows 上尽量简单地本地部署 Hermes Agent,比较顺的顺序就是:
WSL -> Ubuntu -> Ollama -> Gemma 4 -> Hermes Agent -> Telegram
先把本地模型跑通,再做网关接入,成功率会高很多。
对大多数用户来说,这比一上来就堆很多组件更容易排错,也更适合后续继续扩展。
替代后端:Qwen3.6、llama.cpp 与本地 API
Ollama 适合快速起步;如果需要精确控制 GGUF 量化、GPU offload、context 和 chat template,可以把 Hermes 的推理后端换成 llama.cpp。下面的做法不绑定某个第三方量化仓库,先从可信模型卡下载与你硬件匹配的 Qwen3.6 GGUF,并记录文件校验值。
在 WSL 中编译 CUDA 后端:
|
|
先以 8K context 启动服务,模型路径替换为实际文件。--n-gpu-layers 99 只表示尽量 offload,不保证显存足够;OOM 时减少层数或改用更小量化。
|
|
从运行 Hermes 的同一 WSL 环境验证 OpenAI-compatible API:
|
|
然后执行 hermes setup,自定义 endpoint 填 http://127.0.0.1:8080/v1,模型名使用 /v1/models 实际返回的 ID,API Key 仅填本机占位值。先测对话,再测工具调用与文件权限;文字能返回但 tool call 反复失败,通常是模型能力或 chat template 不匹配,不是端口问题。
需要调整 thinking 时,优先使用模型卡和当前 llama.cpp 版本支持的 chat-template 参数,不要照抄旧教程中的 JSON 开关。每次只改模型、context、GPU layers 或 template 中的一项,并保留可工作的启动命令。服务只监听 127.0.0.1;若必须跨设备访问,应在反向代理层增加认证和 TLS。