Kimi K3
Kimi K3 API 调用文档:使用官方 Chat Completions、Responses 或 Anthropic Messages API 调用 Kimi K3,1M token 上下文窗口,始终推理,推理强度由你选择。
Kimi K3 是 Moonshot AI 面向长周期编码、智能体和知识工作的旗舰模型。它总是先推理再作答,推理的深浅由 reasoning_effort 决定。向 SeedRouter 发送官方 Kimi 请求:修改 base URL 和 API key,保持请求体不变。
模型 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 key 保存在服务端代码中。
参数
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 请求体发送到 /v1/messages,并设置 "model": "kimi-k3"。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。
