ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HoRain云--Hermes Agent 安装:WSL2 与 PowerShell 环境下的 Python 依赖配置指南

HoRain云--Hermes Agent 安装:WSL2 与 PowerShell 环境下的 Python 依赖配置指南 1. Windows 上跑 Hermes Agent 到底卡在哪WSL2 与 PowerShell 双环境安装全流程Hermes Agent 是一个可以本地运行的智能体框架能接大模型 API 做对话、写代码、跑任务适合想在 Windows 上折腾本地 Agent 的开发者。但它的安装有个硬门槛目前不原生支持 Windows 命令行官方明确要求 Windows 用户走 WSL2。这就导致很多人第一次装的时候在 PowerShell 里敲了安装脚本结果报一堆路径错误或者 Python 找不到。我自己在 Windows 11 上装了两遍才跑通第一遍直接在 PowerShell 里执行安装命令脚本跑到一半提示python3: command not found第二遍才老老实实先配好 WSL2 再装。这篇就把 WSL2 初始化、Python 依赖配置、PowerShell 调用验证这三段拆开讲清楚每一步都给可复制的命令。先说清楚适用人群你用的是 Windows 10 2004 以上或 Windows 11想本地跑 Hermes Agent机器内存 8GB 以上4GB 是底线但跑模型会很卡磁盘留 5GB 以上给模型缓存和日志。如果你只是想试试对话功能WSL2 里装完命令行版本就够了如果想要图形化 Dashboard 和 Profile 管理器可以再装 Hermes Desktop。整个流程分两条线一条是在 WSL2 的 Ubuntu 里完成主体安装和 Python 虚拟环境配置另一条是在 PowerShell 里做调用验证和日常启动。两条线通过wsl命令打通后面会具体演示。需要提前说明的是Hermes Agent 安装脚本会自动装 uv、Python 3.11、Node.js v22、ripgrep、ffmpeg 这些依赖所以 WSL2 里不需要你手动一个个装。但 Python 虚拟环境的路径和 shell 配置需要你自己确认这是最容易出问题的地方。2. TaoToken 前置准备给 Hermes Agent 配一个稳定的模型接入点Hermes Agent 本身只是个壳真正干活的是背后接的大模型。安装脚本跑完后会引导你配置 LLM 提供商这时候你需要一个兼容 OpenAI 接口协议的 Base URL 和 API Key。我实测下来用 TaoToken 的接口接 Hermes Agent 比较省事因为它直接兼容 OpenAI 协议不用改 Hermes 的适配层。TaoToken 是一个模型接入服务能做什么提供统一的 API 地址和 Key让你在 Hermes Agent 里通过自定义 endpoint 的方式调用多种模型。适合谁不想在本地维护多个模型 SDK、希望一个 Key 切换不同模型的开发者。在开始装 Hermes Agent 之前建议先把 Key 准备好这样安装脚本跑到模型配置那一步可以直接填。操作路径打开 https://taotoken.net/api-keys 创建一个 API Key复制保存。然后确认你要用的模型 ID比如ark-code-latest这类编码向模型。Base URL 填https://taotoken.net/api注意这个地址不带任何查询参数。如果你还没决定用哪个模型可以先到 https://taotoken.net/models 看一下可用列表或者在 https://taotoken.net/chat 里先试一轮对话确认接口通不通。这一步花两分钟能省掉后面在 Hermes 里反复改配置的时间。有一点要注意Hermes Agent 的安装脚本在配置模型时会问你选哪个 provider这里选Custom endpoint自定义端点然后分别填 Base URL、API Key、Model ID 三项。这三项必须和你在 TaoToken 后台看到的一致尤其是 Model ID 不要自己拼。3. 可复制配置WSL2 初始化 Python 虚拟环境 Hermes 安装这一节是全文的核心操作区按顺序执行即可。先确认你的 Windows 版本支持 WSL2然后在 PowerShell管理员里执行初始化。3.1 WSL2 初始化命令打开 PowerShell以管理员身份运行wsl --install -d Ubuntu-22.04这条命令会启用 WSL2 功能、下载 Ubuntu 22.04 镜像并设置为默认发行版。执行完需要重启电脑。重启后 Ubuntu 会自动启动让你设置用户名和密码。如果你已经装过 WSL 但版本是 1先升级wsl --set-default-version 2 wsl --update验证 WSL2 是否生效wsl -l -v输出里 VERSION 列应该是 2。如果是 1用wsl --set-version Ubuntu-22.04 2转换。3.2 在 WSL2 里安装 Hermes Agent进入 WSL2 终端在 PowerShell 里直接敲wsl即可进入执行官方安装脚本curl -fsSL https://get.hermes-agent.nousresearch.com | bash脚本会自动检测并安装 uv、Python 3.11、Node.js v22、ripgrep、ffmpeg然后克隆仓库到~/.hermes/hermes-agent/创建隔离的 Python 虚拟环境配置全局hermes命令。安装过程中会引导你配置 LLM 提供商。选择Custom endpoint然后填入{ base_url: https://taotoken.net/api, api_key: 你的_TaoToken_API_Key, model: ark-code-latest }这个 JSON 结构是 Hermes 配置文件~/.hermes/config.json里的核心片段路径和字段名要和上面一致。如果你装过 OpenClaw脚本会问你是否导入配置选n跳过手动填上面的三项。3.3 刷新 Shell 并验证安装完成后刷新当前 shell 的环境变量source ~/.bashrc如果你用的是 Zshsource ~/.zshrc然后验证安装hermes --version正常会输出类似hermes-agent 0.x.x的版本号。如果提示command not found检查~/.local/bin是否在 PATH 里echo $PATH | grep -o $HOME/.local/bin没有的话手动加echo export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc3.4 PowerShell 调用验证回到 PowerShell你可以直接通过wsl前缀调用 Hermeswsl hermes --version如果要在 PowerShell 里启动对话wsl hermes这样就不用每次先wsl进终端再敲命令。实测下来把常用命令写成 PowerShell 函数会更顺手function hermes { wsl hermes args }加到你的 PowerShell profile$PROFILE里以后直接敲hermes就能用。4. 验证请求与成功结果确认 Hermes Agent 真的跑通了装完不代表跑通得实际发一轮请求确认模型能响应。这一节给具体的验证动作和预期输出。4.1 命令行对话验证在 WSL2 终端里执行hermes进入交互模式后输入一句测试帮我写一个 Python 函数计算斐波那契数列前 n 项如果配置正确你会看到模型流式返回代码。返回内容里应该包含def fib(n):这样的函数定义。如果卡住不动或者报401 Unauthorized说明 API Key 有问题跳到第 5 节排查。4.2 检查配置文件确认 Hermes 读到了正确的配置cat ~/.hermes/config.json输出里应该有base_url、api_key、model三个字段值和你在第 3 节填的一致。如果api_key显示为空或者还是默认值说明安装脚本那一步没保存成功手动编辑nano ~/.hermes/config.json改完保存重新执行hermes即可。4.3 查看日志确认请求链路Hermes 的日志在~/.hermes/logs/下ls -lh ~/.hermes/logs/ tail -f ~/.hermes/logs/hermes.log发一轮对话后日志里应该能看到类似POST https://taotoken.net/api/v1/chat/completions的记录状态码 200。如果看到 401 或 403是 Key 的问题如果看到connection refused是网络或 Base URL 写错了。4.4 PowerShell 侧验证在 PowerShell 里执行wsl hermes --version wsl cat ~/.hermes/config.json两条命令都能正常返回说明 PowerShell 到 WSL2 的调用链路是通的。日常使用建议直接在 PowerShell 里用wsl hermes启动不用每次切终端。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节对照真实报错给排查路径。以下四个是我在装 Hermes Agent 过程中实际遇到或社区里高频出现的。5.1 401 Unauthorized报错原文Error: 401 Unauthorized - invalid api key原因API Key 填错、过期或者 Base URL 和 Key 不匹配。排查步骤先确认~/.hermes/config.json里的api_key和 TaoToken 后台创建的一致。然后确认base_url是https://taotoken.net/api不要多加/v1或结尾斜杠。最后在 WSL2 里用 curl 直接测curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的_KEY \ -H Content-Type: application/json \ -d {model:ark-code-latest,messages:[{role:user,content:hi}]}如果 curl 也返回 401说明 Key 本身有问题重新创建一个。如果 curl 通了但 Hermes 报 401说明 Hermes 读的配置文件路径不对检查是否有多个config.json。5.2 local proxy failed报错原文Error: local proxy failed to start on port 8080原因Hermes 的本地代理端口被占用或者 WSL2 的网络配置有问题。排查ss -tlnp | grep 8080看 8080 是否被其他进程占用。如果被占用改 Hermes 的代理端口hermes --proxy-port 8081或者在~/.hermes/config.json里加proxy_port: 8081。WSL2 的网络问题一般是 DNS 解析失败检查/etc/resolv.confcat /etc/resolv.conf如果 nameserver 是127.0.0.1改成8.8.8.8或你的本地 DNS。5.3 reading choices 报错报错原文Error: reading choices: unexpected end of JSON input原因模型返回的响应体为空或者不是合法 JSON。常见于 Base URL 写错导致返回了 HTML 错误页。排查先确认base_url没有多余路径。然后在 WSL2 里用 curl 看原始返回curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer 你的_KEY | head -c 500如果返回的是 HTML说明地址不对。如果返回 JSON 但 Hermes 还是报这个错检查 Model ID 是否拼写正确比如ark-code-latest不要写成ark_code_latest。5.4 OAuth 相关报错报错原文Error: OAuth token expired, please re-authenticate原因Hermes 某些 provider 走 OAuth 流程token 过期。如果你用的是 Custom endpoint API Key 模式一般不会遇到。如果遇到了检查是否误选了 OAuth 类型的 provider。重新跑配置hermes config选Custom endpoint重新填 Base URL、Key、Model ID 三项。如果之前配过 OAuth先清掉旧配置rm ~/.hermes/oauth_token.json然后重新执行hermes config。5.5 CC Switch / Cline MCP / Codex auth.json 三件套如果你同时用 CC Switch 或 Cline 的 MCP 功能配置 Hermes 时需要确保三件套一致Base URL、Key、Model ID。以 Codex 的auth.json为例路径在~/.codex/auth.json内容格式{ base_url: https://taotoken.net/api, api_key: 你的_KEY, model: ark-code-latest }Hermes 的~/.hermes/config.json里这三项要和上面完全一致否则会出现 Hermes 能跑但 Cline 调不通的情况。CC Switch 里切换 provider 时也要确认 Base URL 没被改回默认值。6. 装完之后怎么用日常启动与模型切换装好只是第一步日常用起来还有几个顺手的小配置。启动 Hermes 对话在 PowerShell 里直接wsl hermes如果想指定模型跑一轮hermes --model ark-code-latest切换模型不用重装改~/.hermes/config.json里的model字段即可。TaoToken 支持的模型列表可以在 https://taotoken.net/models 查改完保存下次启动生效。如果你要长期跑编码任务或者 Agent 流程建议看一下 Coding Plan路径在 https://taotoken.net/coding-plan里面有按量或包月的选项比单次调用省事。接入文档在 https://taotoken.net/doc遇到配置问题可以先翻文档里的示例。Hermes Desktop 用户注意桌面应用和命令行工具是并存的装 Desktop 时会自动装hermes命令。如果你先装了命令行版再装 Desktop两者共用~/.hermes/目录下的配置不用重复配。最后提醒一个坑WSL2 的磁盘空间是动态增长的Hermes 跑久了模型缓存和日志会占空间。定期清理du -sh ~/.hermes/logs/ rm -rf ~/.hermes/logs/*.log如果 WSL2 整体磁盘占用过大在 PowerShell 里压缩虚拟磁盘wsl --shutdown Optimize-VHD -Path $env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx -Mode Full这条命令需要 Hyper-V 模块家庭版 Windows 可能没有可以用diskpart替代。跑完这些你的 Hermes Agent 在 Windows 上就算彻底跑通了。
返回列表