文件

文件

Factory Droid

Droid 的自訂模型是含有三個必填欄位的 JSON 陣列。最容易誤解的是 baseUrl,因為正確格式取決於你選擇的三種提供者值。

在 ~/.factory/settings.json 中設定 customModels 項目 — model、baseUrl 與 provider — 讓 Droid 使用任何支援 Anthropic Messages 或 OpenAI Chat Completions 的端點。

~/.factory/settings.json → customModels
// ~/.factory/settings.json  (Windows: %USERPROFILE%\.factory\settings.json)
{
  "customModels": [
    {
      "model": "claude-sonnet-5",
      "displayName": "Sonnet 5 [Kunavo]",
      "baseUrl": "https://api.kunavo.com",
      "apiKey": "${KUNAVO_API_KEY}",
      "provider": "anthropic"
    },
    {
      "model": "gpt-5-6-sol",
      "displayName": "GPT-5.6 Sol [Kunavo]",
      "baseUrl": "https://api.kunavo.com/v1",
      "apiKey": "${KUNAVO_API_KEY}",
      "provider": "generic-chat-completion-api"
    }
  ]
}

// Then, in the shell Droid starts from:
//   export KUNAVO_API_KEY=sk-kn-...
// ${VAR_NAME} expansion is a settings.json feature. It does NOT apply to the
// legacy ~/.factory/config.json, which Factory still loads and merges.
/v1 僅屬於其中一個項目,不適用於另一個。Factory 文件以表格而非句子說明這一點:其 Provider 參考資料為 https://api.anthropic.com — 僅來源站台,不含路徑 — 使用於 provider: "anthropic";而 https://api.openai.com/v1、https://openrouter.ai/api/v1 和 https://api.groq.com/openai/v1 都含有 /v1 根路徑。Droid 會自行附加路由,因此上方 Anthropic 項目使用不含路徑的來源站台,而 Chat Completions 項目則使用 /v1。在 Anthropic 項目加入 /v1 會導致請求路徑成為 /v1/v1/messages,結果是 404,而非驗證失敗 — 請參閱基本 URL 參考資料。
此設定是根據 Factory 自己的文件於下方日期查閱整理而成。Kunavo 尚未透過 Droid CLI 呼叫其端點 — 未進行工作階段、串流回合、工具往返;此系列中的其他用戶端也都沒有進行過相同測試。發布設定頁不等於完成測試。Factory 也提供相應的免責說明:依其說法,只有透過官方 API 使用的 Anthropic 和 OpenAI 模型「經過完整測試與基準評估」。以下的 curl 是您可以在十秒內檢查的部分;用戶端的實際行為則須由您與 Factory 確認。
可以省略 authMode。Factory 記載的預設值 provider-default 會將憑證放在 x-api-key 中,而 Kunavo 的 Messages 端點也接受該標頭以及 Authorization: Bearer。如果你想明確使用 bearer 格式,Factory 為 provider: "anthropic" 記載了 authMode: "bearer",此處也可以使用。
還沒有金鑰?建立 Kunavo 帳戶,建立金鑰(以 sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 Factory Droid 設定。

逐步操作

  1. 在 /app/keys 建立金鑰並複製 — 金鑰只會顯示一次。在啟動 Droid 的 shell 中將其匯出為 KUNAVO_API_KEY,這樣金鑰本身就不會寫入設定檔。
  2. 開啟 ~/.factory/settings.json(若檔案不存在就建立),並加入上方的 customModels 陣列。Factory 明確標示三個必填欄位 — model、baseUrl 和 provider — 而 displayName 是選擇器中顯示的標籤。
  3. 檢查 provider 的拼字。它必須完全符合 anthropic、openai 或 generic-chat-completion-api 其中之一;Factory 的疑難排解章節指出,此處拼字錯誤會導致 "Invalid provider" 錯誤。
  4. 在 CLI 中執行 /model。你的項目會出現在 Factory 自有模型下方的獨立 Custom models 區段中,並以你設定的 displayName 標示。Factory 會監看設定檔,因此儲存後就會生效 — 不必重新啟動。
  5. 請給它一項需要讀取並編輯檔案的任務,而非只打招呼。Droid 幾乎所有操作都依賴工具呼叫,而一般聊天回合無法測試這部分。接著執行 /cost,Factory 會在此處回報快取命中率 — Kunavo 原生支援 Anthropic 的 cache_control 標記,而 Factory 自己也指出,對通用 Chat Completions 供應商而言,快取「因供應商而異,無法保證」。

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

這是簡短版本。完整指南——模型選擇、實際工作階段費用,以及失敗情況——請參閱 Factory Droid 費用指南。

除錯用戶端前先驗證

一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 JSON,則相同的基礎 URL 與金鑰在 Factory Droid 中也能運作。

# 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 權杖的美元價格,輸入/輸出。

模型 IDKunavo 輸入/輸出它在 Factory Droid 中的位置
claude-sonnet-5$1.40 / $7.00預設工作模型 — 填在 provider: "anthropic" 項目中
claude-opus-5$3.50 / $17.50規劃一項一旦出錯代價高昂的變更;使用相同的 anthropic 項目
claude-haiku-4-5$0.70 / $3.50低成本回合與檔案分流,適合數量占主導的情況;使用相同的 anthropic 項目
gpt-5-6-sol$2.00 / $12.00來自另一個系列的第二意見 — 需要 generic-chat-completion-api 項目
計費方式是從預付餘額按權杖計費,沒有月費——請參閱 billing。在重複的上下文中——這是編輯器或聊天用戶端傳送內容的大部分——提示快取 對帳單的影響比模型選擇更大。

Droid 中的自訂模型無法涵蓋哪些情況

有三項限制來自 Factory 自家的頁面,每一項都會影響你對上述設定的預期,但不影響它是否能運作。

  • 僅限本機介面。 Factory 的 BYOK 頁面指出,自訂模型可用於 Droid CLI 和桌面應用程式,兩者會讀取本機的 settings.json;這些模型「不會出現在 Factory 託管的網頁版或行動平台」。透過託管產品委派的工作,仍會使用由 Factory 計費的推論服務執行,不受您在此設定的金鑰影響。
  • 管理員可以將它關閉。 Factory 的企業控制文件說明了 modelPolicy.allowCustomModels 和 allowedBaseUrls,前者會完全停用使用者的 BYOK,後者則會將所有自訂模型限定在一個核准的主機上。在受管理的裝置上,請先確認這點,再開始檢查檔案。
  • 方案費用仍然存在。 在此使用金鑰是額外增加,而非取代方案 — Factory 對超出 BYOK 額度的用量收取多少費用,以及額度是多少,請參閱費用指南;本頁不會重新推算這些資訊。

在任何地方複製設定之前,有個容易踩到的陷阱值得先知道:Factory 仍會載入舊版 ~/.factory/config.json,其中使用 snake_case 格式的 custom_models 和 base_url,並將其合併到 settings.json 之下;Factory 也有說明,${VAR_NAME} 展開功能不適用於該檔案。若在該檔案中以佔位文字填入金鑰,該文字會照原樣送出。請使用 settings.json。

常見問題

如何為 Factory Droid 新增自訂 API 端點?

編輯 ~/.factory/settings.json(Windows 上為 %USERPROFILE%\.factory\settings.json),並新增 customModels 陣列。每個項目都需要三個必填欄位 — model、baseUrl 和 provider — 以及 displayName、apiKey、authMode、maxOutputTokens 和 extraHeaders 等選填欄位。這沒有設定表單;JSON 檔案就是操作介面。Factory 會監看該檔案,因此儲存後,在 CLI 執行 /model,該項目就會出現在獨立的「自訂模型」標題下。

Factory Droid 的 baseUrl 末尾需要加上 /v1 嗎?

這取決於 provider 值;Factory 的文件透過 Provider 參照表,而非文字說明,明確列出了規則。Anthropic 那一列填的是 https://api.anthropic.com,不含路徑,因此 provider "anthropic" 應使用不帶路徑的來源網址 — Kunavo 則是 https://api.kunavo.com。表格中的每個 Chat Completions 列出的都是 /v1 根路徑(https://api.openai.com/v1、https://openrouter.ai/api/v1),因此 provider "generic-chat-completion-api" 應使用 https://api.kunavo.com/v1。Droid 會自行附加路由,所以 Anthropic 項目若加上 /v1,就會產生 /v1/v1/messages,並回傳 404,而不是驗證錯誤。

透過第三方端點使用 Claude 模型,應該選哪個 provider 值?

使用 "anthropic"。Factory 文件列出三種 provider 值,各自選擇一種線路協定:"anthropic" 對應 /v1/messages 的 Anthropic Messages API,"openai" 對應 OpenAI Responses API,而 "generic-chat-completion-api" 對應 OpenAI Chat Completions。這個值代表端點使用的協定,而非向你收費的廠商,因此能回應 /v1/messages 的閘道應選用 "anthropic",不論金鑰屬於哪個帳戶。Factory 自家的指示是,除非呼叫 OpenAI 或 Anthropic 的官方 API,否則使用 "generic-chat-completion-api" — 但這指的是可用的協定;若端點同時支援兩種,你可以自行選擇。

為什麼 Factory Droid 顯示 provider 無效,或略過我的自訂模型?

Factory 的疑難排解章節列出三個原因。模型未出現在選擇器中,通常是 settings.json 有 JSON 語法錯誤,或缺少必填欄位 — model、baseUrl 或 provider。若出現「Invalid provider」錯誤,則是拼字有誤:值必須完全符合 anthropic、openai 或 generic-chat-completion-api。驗證錯誤則表示金鑰或基礎 URL 有問題;Factory 自家的建議是確認基礎 URL 符合你所用 provider 的文件。先用上方的 curl 指令在用戶端之外確認是哪一種情況:若有 JSON 回應,代表端點和金鑰正常,問題出在設定檔。