千灵

Back

本方案仅限版本 v0.21.x 可用,v0.21 以后版本可能不适配。 对于 v0.21 以前的版本,参考 hermes agent 中转403 blocked 解决方案 - 搞七捻三 - LINUX DO

v0.21.1-v0.21.2#

v0.21.1 重构了辅助链路的客户端解析,锚点和 v0.21.0 不是同一处,旧方法已失效。

1. 解决主对话链路 403#

~/.hermes/config.yamlcustom_providers 对应条目下添加 extra_headers

可以使用 CLI 快捷写入(假设自定义 Provider 在 index 3):

hermes config set custom_providers.3.extra_headers.User-Agent "curl/8.5.0"
bash

2. 解决辅助链路 403(标题、压缩、记忆的链路,也要改)#

2.1 _named_custom_openai_wire_client#

找到 _headers = _apply_user_default_headers(None) 之后、return _create_openai_client(...) 之前,插入:

    try:
        from hermes_cli.config import get_custom_provider_extra_headers
        _pp_headers = get_custom_provider_extra_headers(custom_base)
    except Exception:
        _pp_headers = {}
    if _pp_headers:
        _merged = dict(_extra.get("default_headers") or {})
        _merged.update(_pp_headers)
        _extra["default_headers"] = _merged
python

2.2 _endpoint_default_headers#

把结尾的 return _apply_user_default_headers(headers or None) or None 改成:

    merged = _apply_user_default_headers(headers or None) or None
    try:
        from hermes_cli.config import get_custom_provider_extra_headers
        _pp_headers = get_custom_provider_extra_headers(base_url)
    except Exception:
        _pp_headers = {}
    if _pp_headers:
        merged = {**(merged or {}), **_pp_headers}
    return merged
python

v0.21.0#

1. 解决主对话链路 403#

~/.hermes/config.yamlcustom_providers 对应条目下添加 extra_headers

可以使用 CLI 快捷写入(假设自定义 Provider 在 index 3):

hermes config set custom_providers.3.extra_headers.User-Agent "curl/8.5.0"
bash

2. 解决辅助链路 403(标题、压缩、记忆的链路,也要改)#

定位到 hermes-agent 源码目录(修改前请注意备份):

agent/auxiliary_client.py 中找到 _create_openai_client 调用前的位置,合并 Provider 的自定义请求头:

try:
    from hermes_cli.config import get_custom_provider_extra_headers
    _pp_headers = get_custom_provider_extra_headers(custom_base)
except Exception:
    _pp_headers = {}

if _pp_headers:
    _merged = dict(extra.get("default_headers") or {})
    _merged.update(_pp_headers)
    extra["default_headers"] = _merged
python

(注:源码中包含“命名 custom”与“匿名 custom”两处分支,定位到 _apply_user_default_headers 锚点后按相同逻辑插入即可。)

主链路与辅助链路:正文由主链路返回,会话标题由辅助链路在后台生成

解决 Hermes v0.21.x 中转站 403 blocked
https://qianling.pw/hermes-provider-403/
Author 千灵
Published at September 14, 2026
Comment seems to stuck. Try to refresh?✨