公益站 WAF / 中转站会检查 User-Agent,如果 Hermes 默认客户端请求头不被认可,就会返回 403。查了站内,给的解决方式是修改 run_agent.py中的配置,但我改了一个还是不行,后面发现需要修改两个地方的域名匹配。
修改方式: 步骤 1:修改 agent_init.py (位置:cd ~/.hermes/hermes-agent/agent)在 elif 中添加公益站域名(可以搜api.kimi 就在这附近)
elif base_url_host_matches(base_url, "替换成公益站域名"):
client_kwargs["default_headers"] = {"User-Agent": "curl/8.5.0"}
步骤 2:修改 run_agent.py(位置:cd ~/.hermes/hermes-agent)
在 _apply_client_headers_for_base_url 函数里也加同样的域名匹配(可以搜api.kimi 就在这附近):
elif base_url_host_matches(base_url, "替换成公益站域名"):
self._client_kwargs["default_headers"] = {"User-Agent": "curl/8.5.0"}
两个地方的修改注意域名不要带 https:// 或 /v1,变量要与上下文保持一致(如果更新了直接贴给ai要怎么改)。
修改前最好都做个备份。如果有多个域名可以类似这样:
# 在 agent_init.py 的适当位置,例如 elif 链前或函数开头
PROXY_DOMAINS = [
"xxxapi.cc.cd",
"muyuan.do",
# 后续新站点直接加在这里
]
# 代替单独的 elif
if any(base_url_host_matches(base_url, d) for d in PROXY_DOMAINS):
client_kwargs["default_headers"] = {"User-Agent": "curl/8.5.0"}
# 在 _apply_client_headers_for_base_url 或类似函数里
PROXY_DOMAINS = [
"xxxapi.cc.cd",
"muyuan.do",
# 后续新站点直接加在这里
]
if any(base_url_host_matches(base_url, d) for d in PROXY_DOMAINS):
self._client_kwargs["default_headers"] = {"User-Agent": "curl/8.5.0"}
做完这些重启hermes就行了!
2 个帖子 - 1 位参与者