Hermes Agent 踩坑:WSL 环境下模型无法连接外网的问题

这几天折腾爱马仕快魔楞了,感觉比龙虾适合我,比我想象中的好用太多了,如果是 Openclaw 是一个工作流的强力助手,那么 Hermes Agent 更加贴近大众生活的使用方式。通过不断理解学习总结我每天的对话,可以总结出我后面做的东西与前面的关联性,省去了太多的麻烦了。 本来是 codex、cc ...
Hermes Agent 踩坑:WSL 环境下模型无法连接外网的问题
Hermes Agent 踩坑:WSL 环境下模型无法连接外网的问题

这几天折腾爱马仕快魔楞了,感觉比龙虾适合我,比我想象中的好用太多了,如果是 Openclaw 是一个工作流的强力助手,那么 Hermes Agent 更加贴近大众生活的使用方式。通过不断理解学习总结我每天的对话,可以总结出我后面做的东西与前面的关联性,省去了太多的麻烦了。

本来是 codex、cc 的重度用户,但是最近配置的时候踩坑死活配置不上,以前用的 快连的vpn,但是现在由于特殊原因,快连 down 了,切了备用机场使用 clash,他的工作模式就不像前者一样直接一套打包弄好。

我在 WSL 里跑 Hermes,Windows 宿主机开了 Clash,也开了“允许局域网连接”和“虚拟网卡”。而且在 WSL 里已经确认能通过 127.0.0.1:7897 正常访问外网。

按理说网络应该没问题,但 Hermes 还是连不上模型接口。后来发现,问题不在 WSL,也不在 Clash,本质上是终端有代理,不代表 Hermes 服务进程也有代理

Hermes 的 gateway 是由 systemd --user 拉起来的,不是直接继承当前 shell 环境。所以即使在终端里已经设置了:

HTTP_PROXY=http://127.0.0.1:7897
HTTPS_PROXY=http://127.0.0.1:7897

Hermes 的 gateway 进程也可能根本拿不到这些变量。这就会出现一种很迷惑的现象:

  • WSL 里 curl 能联网
  • Hermes 却依旧访问模型失败

解决办法

hermes-gateway.service 写一个 systemd override,把代理环境变量显式注进去。

先创建目录:

mkdir -p ~/.config/systemd/user/hermes-gateway.service.d/

然后写入这个文件路径:

~/.config/systemd/user/hermes-gateway.service.d/override.conf

内容如下:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7897"
Environment="HTTPS_PROXY=http://127.0.0.1:7897"
Environment="http_proxy=http://127.0.0.1:7897"
Environment="https_proxy=http://127.0.0.1:7897"
Environment="ALL_PROXY=http://127.0.0.1:7897"
Environment="NO_PROXY=localhost,127.0.0.1"

然后执行:

systemctl --user daemon-reload
systemctl --user restart hermes-gateway.service

就欧克了。这个问题我让小米的模型自己改了很多次,都没有成功,后面通过不断的讨论对话才修改成功的。

5 个帖子 - 5 位参与者

阅读完整话题

来源: linux.do查看原文