文件
Hermes Agent
Hermes Agent 可透過 hermes model 指令或在 config.yaml 中加入幾行設定,將任何端點設為自訂供應商。對於自行執行的代理,設定行只是簡短的一部分:本頁也會說明各通訊協定上由哪一端設定快取斷點、排程工作和輔助任務會增加多少每日費用,以及 402 錯誤會如何影響一輪對話。
在 ~/.hermes/config.yaml 中新增具名供應商,設定 api https://api.kunavo.com、transport anthropic_messages,並以 provider: custom:kunavo 選取後,Hermes Agent 就會透過 Messages 協定使用 Claude,並自行傳送快取標記及輸出上限。
# ~/.hermes/config.yaml
providers:
kunavo:
api: https://api.kunavo.com # origin — the Anthropic SDK adds /v1/messages
key_env: KUNAVO_API_KEY # the variable's NAME; the key goes in ~/.hermes/.env
transport: anthropic_messages
models:
claude-sonnet-5:
context_length: 1000000
prompt_caching: true
claude-haiku-4-5:
context_length: 200000
prompt_caching: true
model:
default: claude-sonnet-5
provider: custom:kunavoapi 指的是來源站點,也就是 https://api.kunavo.com,不含 /v1。Hermes 用於此傳輸方式的 Anthropic SDK 會自行附加 /v1/messages;Hermes 的文件也指出,Hermes 會在將 URL 傳給該 SDK 前移除結尾的 /v1,因此無論哪種情況,來源站點都是正確格式。下方的 OpenAI 相容通訊協定才需要保留後綴。transport: anthropic_messages 值得手動設定。Hermes 可以根據 URL 偵測連線類型,但其文件明確說明的唯一規則,是路徑以 /anthropic 結尾;此基底 URL 並不符合這個條件。prompt_caching: true 會在此項設定中明確啟用該模型的快取標記;context_length 則是型錄列出的上下文視窗——Claude Sonnet 5 可使用 1,000,000 個 token,並採統一費率。Hermes 預設會在視窗使用到一半時進行壓縮;對這麼大的視窗來說,觸發時間太晚。下方的費用說明會列出可提前觸發的設定。sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 Hermes Agent 設定。逐步操作
- 在
/app/keys建立金鑰並複製——金鑰只會顯示一次。 - 將金鑰儲存在 Hermes 存放機密資訊的位置:
hermes config set KUNAVO_API_KEY sk-kn-...會將它寫入~/.hermes/.env。區塊中的key_env行會指定該變數;金鑰本身絕不會存入config.yaml。 - 將此區塊加入
~/.hermes/config.yaml;使用hermes config edit開啟檔案。若已有model:區段,請替換其中的default和provider,其餘內容保留不變。 - 也可以讓精靈代為寫入:在終端機中、任何聊天工作階段之外執行
hermes model,選擇 Custom endpoint (self-hosted / VLLM / etc.),並依提示輸入 API 基底 URL、金鑰、模型名稱、API 模式及上下文長度。 - 啟動
hermes並查看橫幅:其中會顯示模型及其上下文視窗,兩者都應與區塊中的設定相符。 - 傳送兩則訊息,然後開啟
/usage查看各輪使用的資源。若要在工作階段中切換模型,請使用/model custom:kunavo:claude-opus-5-5。
已於 2026年10月5日 根據 Hermes Agent 的 AI 供應商頁面 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。
除錯用戶端前先驗證
一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 JSON,則相同的基礎 URL 與金鑰在 Hermes Agent 中也能運作。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/messages \
-H "Authorization: Bearer sk-kn-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'欄位中應填入哪個模型 ID
每個文字模型都能以模型 ID 存取——即時清單位於 GET /v1/models,帶有價格的目錄位於模型頁面。費率是每 1M 權杖的美元價格,輸入/輸出。
| 模型 ID | Kunavo 輸入/輸出 | 它在 Hermes Agent 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 主要模型 — 對話、工具迴圈和委派工作 |
claude-opus-5-5 | $2.80 / $14.00 | 處理較長或較困難的任務時升級使用;將其新增至 models,並以 /model 切換 |
claude-haiku-4-5 | $0.70 / $3.50 | 輔助任務和排程工作 — 壓縮、標題、cron. |
claude-fable-5 | $7.00 / $35.00 | 頂級模型 — 讓代理持續使用此模型之前,先用下表計算一天的費用 |
OpenAI 相容通訊協定
同一把金鑰也能透過 /v1/chat/completions 呼叫其他所有模型系列;對此,Hermes 文件記載的最精簡格式就足夠——一個包含 provider: custom 和 base_url 的 model: 區塊,這也是 hermes model 所要求的格式:
# ~/.hermes/config.yaml — the bare form, for an OpenAI-compatible endpoint
model:
default: gpt-6-sol
provider: custom
base_url: https://api.kunavo.com/v1 # this wire keeps /v1
key_env: KUNAVO_API_KEY
context_length: 1050000基底 URL 在此保留 /v1,這是 Hermes 文件中本機伺服器範例使用的格式;context_length 則固定上下文視窗,讓 Hermes 不必自行偵測。若要同時設定兩種連線,請為此連線建立專屬名稱——transport: chat_completions——並透過 /model custom:<name>:<model> 切換。
/v1/chat/completions 上,未指定上限的 Claude 請求會套用 4,096 個輸出 token 的上限,這會使長篇回覆或大型工具呼叫提早中斷。在 Anthropic 連線上,Hermes 會自行提供 max_tokens。若仍要在此使用 Claude,文件記載可透過具名項目的 extra_body,讓每個 chat-completions 請求都加入例如 max_tokens 這樣的欄位。在此連線上,Claude 的思考控制項也不會被轉送。各通訊協定的提示快取
使用 Anthropic 通訊協定時,Hermes 會自行附加快取標記。對於自訂供應商,Hermes 的模型設定頁面記載了上方區塊所使用的開關,也就是模型上的 prompt_caching: true,並說明標記配置會依傳輸方式而定:anthropic_messages 使用原生區塊,OpenAI 相容通訊協定則使用封套配置。Kunavo 的 /v1/messages 會原樣轉送收到的請求主體,不會自行新增任何斷點,因此在這種通訊協定下,標記若不是由 Hermes 加入,就不會有任何標記。
對於自訂端點,Hermes 文件未明確說明的是快取存留時間。文件針對透過原生 Anthropic API、OpenRouter 和 Nous Portal 使用 Claude 的情況,說明了 prompt_caching.cache_ttl(5m、1h 或 auto),但未提及其他端點。Kunavo 會轉送收到的任何標記,並以相同費率計算快取寫入費用,因此請從自己的用量資料判斷:暫停十分鐘後的下一輪對話若仍顯示快取讀取,就表示先前保留的是存留時間為一小時的快取項目。
在 OpenAI 相容連線上,只要提示夠長、可進行快取,Kunavo 就會自行為 Claude 模型設定快取斷點——分別位於系統提示詞、工具定義和對話結尾處,無論用戶端是否傳送標記皆如此。GPT 模型則由供應商以隱式方式進行快取。
無論由哪一端設定快取斷點,費用計算方式都相同。在 Claude Sonnet 5 上,快取讀取費率為每 1M 個 token $0.14,新輸入則為 $1.40;快取寫入費率為 $1.75,也就是 Claude 在輸入費率上加收的寫入溢價;若項目要求快取保留一小時,仍按相同費率計費。快取項目保留五分鐘,每次讀取都會續期,因此代理的費用與模型的關聯較小,主要取決於下一次請求是否在這段期間內送達。各模型的快取費率請見提示快取頁面。
Hermes 有一項行為帶來的費用高於任何費率:其文件指出,在工作階段中途切換模型、自動啟用備援或輪替憑證,都會重設提示快取,因此下一則訊息會以完整輸入價格重新讀取整段對話。請在長時間工作階段開始前選好模型。
常駐代理程式的每日費用
在 Hermes 中,沒有人輸入內容時仍會計費的項目,就是你排定的工作,以及每次對話觸發的旁支工作。Hermes 的 cron 文件指出,每次排程執行都會啟動新的工作階段,因此每次觸發時,完整提示——包括指示、工具架構和附加技能——都會計費。提示大小取決於你的設定,因此表格直接列出假設值:每次執行 20,000 個 token,每 30 分鐘執行一次,即每天 48 次。請依照自己的數據替換這兩項數值。
| 工作所用模型 | 每 1M 個 token 的輸入費率 | 每天執行 48 次 |
|---|---|---|
claude-haiku-4-5 | $0.70 | $0.67 |
claude-sonnet-5 | $1.40 | $1.34 |
claude-opus-5-5 | $2.80 | $2.69 |
claude-fable-5 | $7.00 | $6.72 |
有三項設定會影響這個數字,且都來自 Hermes 自身的文件。排程工作會使用每個工作的專屬模型;若未設定,則使用 cron.model;若仍未設定,則使用主要模型——因此 hermes config set cron.model claude-haiku-4-5 可讓所有未指定模型的工作避開高價方案。若工作指令碼輸出 {"wakeAgent": false},該次執行就會略過模型;不使用代理程式的工作也不會呼叫模型。至於旁支工作——壓縮、標題和視覺理解——都會使用主要模型,除非 auxiliary 將它們導向其他模型:
# ~/.hermes/config.yaml — what decides the cost of an unattended day
compression:
threshold_tokens: 256000 # compact here, not at half of a 1M window
auxiliary:
compression:
provider: kunavo # the named entry above
model: claude-haiku-4-5 # summaries on the cheapest tier
title_generation:
provider: kunavo
model: claude-haiku-4-5對大型上下文視窗來說,threshold_tokens 這項設定最重要。壓縮預設會在使用到一半的上下文長度時開始;Hermes 文件指出,此設定可為單次呼叫的費用設定固定上限。
代理實際運作時數是帳單的另一半,而這部分由快取決定。連續發出 100 個請求,每次都重新傳送包含 100,000 個 token 的上下文,並額外加入 2,000 個新 token,且回傳 800 個輸出 token。在 Claude Sonnet 5,上下文從快取讀取時,費用約為 $2.31;若每個請求都將其計為全新輸入,費用則約為 $14.84。工作相同,模型相同;差別在於是否設有斷點,以及請求間隔是否少於五分鐘。
以實際測量值說明規模,而非推測:在 Kunavo 使用常駐代理程式的帳戶中,活躍日的費用中位數為 $12.67,第 90 百分位數的活躍日費用約為 $163。這些金額是截至 2026年10月5日 已計費的費用,採用各日當時適用的費率。樣本群體不大,因此請將這些數字視為範圍的寬度,而非對你的代理程式的預測。
餘額用盡時
Kunavo 採預付制:每次呼叫都從錢包扣款,而在您睡覺時持續工作的代理也會在您睡覺時耗盡錢包餘額。若錢包餘額不足以負擔某個請求,該請求會在任一通訊協定上以 HTTP 402 和代碼 insufficient_balance 遭拒,且不會收取任何費用。拒絕發生在錢包餘額歸零之前:每個請求都會先預留其最壞情況下的費用,也就是提示內容加上允許產生的最大回覆,因此代理要求的輸出上限越高,其請求就越早開始遭拒。錯誤訊息會以 balance_usd 和 needed_usd 說明餘額不足的金額。
Hermes Agent 遇到供應商無法處理請求時,會使用 備援鏈:在 config.yaml 中設定 fallback_providers,透過 hermes fallback 管理,並逐輪嘗試。其文件列出主要模型遇到速率限制、伺服器錯誤、驗證失敗和 404 時會觸發備援;並指出 HTTP 402 屬於容量錯誤,會讓旁支工作改用備援鏈中的下一個供應商。文件沒有說明未設定備援時,遇到 HTTP 402 的輪次會如何處理。請按最直接的解讀做好準備——該輪會失敗,排程工作也會跟著失敗——並記得,若某一輪確實改用備援,就會從空的提示快取開始。
有兩項設定可避免無人值守的代理程式陷入這種狀況,兩者用途不同:
- 自動儲值,位於 儲值與帳單。儲存一張卡片,並設定三個數值:低於多少餘額時要儲值、每次要加多少,以及每月上限。之後,只要某次呼叫使餘額低於門檻,錢包就會在幾秒內自動補足。錢包餘額不足時送達的請求會等待該筆扣款完成,接著獲得處理,而非遭到拒絕。若無法扣款(例如卡片遭拒或已達每月上限),或單一請求預留的金額超過儲值後錢包持有的餘額,仍會回傳
402。此功能需要使用付款卡或 Link;Alipay、WeChat Pay、Pix 和其他當地付款方式無法用於自動扣款。 - API 金鑰的每月支出上限,位於 API 金鑰。為代理程式建立專屬金鑰,並設定該金鑰在一個日曆月內可支出的最高金額。超過此金額後,該金鑰發出的呼叫會以
402遭拒,且不會扣款;其他金鑰則不受影響,仍可正常使用。這能為失控的迴圈設下支出上限,而錢包無法做到這一點,因為所有金鑰共用同一個錢包。
設定自動儲值門檻時,請高於單次請求的預留金額;設定儲值金額時,請以代理程式一天的費用為基準,而非最低金額:最低儲值金額為 $10,上文所列常駐代理程式的每日費用中位數為 $12.67。自動儲值的限制請見帳單頁面,完整錯誤主體請見錯誤頁面。
相關指南
- Hermes Agent 自訂 API — 說明為何對外供應商不是對內 API 伺服器、transport 欄位的用途,以及首次呼叫時應執行的檢查。
- Hermes Agent 費用——除了 token 費率之外,執行它還有哪些費用。
- Hermes 上下文壓縮逾時——摘要程序停滯時錯誤代表什麼,以及如何復原。
- Hermes 與 OpenClaw 比較——另一個代理程式的相同設定方式,請參閱 OpenClaw 頁面。
常見問題
如何將自訂端點新增至 Hermes Agent?
在終端機中、不使用任何聊天工作階段,執行 hermes model,並選擇 "Custom endpoint (self-hosted / VLLM / etc.)":系統會依序要求輸入 API 基底 URL、API 金鑰、模型名稱、API 模式和上下文長度,接著將結果儲存至 ~/.hermes/config.yaml。您也可以手動編輯設定:單獨加入包含 provider: custom 和 base_url 的 model: 區段,或在 providers: 下加入包含 api、key_env 和 transport 的具名項目,再以 provider: custom:<name> 選取。工作階段中的 /model 指令只能在已設定的供應商之間切換。
Hermes Agent 的基底 URL 需要包含 /v1 嗎?
這取決於傳輸方式。對於 OpenAI 相容端點(transport chat_completions),基底 URL 要保留後綴;這也是 Hermes 的供應商頁面在本機伺服器範例中使用的格式。Kunavo 的 URL 為 https://api.kunavo.com/v1。對於 Anthropic 相容端點(transport anthropic_messages),請填寫來源站點 https://api.kunavo.com,因為 Anthropic SDK 會自行附加 /v1/messages。Hermes 的 Microsoft Foundry 指南指出,Hermes 會在將 URL 傳給該 SDK 前移除結尾的 /v1,因此對該 SDK 而言,無論是否有這項移除處理,來源站點都是正確格式。
透過自訂端點在 Hermes Agent 中使用提示快取可行嗎?
可以。Hermes 文件說明,自訂供應商項目可設定每個模型的 prompt_caching: true,標記配置則依設定的 transport 而異:anthropic_messages 使用原生區塊,OpenAI 相容通訊協定使用封套配置。為每個 Claude ID 明確設定此值,可讓行為明確,而不必依賴偵測。在 Kunavo 的 OpenAI 相容端點上,閘道也會自行為 Claude 模型設定斷點,因此即使用戶端未傳送標記,chat-completions 設定仍會使用快取。
Hermes Agent 中的 context_length 有什麼作用?
這是 Hermes 假定模型可用的總上下文視窗大小,包含輸入和輸出;Hermes 會以此判斷何時壓縮歷史記錄。在 model: 下設定時,該值會固定生效,優先於 Hermes 原本可能偵測到的任何值;在 providers.<name>.models.<id> 下設定時,則適用於該供應商上的該模型。若模型的上下文視窗非常大,控制費用可使用另一項設定:compression.threshold_tokens 會依絕對 token 數而非視窗的一半,決定何時開始壓縮。
全天執行 Hermes Agent 的費用是多少?
請計算三項費用。排程工作:每次 cron 執行都會啟動新的工作階段,並按整份提示計費;假設每天執行 48 次,每次使用 20,000 個 token,使用 Claude Sonnet 5 時,以 Kunavo 的輸入費率計算,每天約為 $1.34;使用 Claude Haiku 4.5 時則約為 $0.67。附帶工作:壓縮、標題和視覺處理都會使用主要模型,除非輔助設定將它們導向其他模型。還有對話本身:在每次對話輪次間隔少於五分鐘時,大多數內容會從快取讀取;若暫停時間較長、切換模型或發生故障切換,則會重新讀取完整內容。
API 餘額用完時,Hermes Agent 會怎麼處理?
Kunavo 會以 HTTP 402 拒絕該請求,且不會收取費用。Hermes 遇到供應商故障時會使用備援鏈:config.yaml 中的 fallback_providers,並逐輪依序嘗試;若某一輪切換至備援供應商,該輪在另一個供應商上的提示快取會是冷快取。若未設定備援,請預期該輪或排程工作會直接失敗。Kunavo 端有兩項設定可避免代理遇到這種情況:錢包餘額偏低時,自動儲值會向已儲存的卡片扣款,因此原本會遭拒的請求仍可獲得處理;此外,代理專用金鑰的每月上限可限制失控迴圈的支出。