Hermes Agent 更改 User-Agent 有四种方法:一、修改 cli-config.yaml 中 http_headers;二、通过 HERMES_HTTP_USER_AGENT 环境变量注入;三、在自定义工具脚本中硬编码 headers;四、修改 utils/http_client.py 中客户端默认 headers。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 时需要更改其发出的 HTTP 请求所携带的用户代理(User-Agent),例如绕过某些服务端 UA 检查、模拟特定浏览器或设备环境,则需手动调整其网络请求层的 UA 字符串。以下是实现 UA 伪装的具体操作方法:
一、修改 CLI 配置文件中的默认 UA
该方法适用于通过 hermes CLI 启动且依赖 requests 或 httpx 发起外部请求的场景,UA 将作用于 Agent 主动调用模型 API 或工具接口时的出站请求。配置文件为项目根目录下的 cli-config.yaml,需显式添加或覆盖全局请求头设置。
1、打开终端,进入 Hermes Agent 项目根目录:
cd ~/hermes-agent
2、编辑配置文件:
vim cli-config.yaml
3、在文件末尾新增以下 YAML 块(若已有 http_headers 字段则直接修改):
http_headers:
User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
4、保存并退出,重启 Hermes Agent:
hermes restart
二、通过环境变量注入自定义 UA
该方法优先级高于配置文件,适用于多环境切换或临时调试,所有由 Hermes Agent 启动的 Python 子进程(含工具调用)均可继承该 UA 设置,但仅影响基于标准库 urllib 或 requests 构建的请求。
1、在终端中执行以下命令(替换为所需 UA 字符串):
export HERMES_HTTP_USER_AGENT="Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1"
2、确认变量已生效:
echo $HERMES_HTTP_USER_AGENT
3、启动 Hermes Agent:
hermes
三、在自定义工具中硬编码 UA
当某项特定功能(如网页抓取、API 调用)由独立工具模块实现时,可在对应 Python 工具脚本内直接覆盖请求头,此方式粒度最细、控制最强,且不受全局配置影响。
1、定位工具文件路径,例如:
~/hermes-agent/tools/web_scraper.py
2、在发起请求前插入 headers 字典定义:
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
}
3、将 headers 传入 requests.get() 或 httpx.Client() 初始化参数中。
四、修改底层 HTTP 客户端默认配置
该方法影响全系统 HTTP 请求行为,适用于深度定制场景,需修改 Hermes Agent 内部封装的 HTTP 客户端初始化逻辑,适用于使用 httpx.AsyncClient 或 requests.Session 的统一出口。
1、打开客户端封装文件:
~/hermes-agent/hermes/utils/http_client.py
2、查找类似以下代码段:
client = httpx.AsyncClient(timeout=30)
3、在其初始化参数中添加默认 headers:
client = httpx.AsyncClient(
timeout=30,
headers={"User-Agent": "Hermes-Agent/2.4.0 (Custom-UA-Mode)"}
)
4、保存文件后重新安装可编辑包:
pip install -e .











