Kimi K3
Kimi K3 API 串接文件:透過官方 Chat Completions、Responses 或 Anthropic Messages API 呼叫 Kimi K3,支援 100 萬 token 上下文視窗,始終推理,推理強度由你決定。
Kimi K3 是 Moonshot AI 針對長週期程式開發、代理與知識工作推出的旗艦模型。它一律先推理再回答,推理的深淺由 reasoning_effort 決定。傳送官方 Kimi 請求到 SeedRouter:更改基礎 URL 和 API 金鑰,保留請求主體。
模型 ID
| 模型 ID | 上下文視窗 | 最大輸出 | 推理強度 | 預設推理強度 |
|---|---|---|---|---|
kimi-k3 | 1,048,576 tokens | 1,048,576 tokens(預設 131,072) | low、high、max | max |
輸入:文字和圖片。輸出:文字。查看模型頁面了解目前價格。
快速範例
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [{"role": "user", "content": "Explain context caching in one sentence."}]
}'端點
| 格式 | 方法和路徑 | 驗證方式 |
|---|---|---|
| Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> 或 Authorization: Bearer <key>,再加上 anthropic-version |
三個端點都回傳 Kimi 的官方回應格式,串流與非串流皆可。請把 API 金鑰保存在伺服器端程式碼中。
參數
Chat Completions 欄位:
| 名稱 | 型別 | 必填 | 預設值 | 說明 |
|---|---|---|---|---|
model | string | 是 | — | kimi-k3。 |
messages | object[] | 是 | — | 文字訊息;圖片以 image_url 片段傳入(見圖片輸入)。 |
max_completion_tokens | integer | 否 | 131072 | 最多 1048576。包括推理 token。max_tokens 是同一上限的舊名稱,已棄用。 |
reasoning_effort | enum | 否 | max | low、high 或 max。其他任何值都會回傳 400。 |
stop | string or string[] | 否 | — | 最多 5 個序列。 |
response_format | object | 否 | {"type": "text"} | text、json_object 或 json_schema(需帶 json_schema.name 與 json_schema.schema)。 |
tools | object[] | 否 | — | 函式工具。 |
tool_choice | string or object | 否 | auto | auto 與 none 會生效。required 和指定函式會被接受,但不會強制呼叫。 |
stream | boolean | 否 | false | 以伺服器傳送事件的形式串流。 |
stream_options.include_usage | boolean | 否 | false | 加上最後一個用量資料塊。 |
prompt_cache_options | object | 否 | {"mode": "implicit", "ttl": "5m"} | mode:implicit。ttl:5m 或 1h。 |
prompt_cache_key、safety_identifier、prediction | — | 否 | — | 接受。 |
logprobs、top_logprobs | — | 否 | — | 接受(top_logprobs 為 0–20),但不會回傳對數機率。 |
temperature、top_p、n、presence_penalty、frequency_penalty | — | 否 | 1.0、0.95、1、0、0 | 固定值。其他任何值都會回傳 400,請不要傳這些欄位。 |
推理與推理強度
Kimi K3 一律推理,無法關閉。reasoning_effort 決定推理量:max(預設)用於最困難的工作,high 適合大多數任務,low 適合快速、簡單的步驟。推理內容在 reasoning_content 中回傳,與 content 並列。推理 token 按輸出 token 計費,並計入 max_completion_tokens。
在多輪對話和工具呼叫中,請把每則 assistant 訊息原樣傳回,包括其中的 reasoning_content。
圖片輸入
Kimi K3 只接受 base64 data URI 形式的圖片。公開圖片 URL 不被接受,會回傳 400,與 Kimi 自家的 API 相同。
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64_DATA>"}},
{"type": "text", "text": "Describe this image."}
]}上下文快取
快取是自動的:重複的提示前綴會從快取讀取,按較低的快取輸入費率計費。prompt_cache_options.ttl 決定寫入的前綴在快取中保留多久,5m(預設)或 1h;若兩次請求相隔超過五分鐘,請選擇 1h。usage.prompt_tokens_details.cached_tokens 回報從快取讀取的 token,cache_write_tokens 回報該請求計費的快取寫入。
計費維度
查看模型頁面上的目前費率。請求依使用的 token 計費:
- 輸入 token、
- 快取輸入 token(
cached_tokens)、 - 快取寫入 token(
cache_write_tokens)、 - 輸出 token(包括推理)。
價格不隨上下文長度變動。費用依完成回應所回報的 usage 計算。失敗的請求不計費。你的帳戶使用記錄會顯示每個請求的確切費用。
輸出
非串流 Chat Completions 請求回傳:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1790585961,
"model": "kimi-k3",
"choices": [{
"index": 0,
"finish_reason": "stop",
"message": {"role": "assistant", "reasoning_content": "...", "content": "..."}
}],
"usage": {
"prompt_tokens": 90,
"completion_tokens": 57,
"total_tokens": 147,
"cached_tokens": 90,
"prompt_tokens_details": {"cached_tokens": 90, "cache_write_tokens": 0}
}
}使用 "stream": true 時,每個資料塊都帶有一個 delta,內容是 reasoning_content 或 content。啟用 stream_options.include_usage 時,在 data: [DONE] 之前會有最後一個 choices 陣列為空的資料塊帶有用量資訊。
Responses API 與 Codex
POST /v1/responses 接受 Responses 請求主體:input、instructions、max_output_tokens、reasoning.effort(low、high、max)、text.format(json_schema)、tools(function 與 apply_patch 自訂工具)、tool_choice、stream、prompt_cache_options、prompt_cache_key 與 safety_identifier。推理內容以帶有 summary_text 片段的 reasoning 項目回傳,串流則帶有從 response.created 到 response.completed 的編號事件。這個 API 是無狀態的:previous_response_id 與 conversation 會被忽略,因此請在 input 中傳送完整對話。web_search 工具會被忽略。
要在 Codex 中使用 Kimi K3,請在 ~/.codex/config.toml 中新增一個 provider,並設定 SEEDROUTER_API_KEY:
model = "kimi-k3"
model_provider = "seedrouter"
model_context_window = 1048576
[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://api.seedrouter.ai/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"Anthropic Messages 格式
為 Anthropic Messages API 撰寫的程式碼也能呼叫 Kimi K3:把 Messages 請求主體以 "model": "kimi-k3" 傳送到 /v1/messages。system、max_tokens、tools、tool_choice(auto、none)與 output_config.effort(low、high、max)會生效,metadata.user_id 與 cache_control 會被接受。stop_sequences(最多 5 個)、tool_choice any 與 output_config.format 會被接受,但沒有效果。推理內容以 thinking 區塊回傳。圖片以 base64 來源傳入。
錯誤
錯誤使用 {"error": {"code": ..., "message": "..."}} 格式(Messages 端點使用 Anthropic 的錯誤格式)。code 是來自共用錯誤目錄的代碼。失敗的請求不計費。
實用建議
- 從
high推理強度開始,只有最困難的問題才改用max;low適合快速、簡單的步驟。 - 把
max_completion_tokens設得足夠高,同時容納推理與答案:它是兩者共用的預算。 - 將長的、重複使用的上下文放在提示開頭,讓後續請求從快取讀取;請求間隔較長時使用
1hTTL。
