Text
Kimi K3.1 Pro
Kimi K3.1 Pro 原生 Chat Completions、Responses 和 Messages 文档:官方参数、推理历史、结构化输出、媒体与缓存计量。
使用公开模型 ID kimi-k3.1-pro。模型页提供 Playground 与实时价格。下载 OpenAPI 规范,查看完整的嵌套请求和响应结构。
快速开始
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"kimi-k3.1-pro",
"messages":[{"role":"user","content":"How can an idempotency key prevent a duplicate payment?"}],
"max_completion_tokens":2048,
"reasoning_effort":"low"
}'原生格式
| 格式 | 端点 | 必填字段 |
|---|---|---|
| Chat Completions | POST /v1/chat/completions | model, messages |
| Responses | POST /v1/responses | model, input |
| Messages | POST /v1/messages | model, messages, max_tokens |
使用 Authorization: Bearer $SEEDROUTER_API_KEY。Messages 还需使用 anthropic-version: 2023-06-01。各格式返回原生 JSON 或 SSE 事件。Responses 无状态:需重放完整历史;请求不支持 previous_response_id 字段。
请求参数
Playground 中留空的字段不会发送。在合法情况下,显式的 false 和零会被保留。省略不等于允许 null。未知的顶层扩展字段会被丢弃,非法的官方字段会被拒绝。嵌套工具结构和返回的历史保持完整。
Chat Completions
| 字段 | 类型 | 必填 | 默认值 / 范围 |
|---|---|---|---|
logprobs | boolean | 否 | 默认 false |
top_logprobs | integer | 否 | 0–20; 要求 logprobs=true |
prediction | object | 否 | 未提供则省略 |
max_tokens | integer | 否 | 1–1048576 |
max_completion_tokens | integer | 否 | 1–1048576; 默认 131072 |
response_format | object | 否 | 未提供则省略 |
stop | union | 否 | ≤5 个字符串;每个 ≤32 UTF-8 字节 |
stream | boolean | 否 | 默认 false |
stream_options | object | 否 | 未提供则省略 |
tools | array | 否 | 未提供则省略 |
prompt_cache_key | string | 否 | 未提供则省略 |
prompt_cache_options | object | 否 | 未提供则省略 |
safety_identifier | string | 否 | 未提供则省略 |
tool_choice | union | 否 | 未提供则省略 |
messages | array | 是 | 未提供则省略 |
reasoning_effort | string | 否 | low, high, max; 默认 "max" |
model | string | 是 | kimi-k3.1-pro; 默认 "kimi-k3.1-pro" |
temperature | number | 否 | 1 |
top_p | number | 否 | 0.95 |
n | integer | 否 | 1 |
frequency_penalty | number | 否 | 0 |
presence_penalty | number | 否 | 0 |
Responses
| 字段 | 类型 | 必填 | 默认值 / 范围 |
|---|---|---|---|
model | string | 是 | kimi-k3.1-pro; 默认 "kimi-k3.1-pro" |
input | union | 是 | 未提供则省略 |
instructions | string | 否 | 未提供则省略 |
stream | boolean | 否 | 默认 false |
max_output_tokens | integer | 否 | 1–1048576; 默认 131072 |
reasoning | object | 否 | 未提供则省略 |
text | object | 否 | 未提供则省略 |
tools | array | 否 | 未提供则省略 |
tool_choice | object | 否 | 未提供则省略 |
include | array | 否 | 未提供则省略 |
prompt_cache_key | string | 否 | 未提供则省略 |
prompt_cache_options | object | 否 | 未提供则省略 |
safety_identifier | string | 否 | 未提供则省略 |
Messages
| 字段 | 类型 | 必填 | 默认值 / 范围 |
|---|---|---|---|
model | string | 是 | kimi-k3.1-pro; 默认 "kimi-k3.1-pro" |
messages | array | 是 | 未提供则省略 |
max_tokens | integer | 是 | 1–1048576 |
system | union | 否 | 未提供则省略 |
stream | boolean | 否 | 默认 false |
stop_sequences | array | 否 | ≤5 个字符串;每个 ≤32 UTF-8 字节 |
tools | array | 否 | 未提供则省略 |
tool_choice | object | 否 | 未提供则省略 |
metadata | object | 否 | 未提供则省略 |
cache_control | object | 否 | 未提供则省略 |
output_config | object | 否 | 未提供则省略 |
Chat 有 22 个顶层字段:model、五个固定采样字段和 16 个可变输入。Responses 为 model 加 12 个输入;Messages 为 model 加 10 个输入。Playground 隐藏固定的 model 和采样控件。
推理与输出上限
思考始终开启。Chat 的 reasoning_effort、Responses 的 reasoning.effort 和 Messages 的 output_config.effort 均接受 low、high 或 max,默认 max。所有输出上限均包含推理。Chat 和 Responses 默认输出 131,072 token,上限为 1,048,576。Messages 必须提供正数 max_tokens。Chat 接受已弃用的 max_tokens;新接入建议使用 max_completion_tokens。
上下文窗口为 1,048,576 token,输入本身必须处于窗口内。当输入加生成预算超过窗口时,服务可将预算缩减至剩余空间。输出上限较小时,可能尚未出现可见回答就已停止。
Chat 采样值固定:temperature:1、top_p:0.95、n:1、frequency_penalty:0、presence_penalty:0。其他值无效。停止序列按文本精确匹配,且不包含在回答中。32 字节上限按 UTF-8 字节计数,并非按字符计数。
结构化输出与预测输出
Chat 的 response_format.type 接受 text、json_object 或 json_schema。JSON 模式还需在提示词中要求返回 JSON。JSON Schema 必须提供 json_schema.name 和 json_schema.schema;strict 默认为 true。
Responses 使用 text.format,包含 type:json_schema、schema,以及可选的 name 和 strict。Messages 使用 output_config.format,包含 type:json_schema 和 schema。请遵循 Moonshot Flavored JSON Schema,不应假设所有通用 JSON Schema 扩展都会被强制执行。请在应用中校验完成后的输出。
Chat 预测输出使用 prediction:{type:"content",content:...}。content 为字符串或仅含文本的内容块。适用于大部分内容已知的输出,例如只需少量修改的文件。
工具与完整对话历史
Chat 工具使用 type:function,并提供 function.name 和 function.parameters。可选字段包括 description 与 strict(默认 true)。名称须匹配 ^[a-zA-Z_][a-zA-Z0-9-_]{0,127}$。工具选择支持 auto、none 和 required;required 至少需要一个可用工具。强制调用指定名称的函数与始终开启思考冲突。
动态 Chat 工具消息为不带 content 的 {role:"system",tools:[...]}。请在对话中保留这些消息。追加完整的 assistant 回复,包括 reasoning_content 和 tool_calls,再将各工具结果作为带有匹配 tool_call_id 的 role:tool 消息返回。assistant 工具回复的 content 可以为 null,其他消息角色仍需提供 content。
Responses 支持原生 function、namespace、apply_patch 自定义工具和 web_search 工具定义,并使用 tool_choice:"auto"。返回带有匹配调用 ID 的 function_call_output 或 custom_tool_call_output 条目。include 值 web_search_call.results 和 web_search_call.action.sources 仅影响网页搜索输出。
Messages 支持原生工具定义,以及 type 为 auto、any 或 none 的工具选择对象。保留 assistant 思考块及其签名,在 user 消息中返回工具结果块。应用负责校验参数、执行自定义函数,并控制外部操作。
Chat Partial Mode 只在最后一条 assistant 消息上设置 partial:true。Messages 直接续写最后一条 assistant 消息。不要仅从可见回答重建历史。
媒体约束
Chat 接受文本、image_url 和 video_url 内容块。使用 base64 data URL 或认可的 ms:// 引用;不支持任意公开媒体 URL。图像格式:JPEG、PNG、GIF、WebP、BMP、HEIC 和 HEIF。视频格式:MP4、MPEG、MOV、AVI、FLV、MPG、WebM、WMV 和 3GPP。官方指南规定请求体总上限为 100M,未单独限制图像数量。4K 图像和 Full HD 视频是建议,并非强制限制。
Responses 使用带 data URL 的 input_image.image_url。Messages 使用图像来源,例如 {type:"base64",media_type:"image/png",data:"..."},或使用 type 为 url、带认可的 ms:// 引用的来源。Messages 内嵌图像类型为 JPEG、PNG、GIF 和 WebP。不能由此推断这些格式支持 Chat 的视频块,请使用各自专用结构。
Playground 附加的是内嵌图像。视频块和文件引用请使用原生对话字段或 JSON 编辑器。文件上传与管理不属于这些生成端点。其他账户创建的文件 ID 不一定可用。
缓存与用量
Chat 和 Responses 使用 prompt_cache_key 与 prompt_cache_options:{mode:"implicit",ttl:"5m"}。TTL 接受 5m 或 1h,默认 5 分钟。Messages 使用顶层 cache_control:{type:"ephemeral",ttl:"5m"} 与可选的 metadata.user_id。嵌套的 Messages 缓存控制标记会被忽略。内容层级的 prompt_cache_breakpoint 无效。
已有缓存前缀在刷新时保留原始 TTL。请求不同的有效期不能证明其已生效。Chat 官方缓存写入响应头报告实际的 5 分钟和 1 小时数量。Responses 可返回实际采用的 prompt_cache_options;Messages 在 usage.cache_creation 中报告两个 TTL 的计数。
| 格式 | 总输入 | 缓存读取 | 缓存写入 |
|---|---|---|---|
| Chat | usage.prompt_tokens | prompt_tokens_details.cached_tokens | prompt_tokens_details.cache_write_tokens |
| Responses | usage.input_tokens | input_tokens_details.cached_tokens | input_tokens_details.cache_write_tokens |
| Messages | input_tokens + cache_read_input_tokens + cache_creation_input_tokens | cache_read_input_tokens | cache_creation_input_tokens |
Chat 和 Responses 的输入总数已包含缓存读取与写入。这些类别与未缓存的剩余部分互不重叠,不要重复累加缓存 token。输出包含推理。Messages 将写入拆分为 ephemeral_5m_input_tokens 和 ephemeral_1h_input_tokens。查看实时费率;公开生成响应不包含金额费用。
流式输出与完成状态
设置 stream:true。Chat 发送数据块和 [DONE];stream_options.include_usage:true 用于请求最后的用量数据块。Responses 使用 response.output_text.delta、response.completed 和 response.incomplete 等命名事件。Messages 使用 message_start、内容块事件、message_delta 和 message_stop。
连接关闭本身不能证明生成完成。请检查原生结束原因和终止状态。流中断时可能缺失最终用量。停止读取不保证生成已取消。
官方参考资料
核查于 2026 年 10 月 25 日:Kimi K3.1 Pro 指南、Chat、Responses、Messages、视觉与缓存。
