文件
Jan Agent
Jan Agent 不附帶推論引擎,因此一律呼叫你指定的端點。只需一行 jan config set 指令,就能將 Kunavo 寫入 ~/.jan/config.toml,之後終端機代理程式便可透過單一金鑰使用 Claude 和 GPT。
執行一行 `jan config set --base-url https://api.kunavo.com/v1`,即可將 Kunavo 寫入 ~/.jan/config.toml;Jan Agent 預覽 CLI 本身不含推理引擎,會使用該金鑰執行。
# Jan Agent is a preview on a nightly channel — check your build first.
jan --version
jan config set \
--provider kunavo \
--api-key sk-kn-... \
--base-url https://api.kunavo.com/v1 \
--model claude-sonnet-5 \
--model claude-haiku-4-5 \
--api-type openai
jan config list # configured providers as JSON, keys redacted/v1。 Jan 只會附加路由:新增供應商的頁面指出,登入時會「使用 GET {base_url}/models 驗證金鑰」;供應商頁面則指出,工作階段中首次開啟 /model 時,會查詢已設定項目的 GET /models。這些文件所列的基礎 URL 結尾全都是 /v1 — 包括 jan cli models list 範例中的 Anthropic URL。因此 --api-type anthropic 也應使用 https://api.kunavo.com/v1,這與 Claude Code 和官方 Anthropic SDK 的做法相反;在那些用戶端中,相同的後綴會產生 /v1/v1/messages 和 404。錯誤中出現重複路徑,就能看出您使用的是哪種規則。dev 上的安裝程式會從 agent-nightly 管道下載 —「請預期會取得 nightly 品質的組建」。目前沒有可引用的標記版本,因此請執行 jan --version,並將輸出字串記錄在此設定旁:以下旗標是根據本頁底部所列日期的文件整理而成,而 nightly 版本可能會更名其中一個旗標。自行建置的版本(scripts/install-jan-agent.sh --source)不會自動更新,這是固定版本的一種方式。jan config unset --provider kunavo 就是完整的復原方式。<project>/.jan/agent/memory/ 下的純文字檔案儲存,而非向量資料庫,因此代理程式本身的運作流程不需要第二種模型。sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 Jan Agent 設定。逐步操作
- 在
/app/keys建立金鑰並複製——金鑰只會顯示一次。 - 確認你正在設定的是什麼:
jan --version。Jan Desktop 也附有透過jan呼叫的 CLI,但指令集不同;因此請先確認jan config set --help列出--base-url,再輸入其餘內容。 - 執行上方的
jan config set指令。--provider是你自行選定的 ID,而非固定清單中的名稱 — 文件中的本機硬體範例使用--provider local— 而且--model可以重複使用;每次都會取代現有清單,而不是新增項目。 - 使用
jan config list(金鑰已遮蔽)或jan config path查看檔案本身,確認設定已寫入,再執行jan cli models list查看每個 provider 提供的內容。手動輸入的模型 ID 即使端點不再列出它,也會繼續保留;jan cli models refresh --provider kunavo則會以端點清單為準。 - 切換至專案目錄並執行
jan,然後用/model選取模型。第一次執行建議使用jan --plan:此模式為唯讀,能在任何內容寫入磁碟前顯示協定不相容的問題。 - 交給它一項會編輯檔案的任務。Jan Agent 是代理程式,因此第一次執行應測試工具呼叫和串流 — 若端點僅部分相容,這些功能會最先出問題;而打招呼兩者都測不到。
已於 2026年9月21日 根據 Jan Agent 的 Providers 頁面 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。
除錯用戶端前先驗證
一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 JSON,則相同的基礎 URL 與金鑰在 Jan Agent 中也能運作。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."欄位中應填入哪個模型 ID
每個文字模型都能以模型 ID 存取——即時清單位於 GET /v1/models,帶有價格的目錄位於模型頁面。費率是每 1M 權杖的美元價格,輸入/輸出。
| 模型 ID | Kunavo 輸入/輸出 | 它在 Jan Agent 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 預設工作模型 — 要放在 --model 後方的第一個 ID |
claude-opus-5 | $3.50 / $17.50 | 一旦選錯方案代價很高;搭配 jan --plan 使用 |
claude-haiku-4-5 | $0.70 / $3.50 | 低成本回合:分類、摘要,以及全天執行的循環 |
gpt-5-6-sol | $2.00 / $12.00 | 使用同一把金鑰和相同基底網址,取得不同系列模型的第二種意見 |
gpt-5-6-terra | $0.70 / $4.20 | 長上下文閱讀,仍使用 openai api-type |
有兩種不同的東西都叫作 Jan API 金鑰
兩者放在同一個檔案中,意義卻完全相反,因此 jan config list 可能會讓原本預期另一種金鑰的人覺得有問題。
| 什麼 | 來源 | 驗證的對象 |
|---|---|---|
jan login | 從 shell 或在主控台使用 /login 登入自架後端 Tokamak | 你自己的 Tokamak 部署。Jan Agent 會將收到的金鑰寫入 ~/ |
jan config set --api-key | 你已持有的某個端點憑證 — 此處為 Kunavo 的 sk-kn- 金鑰 | 該端點,費用依請求計算。這正是本頁說明的項目 |
Jan Desktop 兩者都不會發出:它沒有帳戶,因此無法在那裡產生金鑰。其本機 API 伺服器會使用你自行建立的金鑰,這又是第三種意義,適用於不同的主機。
Jan Desktop 會傳遞哪些設定,以及傳遞範圍到哪裡
Jan Agent 會從四個來源讀取 provider 設定,優先順序由上而下;第二個來源最容易讓人意外。
~/.jan/config.toml— 基礎設定,也是jan config set唯一會寫入的檔案。- Jan Desktop 的
settings.json— 僅供繼承。它會新增你尚未在 Agent 中設定的 provider,不會覆寫既有設定,也不會寫回該檔案。 - 專案
agent.toml中的[provider]區塊 — 明確指定專案層級的選項,因此優先於前兩者。該檔案通常會提交至版本控制,因此請勿將api_key放入其中。 - 命令列上的
--provider/--api-key,或JAN_API_KEY/<PROVIDER>_API_KEY— 指定性最高,也最短暫。
除錯時,有兩個結果值得先了解,以免查錯方向。jan config list 可能顯示沒有任何 provider,但 jan cli models list 卻回傳多個項目 — 後者包含從 Desktop 繼承的項目,而這些項目並未儲存在 ~/.jan/config.toml。此外,繼承的 provider 永遠不會更新,因為此處沒有可供改寫的項目:若要讓 Kunavo 的模型清單保持最新,必須將它設為獨立的 jan config set 項目;上方的區塊正是如此設定。
當多個 provider 提供相同模型 ID 時
Kunavo 提供 claude-sonnet-5 這類 ID,直接連到模型供應商的 provider 項目也可能提供相同 ID。Jan Agent 必須擇一使用,文件記載的優先順序是:先比對 provider 的 models 清單中的完全相符項目,再比對以 <provider>/<model> 為前綴、名稱指向已設定 provider 的項目;若多個 provider 都提供相同 ID,則優先使用有憑證的 provider,而非沒有金鑰的同名項目。因此,kunavo/claude-sonnet-5 可用來指定你要使用哪一個。這個限定名稱僅供 Jan 使用 — 送出請求前會將它移除,因為上游服務不接受附有 provider 限定名稱的 ID。
從主控台內新增相同項目
如果你不想輸入旗標:/settings > providers 可管理相同的 ~/.jan/config.toml 項目,而 a 會開啟新增表單,欄位為 name、base url、api key 和以空格分隔的 models。此表單有兩項旗標操作不具備的功能:基礎 URL 必須是 https://(localhost 端點則可使用 http://),如此一來,金鑰就不會透過未加密的遠端連線送出 — Kunavo 使用 https://,因此不受此限制 — 而編輯時 API 金鑰欄位會顯示 (unchanged),除非你輸入新內容,否則會保留已儲存的金鑰。清空此欄位會清除金鑰,而不是保留原值。
常見問題
如何將 Jan Agent 指向自訂 API 端點?
只要執行一個指令:jan config set --provider <id> --api-key <key> --base-url <url> --model <model> --api-type openai。provider id 可自行選擇,不必使用固定清單中的名稱;--model 可重複指定,並會取代任何現有清單;--api-type 預設為 OpenAI-compatible,因此若端點採用 OpenAI 格式,就可以省略這個參數。設定會寫入 ~/.jan/config.toml,你也可以在主控台的 /settings > providers 中編輯。Jan 自己的新增供應商頁面指出,純 OpenAI 相容端點完全不需要寫程式,只要設定這些欄位即可。
Jan Agent 的 base URL 結尾需要加上 /v1 嗎?
需要,Anthropic 通訊協定類型也一樣。Jan 只會附加路徑:新增供應商頁面指出,登入時會透過 GET {base_url}/models 驗證金鑰;供應商頁面則指出,在工作階段中首次開啟 /model 時,會對已設定的項目發出 GET /models 請求。由於附加的路徑是 /models,而非 /v1/models,因此儲存的 base URL 必須已是 /v1 根路徑,也就是 Kunavo 的 https://api.kunavo.com/v1。Jan 文件中的所有 base URL 都以相同方式結尾,包括 jan cli models list 範例中的 Anthropic 項目。這與 Claude Code 和官方 Anthropic SDK 的做法正好相反;在那些工具中加上 /v1,會產生 /v1/v1/messages,並回應 404。
jan login 和 jan config set --api-key 有什麼不同?
兩者驗證的是不同對象。jan login 會登入 Tokamak,也就是自架後端,並將取得的金鑰存入 ~/.jan/config.toml——這是登入你自己的部署環境。jan config set --api-key 則會儲存你已持有、用於某個端點的憑證;例如使用 Kunavo 這類第三方供應商時,就該用這個指令。Jan Desktop 本身不會簽發這兩種金鑰,因為它沒有可供簽發金鑰的帳戶;它的本機 API 伺服器所要求的金鑰,是你自行編造的字串,這又是「金鑰」一詞的第三種意思。
為什麼 jan config list 沒有顯示任何內容,但 jan cli models list 卻有模型?
因為這兩個指令讀取的資料集不同。jan config list 只會列出儲存在 ~/.jan/config.toml 的內容;jan cli models list 還會列出從 Jan Desktop 繼承的供應商,而這些供應商並未儲存在該檔案中。Jan 的文件明確說明了這點。實際上,繼承而來的供應商永遠不會更新——因為沒有可供改寫的設定項目——因此若想讓供應商的模型清單保持最新,請先用 jan config set 新增它。
Jan Agent 能否在沒有 Anthropic 帳戶的情況下執行 Claude 模型?
可以。Jan Agent 未內建推論引擎,因此模型一律會在你設定的端點執行,而 --api-type 指的是線路通訊協定,不是供應商。Claude id 會在你設定的 base URL 上解析,這表示你持有的是該端點的憑證。Kunavo 透過同一把金鑰,在 OpenAI 相容介面提供 Claude 和 GPT id。這項設定是根據 Jan 自己的文件整理而成,並非實際在用戶端測試的結果;而且 Jan Agent 本身仍是 nightly 頻道的預覽版,因此請用 jan --version 確認你所查版本中的這些旗標是否適用。
Jan Agent 每次請求都回應 404。問題出在哪裡?
幾乎都是 base URL 設錯。若缺少 /v1,Jan 會向來源站點的 /models 和 /chat/completions 發出請求,因而得到 404,而不是驗證失敗;若錯誤中出現重複的 /v1/v1,表示你在已包含該後綴的 base URL 上又加了一次。先在用戶端以外確認:使用一般 curl,搭配相同金鑰,對端點呼叫 GET /v1/models。若收到 JSON,代表端點和金鑰都沒問題,問題出在已設定的項目;若收到 401,問題是金鑰;若收到 404,問題是 URL。接著檢查 jan config path,並直接讀取已儲存的 base_url。