Hermes Agent 在 Windows 上报 HTTP 402?先别怀疑账号余额
在 Windows 上折腾 Hermes Agent 时,你可能已经顺利过了安装目录、代理、安全软件那几关,结果第一次发消息就撞上 HTTP 402。logs/errors.log里写着The free trial quota for the service has been exhausted,看起来像账号没钱了,但真正断点的往往不是账户余额,而是当前请求打到的那个服务 ID 已经耗尽额度。这篇就按排障视角,把 provider 从腾讯 TokenHub 切到 TaoToken 通道(官网:https://taotoken.net/?utm_source=taotoken_aicg_blog_end ),让 Hermes 的chat_completions请求先跑通,再回头确认 402 到底来自哪个模型。
一、原问题与场景:402 不是“账号没钱”,是“这个服务没额度”
Hermes Agent 在 Windows 上跑起来后,默认 provider 指向腾讯 TokenHub,base_url是https://tokenhub.tencentmaas.com/v1,api_mode是chat_completions。发第一条消息,界面弹 HTTP 402,errors.log里堆着:
The free trial quota for the service has been exhausted第一反应通常是去腾讯控制台看余额,结果发现账户里其他服务还在跑,额度也还在。问题出在 Hermes 当前会话锁定的模型是hy3-preview,而这个服务本身已经停止、额度为 0。HTTP 402 是服务级配额耗尽,不是账户级欠费。
更麻烦的是,Hermes 的模型下拉列表最初只显示一个 Hy3,点“刷新模型”也不一定能把腾讯控制台里其他在线推理服务枚举出来。于是你被卡在“列表里只有一个没额度的模型”这个死循环里。
排障思路要拆成两层:第一层,先把请求通道换到一个能稳定返回、便于观察model字段的兼容通道,确认 Hermes 的chat_completions请求本身没问题;第二层,再回到日志里确认 402 具体是哪个model触发的。TaoToken 在这里的角色只是提供 Key 和兼容通道,HTTP 状态码和model字段仍然要看 Hermes 自己的agent.log。
二、TaoToken 前置:拿 Key、认清 base_url 不带 /v1
在动手改 Hermes 配置之前,先把 TaoToken 这一侧准备好。
打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ,注册并创建一个 API Key。这个 Key 就是后面填进 Hermes 的凭证,格式上以YOUR_API_KEY代指,实际使用时替换成你自己的那串。
关键点在于base_url。Hermes 里填的是:
https://taotoken.net/api注意不要带/v1。Hermes 的 provider 配置里,base_url和api_mode是配合使用的,api_mode: chat_completions时,Hermes 会自己在base_url后面拼接具体路径。如果你手动写成https://taotoken.net/api/v1,拼接后路径就会重复,请求直接 404 或 400,反而把 402 的问题掩盖成另一个错。
如果你更习惯用 CLI 方式管理,也可以装 TaoToken 的命令行工具:
npm i -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MODEL_ID这条命令里的-u同样是不带/v1的 API 地址,-m后面接你要用的模型 ID。CLI 适合快速验证 Key 和通道是否通,但 Hermes 的排障还是以它自己的配置文件为准。
三、可复制配置:把 provider 从腾讯 TokenHub 改到 TaoToken
Hermes 的模型配置集中在config.yaml和.env里。先看config.yaml中model这一段,原始状态大概是这样:
model: default: hy3-preview provider: tencent-tokenhub base_url: https://tokenhub.tencentmaas.com/v1 api_mode: chat_completions要切到 TaoToken 通道,改成:
model: default: qwen3.5-flash provider: taotoken base_url: https://taotoken.net/api api_mode: chat_completionsprovider字段改成taotoken,base_url换成不带/v1的地址,default先填一个你确认有额度的模型 ID。API Key 不要写进config.yaml,放到 Hermes 根目录的.env里:
TAOTOKEN_API_KEY=YOUR_API_KEY或者通过 Hermes 的设置界面填入。无论哪种方式,Key 都只保存在本地,不要贴进聊天记录或截图。
改完配置文件后,还有一个容易忽略的动作:当前已经打开的会话不会自动读取新的config.yaml。你需要在目标会话里用/model命令显式切换:
/model qwen3.5-flash --provider taotoken --global语法是“模型名”和“提供方”分开写,不要写成taotoken:qwen3.5-flash这种冒号拼接,Hermes 会把整段当成模型名,然后提示模型不存在。--global会更新全局默认,但当前会话是否真的切过去,要看右下角的模型标签。
四、验证请求与成功结果:看 agent.log 里的 model 和状态码
配置改完、会话切完,发一条最简单的消息,比如“你好”。然后立刻去看日志:
Get-Content 'E:\Hermes\logs\agent.log' -Tail 160 Get-Content 'E:\Hermes\logs\errors.log' -Tail 120在agent.log里找这几个字段:
provider=taotoken model=qwen3.5-flash HTTP 200 finish_reason=stop如果provider已经是taotoken,model是你指定的那个 ID,HTTP 状态码是 200,finish_reason是stop,说明 Hermes 的chat_completions请求已经通过 TaoToken 通道正常发出并收到回复。这时候再回头看之前的 402,就能确认它来自hy3-preview这个服务,而不是账号整体没钱。
如果agent.log里仍然出现 402,先看同一行里的model=是什么。如果还是hy3-preview,说明当前会话没有真正切过去,右下角标签可能还停在旧模型,回到会话里再执行一次/model命令。如果model已经是你指定的新 ID 但仍然 402,那就要去 TaoToken 的模型对话页面确认这个模型 ID 当前是否有可用额度。
验证模型是否真的在工作的另一个办法,是打开模型对话页面直接发一条请求,看返回是否正常。这一步能把“Hermes 配置问题”和“模型通道问题”分开。
五、本篇常见错排查
错误一:base_url 带了 /v1。Hermes 的api_mode: chat_completions会自己拼路径,你再加/v1就重复了。表现是 404 或 400,不是 402。检查config.yaml里base_url是否严格等于https://taotoken.net/api。
错误二:改了 config.yaml 但没切会话。配置文件管的是“以后默认用什么”,/model命令管的是“当前会话现在用什么”。右下角标签没变,请求就还是旧模型。判断依据不是config.yaml,是agent.log里的model=字段。
错误三:/model 语法写错。正确写法是/model qwen3.5-flash --provider taotoken --global,模型名和 provider 分开。写成taotoken:qwen3.5-flash会被当成一个完整模型名,然后报模型不存在。
错误四:Key 没生效。.env里的变量名要和 Hermes 读取的一致,填完 Key 后最好重启一次 Hermes 后端,或者至少新开一个会话。旧会话可能还持有旧的鉴权上下文。
错误五:把 402 当成账号问题。402 的原文是The free trial quota for the service has been exhausted,关键词是for the service。先看agent.log里的model=,确认是哪个服务 ID 耗尽,再决定是换模型还是换通道。
错误六:只看 errors.log 不看 agent.log。errors.log给的是错误堆栈和状态码,agent.log给的是请求实际用的 provider、model、endpoint。两个一起看,才能把“哪个模型、走哪条通道、返回什么码”串起来。
六、语义一致 CTA
如果你也在 Hermes 里被 402 卡住,建议先把 provider 切到 TaoToken 通道,用/model显式切到一个有额度的服务 ID,再通过agent.log确认请求实际打到了哪个模型。需要创建 Key 或查看接入方式,可以从 API Keys 和接入文档入口进去;想直接验证某个模型 ID 是否可用,用模型对话页面发一条请求最快;如果你打算长期在 Hermes 里跑编码和 Agent 工作流,可以了解 Coding Plan 的额度方式,避免每次都在服务级配额上踩坑。