一个细节,让我从 OpenClaw 转投自我进化 AI Agent Hermes
配好 Hermes Agent,发了条消息,12.7 秒收到回复。一切正常。
但翻日志的时候,一行输出让我停住了:
Auxiliary compression: using auto (google/gemini-3-flash-preview)
at https://api.githubcopilot.com
api.githubcopilot.com?
我从没配过 Copilot 的 API key。
先说背景
我一直在用 OpenClaw 跑 AI Agent。最近 Nous Research 开源了 Hermes Agent,号称"自我进化的 AI Agent"。好奇,装了一个试试。
两者能共存,试错成本为零。
安装过程很顺。配好本地 proxy 指向我现有的模型服务,在 Discord 上发了句 hi,回复正常。故事到这里本来就结束了。
但我有个习惯——新服务跑起来先看日志。
日志里的不速之客
Gateway 日志很干净。消息收到 → 调模型 → 12.7 秒出结果 → 发送成功。但中间夹着两行:
Auxiliary auto-detect: using api-key (default)
— skipped: openrouter, nous, local/custom, openai-codex
Auxiliary compression: using auto (google/gemini-3-flash-preview)
at https://api.githubcopilot.com
说白了,Hermes 给自己找了一个"备用模型"来做上下文压缩——长对话时把历史消息做摘要,省 token。
它找到的是 GitHub Copilot 的 API。
问题是:我压根没配过 Copilot。
追源码
好奇心上来了。Hermes 是开源的,直接翻。
在 auxiliary_client.py 里,有一个 5 级优先 fallback 链。Hermes 给辅助任务(压缩、摘要、视觉分析)找模型时,会按这个顺序逐级探测:
1. OpenRouter → 没配 API key,跳过
2. Nous Portal → 没登录,跳过
3. 本地自定义端点 → 被跳过了
4. OpenAI Codex OAuth → 没有 token,跳过
5. API-key 提供商注册表 → 遍历所有 provider...
前 4 级全部跳过。第 5 级命中。
它遍历了一个叫 PROVIDER_REGISTRY 的注册表,轮到 copilot 这个 provider 时,调了一个专用模块 copilot_auth.py。
这个模块的探测逻辑:
def resolve_copilot_token():
# 1. 检查 COPILOT_GITHUB_TOKEN 环境变量 → 没有
# 2. 检查 GH_TOKEN → 没有
# 3. 检查 GITHUB_TOKEN → 没有
# 4. 最后一招:
token = _try_gh_cli_token() # 执行 gh auth token
最后一步。它调了 subprocess.run(["gh", "auth", "token"])。
直接运行了我本机的 GitHub CLI,从本地存储里拿到了 OAuth token。然后用这个 token 对接 api.githubcopilot.com,给自己找了个免费的压缩模型。
整个过程:零配置,零提示,零授权。
<figure><img src=“images/compare.png” alt=“compare”></figure>
两种设计哲学
往回退一步,对比一下。
OpenClaw 的方式:你在配置文件里声明每个 provider 的 baseUrl、apiKey、模型名。配了才用,没配就不用。像填表。
Hermes 的方式:先看你显式配了什么。没配?往下找。环境变量有没有?CLI 工具有没有?本地 OAuth 存储有没有?一路往下探测,直到找到能用的资源。像侦探。
OpenClaw 的方式没毛病。显式配置可预测、可审计,出了问题容易排查。
但 Hermes 的做法让我停下来想了一下。它更接近 “Agent” 这个词的本意——主动感知环境,适应环境,不是等环境来适配自己。
一个好的 Agent,应该像一个靠谱的新同事:入职第一天,先看看工位上有什么工具能用,而不是递给你一张表让你填完所有配置。
一点安全上的微妙
当然,这里有个张力。
Hermes 没经过我显式授权,就跑了 gh auth token 拿到了我的 GitHub OAuth token。虽然只用于内部的辅助任务,但这个行为本身值得注意。
方便和安全之间的取舍,永远是设计中最难的部分。Hermes 选了方便那一边,至少在辅助任务这个场景下。你接不接受,取决于你对 Agent 的信任边界画在哪。
写在最后
这只是我试用 Hermes 的第一个发现,但它让我对这个项目的设计品味有了信心。
更多功能——比如号称的自我进化、静默沉淀 Skill、从对话中学习——还在实验中,后续有了心得再分享。
欢迎关注,也欢迎评论区聊聊:你在用什么 AI Agent?有没有哪个细节特别打动你?
源码参考:Hermes Agent — agent/auxiliary_client.py、hermes_cli/copilot_auth.py