Hermes Agent 自訂端點是以出站方式設定的,在 ~/.hermes/config.yaml 中以命名項目放在 providers: 底下,其中 api 是基礎 URL,而 transport 是傳輸協定。 這與 Hermes 自己的 API 伺服器不同,後者的方向相反。搜尋結果中兩者都被稱為「Hermes 自訂 API」,而且各自的官方文件頁面會針對相同查詢排名,因此請先確認方向。
本頁介紹的是 Hermes Agent,由 Nous Research 開發的開放原始碼代理程式。2026 年 9 月 21 日檢查 GitHub API 時,回傳了 archived: false、disabled: false、MIT 授權,以及同日的一次推送;最新發布版本是 Hermes Agent v0.21.3,於 2026 年 9 月 14 日標記為 v2026.9.14,不是預發布版本。本頁取得設定資訊的來源是該儲存庫與 hermes-agent.nousresearch.com。hermes-agent.org 涵蓋同一個專案,但網域位於 nousresearch.com 之外,並載入 Microsoft Clarity 分析工具(2026 年 9 月 21 日檢查);它不是專案自己的介面,因此不要從中取得設定。這也不是 Hermes 3 或 Hermes 4(Nous 的開放權重模型系列),也不是同名的 JavaScript 引擎。
兩種方向相反、都稱為 Hermes 自訂 API 的功能
| 出站:自訂模型供應商 | 入站:API 伺服器 | |
|---|---|---|
| 它的作用 | 讓 Hermes 指向他人的模型端點 | 將 Hermes 本身公開為相容於 OpenAI 的端點,供 Open WebUI 或 LobeChat 等前端使用 |
| 設定位置 | providers: 位於 ~/.hermes/config.yaml 中,密鑰位於 ~/.hermes/.env | API_SERVER_ENABLED 與 API_SERVER_KEY 位於環境中 |
| 涉及的位址 | 供應商的基礎 URL | 預設在 http://127.0.0.1:8642 上監聽;可透過 API_SERVER_HOST 和 API_SERVER_PORT 變更 |
| 誰持有金鑰 | Hermes 持有你的供應商金鑰 | 呼叫端持有你設定的 bearer 金鑰;每次部署都必須提供,包括迴路繫結 |
| 影響範圍 | 由哪個模型回答 | 完整存取工具集,包括終端機命令 |
兩列內容均摘自 Hermes 自己的頁面,於 2026 年 9 月 21 日閱讀:供應商參考文件與 API 伺服器頁面。你自己的安裝有一個命名細節值得確認:API 伺服器頁面記錄 hermes gateway 是執行它的命令,而 CLI 參考文件 將 hermes gateway 描述為訊息服務管理器,並列出 run、start、stop 與 status 子命令。請執行 hermes gateway --help,不要自行猜測。以下內容全部是出站部分。
最低限度的出站設定
# ~/.hermes/config.yaml
providers:
kunavo:
api: https://api.kunavo.com/v1 # aliases accepted: base_url, url
key_env: KUNAVO_API_KEY # or inline api_key:, or key_cmd:
transport: chat_completions # set it by hand; see the transport section
models:
claude-sonnet-5:
prompt_caching: true
model:
default: claude-sonnet-5
provider: custom:kunavoKUNAVO_API_KEY=your-key依供應商參考文件逐欄說明:設定金鑰為 providers.<name>,基礎 URL 欄位為 api(也接受 base_url 與 url 作為別名),認證憑證為 key_env,可使用內嵌的 api_key 或 key_cmd,傳輸協定為 transport。同一項目也接受 name、default_model、models、context_length、discover_models、extra_body、extra_headers、session_affinity_header、ssl_ca_cert / ssl_verify、catalog_provider 與 enabled: false。使用 model.provider: custom:kunavo 選取該項目,或在工作階段中途使用 /model custom:kunavo:<model-id>。
兩個命令不可互換。hermes model 必須在聊天工作階段外執行,是完整的供應商設定精靈,也是唯一能新增供應商或接收金鑰的功能。工作階段內的 /model 只會在現有項目之間切換。對於發出短期權杖的企業端點,key_cmd 是一個會將權杖輸出至 stdout 的命令,可直接輸出,或以含有 access_token 欄位的 JSON 輸出;Hermes 會執行該命令並將權杖快取到即將過期前,這比同一項目中的靜態 api_key 或 key_env 更合適。
請手動選取傳輸方式,不要將欄位留白
供應商參考文件列出自訂項目中 transport 可接受的三個值。文件也表示,hermes model 自訂端點精靈現在會明確詢問傳輸協定,並將答案儲存至 config.yaml;若欄位留白,則 URL 自動偵測「仍會作為備援」。文件明確說明的唯一偵測規則是:/anthropic 路徑對應至 anthropic_messages,而 Kunavo 基礎 URL 不符合;本頁讀到的其他頁面都未列出其餘啟發式規則,因此應寫入欄位,而不是推測其行為。Kunavo 提供 /v1/chat/completions、/v1/messages 與 /v1/responses,所以就文件上的對應而言,每種傳輸方式都有相符的路由。
| 傳輸方式 | 要寫入 api 的基礎 URL | 它應該到達的路由 | 信心程度 |
|---|---|---|---|
chat_completions | https://api.kunavo.com/v1 | /v1/chat/completions,Hermes 會附加路徑 | 雙方文件都有記載。該值必須手動寫入 |
anthropic_messages | 嘗試 https://api.kunavo.com 或 https://api.kunavo.com/v1 | /v1/messages | 未驗證。 在決定其中一個之前,請參閱下方備註 |
codex_responses | https://api.kunavo.com/v1 | /v1/responses | 路由存在。Hermes 會在 Perplexity 與 OpenCode 風格的 Responses 端點上,將自己的五個工具重新命名為 hermes_<name>;是否會將該重寫套用至任意 Responses 端點,文件未說明 |
Anthropic 這一列需要附帶說明,而不是給出肯定答案。Hermes 的 Azure Foundry 指南 表示,由於 Anthropic SDK 會將 /v1/messages 附加至每個請求,因此會從基底 URL 移除 /v1;但這句話位於 Azure 標題下,而供應商參考文件自己的範例(api: https://proxy.example.com/anthropic)從未說明 Hermes 對一般代理會附加什麼後綴。因此,上述兩個候選值都合理,其中一個可能因路徑中出現雙重 /v1 而導致 404。請檢查第一次呼叫實際記錄的請求路徑;基底 URL 文件說明了此傳輸方式中多數 404 背後混淆網址來源(origin)與 /v1 的陷阱。身分驗證是次要疑慮:Kunavo 的 Messages 路由 同時接受 Authorization: Bearer 與 x-api-key,因此 Anthropic SDK 對一般代理傳送的任何一種標頭都應該能被接受;但 Hermes 沒有記錄其選擇,因此「應該」才是誠實的說法。
本頁也無法回答的一個開放問題。Hermes 記錄了 GPT-5.x 系列模型名稱會靜默升級至 codex_responses,即使 config.yaml 仍為 chat_completions;但這句話位於 provider: azure-foundry 下方,表述方式則是模型名稱偵測。GPT slug 位於 provider: custom 時是否會觸發相同轉換,文件未說明。如果選擇 GPT 類模型,請記錄第一次呼叫實際前往的路由。
依傳輸方式區分,自訂端點不會自動取得的功能
這些都不是方案限制。根據專案自己的 首頁 FAQ,Hermes Agent「依 MIT 授權免費且開放原始碼」;providers: 字典也被記錄為一般設定,而非方案功能。它們是能力限制,且會依傳輸方式而異。
| 能力 | chat_completions | anthropic_messages | codex_responses |
|---|---|---|---|
| 提示快取 | 按模型選擇啟用:providers.<name>.models.<id>.prompt_caching: true。Hermes 會將宣告與確切的路由及執行階段模型 ID 相符配對,「不會重寫別名,也不會從供應商名稱、主機或模型系列推斷支援情況」;標記配置則依傳輸方式而定:聊天傳輸使用相容於 OpenAI 的封裝,anthropic_messages 使用原生內部區塊配置 | 此傳輸方式沒有記錄標記配置 | |
extra_headers | 適用。文件表示 extra_headers 同時會套用至相容於 OpenAI 的路由與 anthropic_messages 路由,包括主要用戶端、/model 切換、重建與輔助用戶端;並指出 bedrock_converse 是唯一不使用它的模式 | 兩者皆未說明;視為未測試 | |
| 推理強度 | 以頂層 reasoning_effort 欄位傳送。它「在 chat_completions 與 codex_responses 兩種傳輸方式上,均原樣抵達自訂端點,最高至 max」,只有 Hermes 內部的 ultra 會被限制為 max;Anthropic 傳輸方式未有說明。巢狀的 reasoning 物件保留給已知接受該欄位的端點。拒絕此強度的端點會回傳 HTTP 400,而不是靜默降級 | ||
| 輸出上限 | 不會自動設定。「自訂的 OpenAI 相容端點不會收到目錄大小的自動輸出上限,會套用其伺服器預設值。」 | 引文涵蓋相容於 OpenAI 的端點;文件沒有將其延伸至這些傳輸方式。無論如何,Hermes 不再讀取 model.max_tokens、HERMES_MAX_TOKENS 或 model_overrides.*.*.max_output_tokens,因此沒有 Hermes 端的旋鈕可提高上限 | |
| 上下文視窗 | 透過九步鏈結解析:設定覆寫、按模型項目、快取、端點的 /models、Anthropic、OpenRouter、Nous Portal、models.dev,最後得到 128K 預設值。偵測結果錯誤時,請設定 context_length | ||
針對閘道的兩個備用方式。catalog_provider 接受 Hermes 供應商 ID 或 models.dev ID,讓項目中的模型繼承該目錄的中繼資料;這只用於查詢,請求仍會使用你的金鑰傳送至你的 api URL。discover_models: false 則完全略過 /models 探測,只使用你在項目中列出的模型;當探索結果雜亂或緩慢時,這就是修正方式。本頁未測試 Kunavo 的 /v1/models 回應是否符合 Hermes 的探測要求;若不符合,上下文偵測會退回 128K 預設值。這些設定背後的成本考量——輔助槽位、委派工作程序與快取連續性——已在 Hermes Agent 定價中說明,此處不再重複。
在移入實際工作前執行的驗證階梯
以下是由你執行、並附有預期觀察結果的步驟,不是 Kunavo 已取得的結果。 尚未執行 Hermes 連線 Kunavo 的任何測試,也沒有 Kunavo 的 Hermes 設定指南;本頁任何內容都不應解讀為已測試的整合。全程保留目前可用的工作路由。
- 新增供應商,然後進行診斷。
hermes model會新增供應商;文件將hermes doctor記錄為診斷設定與相依性問題的命令,而 CLI 參考文件記錄它會執行兩項自訂端點設定檢查:custom_providers金鑰不是 YAML 清單,以及沒有相符providers:項目的舊式清單項目。兩者都只會發出警告,--fix不會重寫它們。 - 確認已載入金鑰,再開始產生費用。
hermes dump會輸出可複製貼上的設定摘要,包括版本、供應商、模型,以及是否存在 API 金鑰。預期會看到你的模型 ID 與已存在的金鑰。hermes prompt-size會離線執行,並回報系統提示與工具結構描述的位元組分解;這是每一回合在任何對話內容之前都會攜帶的固定部分。 - 一個非串流文字回合。 預期會收到回覆,且請求已前往你預期的路徑。自訂端點若「可以運作」但回傳亂碼,便是 Hermes 快速入門指南疑難排解表中的一列;該表列出錯誤的基礎 URL、錯誤的模型名稱,或端點實際上不相容於 OpenAI,並要求你先在獨立用戶端中驗證端點。
- 一個串流回合。 預期會收到逐步輸出的內容,而不是最後一次收到整個區塊。特定端點的串流框架是否符合 Hermes 的進度解析,本頁未進行測試。
- 一個工具回合。 預期工具會執行。若呼叫被以文字列印出來,問題在伺服器端的工具呼叫支援,而不是傳輸方式。
- 讀取計量器。
/usage是工作階段內的權杖、費用與上下文面板。請將其與供應商帳戶實際記錄的費用核對;代理程式根據回報權杖自行計算的數字是估算值,不是帳本。請參閱 用量文件。
| 第一次呼叫時的症狀 | 最可能的原因 | 查看位置 |
|---|---|---|
| 立即收到 404 | 基礎 URL 後綴——Anthropic 傳輸方式中重複的 /v1,或其他位置缺少一個 | 已記錄的請求路徑,然後檢查 基礎 URL |
| 401 或 403 | 金鑰從未載入:key_env 名稱錯誤,或值位於錯誤的檔案中 | hermes dump 回報金鑰是否存在 |
| 每一回合都收到 400 | transport 與端點提供的路由不相符 | 明確設定 transport,不要讓偵測自行選擇 |
| 400,指出未知欄位 | 端點拒絕的 reasoning_effort 強度。Hermes 不會靜默降級 | 降低強度後重試 |
| 工具呼叫以文字列印 | 伺服器端未啟用工具呼叫 | Hermes 列出各伺服器的修正方式,例如 llama.cpp 使用 --jinja,vLLM 使用 --enable-auto-tool-choice --tool-call-parser hermes |
| 上下文比預期更早截斷 | 偵測退回 128K 備用值 | 在項目上設定 context_length |
| 回覆正常,但帳單高於預期 | 沒有 prompt_caching 宣告,因此每回合都會以完整輸入速率重新讀取 | 提示快取與 快取文件 |
驗證階梯的成本,以及工作階段中途切換的成本
假設上述六個步驟總共傳送 26,000 個輸入權杖並接收 1,150 個輸出權杖——三次呼叫各自包含固定的系統提示與工具結構描述,另有一次重新傳送工具結果。此假設僅供說明;hermes prompt-size 會以位元組分解回報你自己的固定提示,比本頁猜測的數字更接近實際。費率是即時的 Kunavo 目錄每百萬權杖價格。
| 模型 | 每 1M 的輸入/輸出 | 整個驗證階梯的目錄估算 |
|---|---|---|
| Claude Sonnet 5 | $1.40 / $7.00 | $0.044 |
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.022 |
這是依目錄費率進行的範例權杖計算,不是實際測得的 Hermes 任務,也不是帳單上限。不包含快取寫入、外部工具與稅費。這個數字的重點在於它很小:驗證路由的成本遠低於在一週排程工作後才發現設定錯誤。
第二個數字就是 /model 命令隱藏的數字。提示快取以處理請求的模型為索引,因此任何對話中途的模型變更,都會使下一則訊息以完整輸入價格重新讀取整個對話,而不是使用快取費率;Hermes 將快取費率描述為便宜約 75% 至 90%。對於使用 Claude Sonnet 5、長度為 120,000 權杖的對話,每百萬權杖的 $1.40 與 $0.14 快取讀取費率之間的差額,單一回合約為 $0.151;偶爾一次微不足道,但形成習慣後就不再如此。Kunavo 的目錄金額是計費下限,而不是上限:上游回報費用時,帳單會取目錄成本與上游成本乘以適用加成兩者中較高者。最低金額是 $10 的預付儲值,無須訂閱。請參閱 計費。
再次撤銷設定
Hermes 記錄了復原路徑,因此試用的風險很低。項目上的 enabled: false 會隱藏它,但不會刪除它。config.yaml 的時間點副本會在 hermes setup 或 hermes migrate 重寫檔案之前寫入 backups/config/config.yaml.<reason>.<timestamp>,以及每次解析時寫入;完全相同的重複副本會略過,每個原因只保留最新的五份。若檔案之後解析失敗,Hermes 會提供最新的良好副本,而不是內建預設值。設定參考文件也將 model.base_url 註記為「在切換供應商時清除」,因此文件所述的行為是切換回內建供應商會捨棄過時的基礎 URL,而不是將其留在檔案中;請事後檢查寫入的值,不要自行假設。
三個陷阱來自較舊的教學文章。舊式頂層 custom_providers: 清單仍可運作,而 hermes update 會自動將其遷移至 providers: 字典,其中舊式 model 會變成 default_model,舊式 api_mode 會變成 transport。LLM_MODEL 位於 .env 中,現在已徹底移除;config.yaml 是唯一真實來源。此外,兩個目前的官方頁面以兩種方式記錄 OPENAI_BASE_URL:供應商參考文件表示它僅對 openai-api 供應商有效,而環境變數參考文件則將它列為自訂端點的基礎 URL。這項歧異尚未解決,因此請在 config.yaml 中設定端點,不要依賴該環境變數作為路由。
如果你是在選擇供應商,而不是接線,OpenAI 相容 API說明相容介面包含與不包含的內容,Hermes 與 OpenClaw則比較兩個代理程式。準備使用已儲值的金鑰測試此路由時,請建立 Kunavo 帳戶。
常見問題
什麼是 Hermes Agent 自訂 Endpoint?
自訂端點是一個對外的模型供應商:它是 ~/.hermes/config.yaml 中 `providers:` 下的具名項目,會將 Hermes Agent 指向您自己的 OpenAI、Anthropic 或 Responses 相容 URL。該項目使用 `api` 指定基底 URL,使用 `key_env`/`api_key`/`key_cmd` 其中之一指定憑證,並使用 `transport` 指定傳輸通訊協定。您可以透過 `model.provider: custom:<name>` 選取,或在工作階段中途使用 `/model custom:<name>:<model-id>` 選取。內容讀取自 Hermes 供應商文件,日期為 2026 年 9 月 21 日。
Hermes 自訂 API 與 Hermes API 伺服器相同嗎?
不相同,兩者的方向相反。API 伺服器是入站的:它會在 127.0.0.1:8642 上公開 Hermes Agent 本身的 OpenAI 相容 HTTP Endpoint,讓 Open WebUI 或 LobeChat 等前端可以驅動它;其文件也警告,這會提供包括終端機命令在內的完整工具集存取權,即使繫結至回送位址,也要求提供 API_SERVER_KEY。自訂供應商是出站的:它決定 Hermes 要呼叫哪個模型 API。設定其中一個不會影響另一個。
如何在 Hermes Agent 中新增自訂供應商?
在聊天工作階段之外,從終端機執行 `hermes model` — Hermes 將它說明為完整的供應商設定精靈,也是唯一會新增供應商、執行 OAuth 流程並接收 API 金鑰的地方。工作階段內輸入的 `/model` 命令只能在已設定的供應商和模型之間切換,無法新增供應商。您也可以直接將 `providers:` 區塊寫入 ~/.hermes/config.yaml,並將 API 金鑰放入 ~/.hermes/.env。
OpenAI 相容 Gateway 應設定哪種 transport?
`chat_completions`。Hermes 的供應商參考文件列出三個接受的值:chat_completions、anthropic_messages 和 codex_responses;目前的設定精靈也會明確詢問通訊協定,而不是依賴 URL 自動偵測,後者僅被記載為備援方式。請注意官方文件中的一處不一致:設定模型頁面的 Prompt Caching 範例改寫成 `transport: openai_chat`。chat_completions 是供應商參考文件與開發人員指南中使用的形式,因此建議優先使用它;但 openai_chat 可能是可接受的別名,而不一定是錯誤。
為什麼我的 Hermes 自訂端點在工具呼叫時失敗?
先將傳輸層與模型分開。每次工具回合都收到 400,通常表示傳輸方式與端點提供的路由不相符,因此請手動設定 `transport`,不要將欄位留白。工具呼叫若以純文字抵達而未執行,問題在伺服器的工具呼叫支援,而不是 Hermes:其供應商參考文件列出各伺服器的修正方式,例如 llama.cpp 使用 --jinja,vLLM 使用 --enable-auto-tool-choice --tool-call-parser hermes。若回覆有抵達但內容是亂碼,則符合快速入門指南中「基礎 URL 錯誤、模型名稱錯誤,或端點實際上不相容於 OpenAI」的疑難排解項目;修正方式是先在獨立用戶端中驗證端點。
在 Hermes Agent 中使用自訂端點會產生額外費用嗎?
Hermes 本身不會。其首頁 FAQ 表示 Hermes Agent 依 MIT 授權免費且開放原始碼;模型供應商與選用的託管服務則有各自的定價,因此費用由你的供應商收取。在 Kunavo 沒有訂閱費,最低須預付 $10,這是為金鑰儲值所需的金額,而不是任務費用。自訂端點預設會失去的功能是提示快取,且必須按模型宣告;在長工作階段中,這是最大的成本槓桿。
Hermes Agent 文件——供應商參考文件、API 伺服器頁面、模型設定頁面、設定頁面、CLI 參考文件、斜線命令參考文件、快速入門指南與專案首頁——於 2026 年 9 月 21 日閱讀。儲存庫狀態與最新版本於同日透過 GitHub API 核對。Kunavo 的三條 API 路由已在其自身原始碼中確認。所有美元金額都是以即時目錄費率計算的範例權杖費用,不是實際測得的任務成本。Hermes 設定內容來自原始文件;尚未執行 Hermes 連線 Kunavo 的任何測試。