字节笔记本
2026年6月21日
hermes教程-订阅代理
快速开始
1. 登录你的提供商(一次性操作)
hermes portal此命令会在浏览器中打开 Nous Portal 的 OAuth 流程。Hermes 将刷新令牌存储在 ~/.hermes/auth.json 中——所有 Hermes 提供商登录信息都存放在此处。
2. 启动代理
hermes proxy startStarting Hermes proxy for Nous Portal
Listening on: http://127.0.0.1:8645/v1
Forwarding to: (resolved per-request from your subscription)
Use any bearer token in the client — the proxy attaches your real credential.让此进程在前台运行。如果你希望在退出登录后仍能保持运行,可以使用 tmux、nohup 或 systemd 单元。
3. 将你的应用指向代理
任何兼容 OpenAI 的应用配置都使用相同的三个参数:
Base URL: http://127.0.0.1:8645/v1
API key: 任意值(例如 "sk-unused")
Model: Hermes-4-70B # 或 Hermes-4.3-36B、Hermes-4-405B代理会忽略来自你应用的 Authorization 头,并将你真实的 Portal 凭证附加到上游请求中。当 bearer 令牌接近过期时,会自动刷新。
可用提供商
hermes proxy providers目前内置的提供商:nous(Nous Portal)和 xai(xAI / Grok)。更多 OAuth 提供商可以通过在 hermes_cli/proxy/adapters/ 中实现 UpstreamAdapter 接口来添加。
检查状态
hermes proxy statusHermes proxy upstream adapters
[nous ] Nous Portal — ready (bearer expires 2026-05-15T06:43:21Z)如果看到 not logged in,请运行 hermes portal。如果看到 credentials need attention,说明你的刷新令牌已被撤销(很少发生——如果你从 Portal 网页界面退出登录时会出现)——只需重新运行 hermes portal。
允许的路径
代理仅转发上游实际提供服务的路径。对于 Nous Portal:
| 路径 | 用途 |
|---|---|
/v1/chat/completions | 聊天补全(流式 + 非流式) |
/v1/completions | 传统文本补全 |
/v1/embeddings | 嵌入 |
/v1/models | 模型列表 |
其他路径(如 /v1/images/generations、/v1/audio/speech 等)会返回 404,并附带清晰的错误信息,指出允许的路径。这可以防止杂散客户端向上游泄露奇怪的请求。
配置 OpenViking 使用 Portal
OpenViking 是一个上下文数据库,需要 LLM 提供商来运行其 VLM(用于提取记忆的视觉/语言模型)和嵌入模型。通过代理,你可以将其 vlm.api_base 指向本地代理:
编辑 ~/.openviking/ov.conf:
{
"vlm": {
"provider": "openai",
"model": "Hermes-4-70B",
"api_base": "http://127.0.0.1:8645/v1",
"api_key": "unused-proxy-attaches-real-creds"
}
}然后在终端中与 openviking-server 一起启动代理:
## 终端 1
hermes proxy start
## 终端 2
openviking-server现在,OpenViking 的 VLM 调用将通过你的 Portal 订阅进行。嵌入模型方面仍需要自己的提供商——Portal 确实提供 /v1/embeddings 服务,但模型选择取决于你的套餐支持情况;请查看 portal.nousresearch.com/models。
配置 Karakeep(或任何书签/摘要应用)
Karakeep 使用兼容 OpenAI 的 API 进行书签摘要。在其配置中:
## Karakeep .env
OPENAI_API_BASE_URL=http://127.0.0.1:8645/v1
OPENAI_API_KEY=any-non-empty-string
INFERENCE_TEXT_MODEL=Hermes-4-70B同样的模式也适用于 Open WebUI、LobeChat、NextChat 或任何其他兼容 OpenAI 的客户端。
在局域网中暴露
默认情况下,代理绑定到 127.0.0.1(仅限本地主机)。要让网络中的其他机器使用它:
hermes proxy start --host 0.0.0.0 --port 8645⚠ 请注意: 你网络中的任何人都可以使用你的 Portal 订阅。代理本身没有认证——它接受任何 bearer 令牌。如果你将此服务暴露在受信任网络之外,请使用防火墙、VPN 或带有适当认证的反向代理。
速率限制
你的 Portal 套餐的 RPM/TPM 限制适用于整个代理。代理不会进行扇出或池化——它是一个使用你完整订阅配额的单一 bearer。在 portal.nousresearch.com 监控使用情况。
架构
代理有意保持最小化。每个请求的处理流程:
- 从你的应用接收
POST /v1/chat/completions - 查找适配器的当前凭证(如果即将过期则刷新)
- 逐字转发请求体,并附加
Authorization: Bearer <minted-key> - 将响应原样流式返回(保留 SSE)
无转换。无请求体日志记录。无代理循环。代理只是一个附加凭证的透传。
未来:更多 OAuth 提供商
适配器系统是可插拔的。添加新的提供商(例如 HuggingFace、GitHub Copilot 的聊天端点、通过 OAuth 的 Anthropic)需要在 hermes_cli/proxy/adapters/<provider>.py 中实现 UpstreamAdapter,并在 adapters/__init__.py 中注册。在协议层面不兼容 OpenAI 的提供商(例如 Anthropic Messages API)需要转换层,这超出了当前范围。