文件

文件

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 config set — 寫入 ~/.jan/config.toml
# 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
兩種通訊協定的基礎 URL 都須保留 /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。錯誤中出現重複路徑,就能看出您使用的是哪種規則。
Jan Agent 目前是預覽版,且文件也明確說明了這點。 快速入門指南警告,dev 上的安裝程式會從 agent-nightly 管道下載 —「請預期會取得 nightly 品質的組建」。目前沒有可引用的標記版本,因此請執行 jan --version,並將輸出字串記錄在此設定旁:以下旗標是根據本頁底部所列日期的文件整理而成,而 nightly 版本可能會更名其中一個旗標。自行建置的版本(scripts/install-jan-agent.sh --source)不會自動更新,這是固定版本的一種方式。
此設定是根據 Jan 自家的文件整理而成。Kunavo 尚未使用其端點執行 Jan Agent — 沒有工作階段、串流回合或工具往返,這個系列中的其他所有用戶端也一樣。設定說明頁不等於相容性測試。試用此設定時,請保留目前能正常運作的連線方式,並記得 jan config unset --provider kunavo 就是完整的復原方式。
Kunavo 不提供嵌入、文字轉語音或語音轉文字模型,因此 Kunavo provider 項目只會回應聊天請求。Jan Agent 不需要其他功能:它的記憶以 <project>/.jan/agent/memory/ 下的純文字檔案儲存,而非向量資料庫,因此代理程式本身的運作流程不需要第二種模型。
還沒有金鑰?建立 Kunavo 帳戶,建立金鑰(以 sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 Jan Agent 設定。

逐步操作

  1. 在 /app/keys 建立金鑰並複製——金鑰只會顯示一次。
  2. 確認你正在設定的是什麼:jan --version。Jan Desktop 也附有透過 jan 呼叫的 CLI,但指令集不同;因此請先確認 jan config set --help 列出 --base-url,再輸入其餘內容。
  3. 執行上方的 jan config set 指令。--provider 是你自行選定的 ID,而非固定清單中的名稱 — 文件中的本機硬體範例使用 --provider local — 而且 --model 可以重複使用;每次都會取代現有清單,而不是新增項目。
  4. 使用 jan config list(金鑰已遮蔽)或 jan config path 查看檔案本身,確認設定已寫入,再執行 jan cli models list 查看每個 provider 提供的內容。手動輸入的模型 ID 即使端點不再列出它,也會繼續保留;jan cli models refresh --provider kunavo 則會以端點清單為準。
  5. 切換至專案目錄並執行 jan,然後用 /model 選取模型。第一次執行建議使用 jan --plan:此模式為唯讀,能在任何內容寫入磁碟前顯示協定不相容的問題。
  6. 交給它一項會編輯檔案的任務。Jan Agent 是代理程式,因此第一次執行應測試工具呼叫和串流 — 若端點僅部分相容,這些功能會最先出問題;而打招呼兩者都測不到。

已於 2026年9月21日 根據 Jan Agent 的 Providers 頁面 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。

這是簡短版本。完整指南——模型選擇、實際工作階段費用,以及失敗情況——請參閱 Jan 模型與 API 費用指南,亦涵蓋 Jan Desktop。

除錯用戶端前先驗證

一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 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 權杖的美元價格,輸入/輸出。

模型 IDKunavo 輸入/輸出它在 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
計費方式是從預付餘額按權杖計費,沒有月費——請參閱 billing。在重複的上下文中——這是編輯器或聊天用戶端傳送內容的大部分——提示快取 對帳單的影響比模型選擇更大。

有兩種不同的東西都叫作 Jan API 金鑰

兩者放在同一個檔案中,意義卻完全相反,因此 jan config list 可能會讓原本預期另一種金鑰的人覺得有問題。

什麼來源驗證的對象
jan login從 shell 或在主控台使用 /login 登入自架後端 Tokamak你自己的 Tokamak 部署。Jan Agent 會將收到的金鑰寫入 ~/.jan/config.toml
jan config set --api-key你已持有的某個端點憑證 — 此處為 Kunavo 的 sk-kn- 金鑰該端點,費用依請求計算。這正是本頁說明的項目

Jan Desktop 兩者都不會發出:它沒有帳戶,因此無法在那裡產生金鑰。其本機 API 伺服器會使用你自行建立的金鑰,這又是第三種意義,適用於不同的主機。

Jan Desktop 會傳遞哪些設定,以及傳遞範圍到哪裡

Jan Agent 會從四個來源讀取 provider 設定,優先順序由上而下;第二個來源最容易讓人意外。

  1. ~/.jan/config.toml — 基礎設定,也是 jan config set 唯一會寫入的檔案。
  2. Jan Desktop 的 settings.json — 僅供繼承。它會新增你尚未在 Agent 中設定的 provider,不會覆寫既有設定,也不會寫回該檔案。
  3. 專案 agent.toml 中的 [provider] 區塊 — 明確指定專案層級的選項,因此優先於前兩者。該檔案通常會提交至版本控制,因此請勿將 api_key 放入其中。
  4. 命令列上的 --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。