Section: Core Features · URL: https://hermesbible.com/docs/user-guide/features/subscription-proxy
Subscription proxy 是一個本地 HTTP 伺服器,讓外部應用 — OpenViking、Karakeep、Open WebUI,任何支援 OpenAI 相容 chat completions 的程式 — 使用你透過 Hermes 管理的供應商訂閱作為它們的 LLM 端點。Proxy 會附加正確的憑證(自動重新整理),因此應用永遠不需要靜態 API 金鑰。
這與 API server 不同:
| API server | Subscription proxy | |
|---|---|---|
| 服務內容 | 你的 agent(完整工具集、記憶、技能) | 原始模型推論 |
| 使用場景 | 「使用 Hermes 作為聊天後端」 | 「從另一個應用使用我的 Portal 訂閱」 |
| 驗證方式 | 你的 API_SERVER_KEY | 任何 bearer(proxy 附加真實憑證) |
| 工具呼叫 | 是 — agent 執行工具 | 否 — 純透傳 |
當你想要agent 作為後端時,使用 API server。當你只是想透過訂閱使用模型時,使用 proxy。
快速開始
1. 登入你的供應商(一次性)
hermes portal
這會開啟你的瀏覽器進行 Nous Portal OAuth 流程。Hermes 將 refresh token 儲存在 ~/.hermes/auth.json — 與所有 Hermes 供應商登入存放的位置相同。
2. 啟動 proxy
hermes proxy start
Starting 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
Proxy 會忽略來自你應用的 Authorization 標頭,並在上游請求中附加你真實的 Portal 憑證。當 bearer 接近過期時會自動重新整理。
可用供應商
hermes proxy providers
目前已發佈:nous(Nous Portal)和 xai(xAI / Grok)。可以在 hermes_cli/proxy/adapters/ 中實作 UpstreamAdapter 介面來新增更多 OAuth 供應商。
檢查狀態
hermes proxy status
Hermes proxy upstream adapters
[nous ] Nous Portal — ready (bearer expires 2026-05-15T06:43:21Z)
如果看到 not logged in,請執行 hermes portal。如果看到 credentials need attention,表示你的 refresh token 已被撤銷(罕見 — 通常發生在你從 Portal 網頁 UI 登出時)— 只需重新執行 hermes portal。
允許的路徑
Proxy 只轉發上游實際提供的路徑。對於 Nous Portal:
| 路徑 | 用途 |
|---|---|
/v1/chat/completions | 聊天補全(串流 + 非串流) |
/v1/completions | 舊版文字補全 |
/v1/embeddings | 向量嵌入 |
/v1/models | 模型列表 |
其他路徑(/v1/images/generations、/v1/audio/speech 等)會回傳 404 並附帶清楚的錯誤訊息指向允許的路徑。這可以防止游離的用戶端向上游洩漏奇怪的請求。
設定 OpenViking 使用 Portal
OpenViking 是一個上下文資料庫,需要 LLM 供應商來提供其 VLM(視覺/語言模型,用於擷取記憶)和嵌入模型。透過 proxy,你可以將其 vlm.api_base 指向你的本地 proxy:
編輯 ~/.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 並行的終端機中啟動你的 proxy:
# 終端機 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 相容的用戶端。
在區域網路上公開
預設情況下 proxy 綁定 127.0.0.1(僅本機)。要讓網路上的其他機器使用它:
hermes proxy start --host 0.0.0.0 --port 8645
⚠ 請注意: 你網路上的任何人都可以使用你的 Portal 訂閱。Proxy 本身沒有驗證機制 — 它接受任何 bearer。如果要在信任網路之外公開,請使用防火牆、VPN 或帶有適當驗證的反向代理。
速率限制
你的 Portal 方案的 RPM/TPM 限制適用於整個 proxy。Proxy 不會分散或池化 — 它使用你的完整訂閱配額作為單一 bearer。在 portal.nousresearch.com 監控使用量。
架構
Proxy 設計上是精簡的。每個請求:
- 從你的應用接收
POST /v1/chat/completions - 查找適配器的當前憑證(如即將過期則重新整理)
- 逐字轉發請求本文,附帶
Authorization: Bearer <minted-key> - 原封不動地串流回應(保留 SSE)
無轉換。不記錄請求本文。無 agent 迴圈。Proxy 是一個附加憑證的透傳層。
未來:更多 OAuth 供應商
適配器系統是可插拔的。新增供應商(例如 HuggingFace、GitHub Copilot 的聊天端點、透過 OAuth 的 Anthropic)需要在 hermes_cli/proxy/adapters/<provider>.py 中實作 UpstreamAdapter 並在 adapters/__init__.py 中註冊。在協定層級不相容 OpenAI 的供應商(例如 Anthropic Messages API)需要轉換層,這不在目前的範圍內。