Kimi API 采用按量计费,不提供订阅制。比价时只看“每百万 Token 多少钱”很容易选错:真正决定账单的是型号、上下文长度、缓存命中率和输出长度。K2 系列提供 262,144 Token 上下文,K3 进一步到 1,048,576,长上下文能力强,也意味着输入侧更容易累积成本。

本文拆解 K2 系列的计费结构、长上下文的成本来源、可复现的测算方法和降本顺序,不写死单价。具体价格以官方文档和站内模型价格为准。

说明:Moonshot、Kimi 是其权利人的商标。模型型号、上下文长度和计费规则可能调整,本文以 2026 年 10 月的常见情况为例,采购前请再次核对官方页面。

一、K2 系列怎么分工

型号 定位 上下文 适合任务 成本关注点
kimi-k2.6 通用 262,144 对话、抽取、客服、文档处理 缓存命中率
kimi-k2.7-code 代码 262,144 代码生成、仓库问答、Agent 输入长、工具结果多
kimi-k2.7-code-highspeed 代码高速版 262,144 低延迟补全、交互式编码 单价与吞吐的平衡
kimi-k3 新一代 1,048,576 超长文档、复杂多步任务 长上下文与缓存写入

型号会迭代,K2 系列后续可能增加新版本。采购时以官方模型列表和站内模型价格为准,不要把本文的型号名当成永久承诺。

通用任务不必默认上最大上下文。把整份资料塞进 1M 上下文,输入成本会随轮数快速累积;先用检索缩小范围,再让模型读关键片段,通常更划算。代码任务则相反,仓库结构和工具返回往往必须保留,重点是稳定前缀、提高缓存命中。

二、账单由三块组成

K2 系列按“缓存命中输入、缓存未命中输入、输出”三项计费。K3 另把缓存写入按 5 分钟和 1 小时两档 TTL 单独计价,所以不能用一个平均单价乘总 Token。

计费项 什么时候产生 成本影响 控制手段
缓存未命中输入 首次出现的提示词、文档、工具结果 随上下文线性增长 检索、摘要、裁剪历史
缓存命中输入 重复的 system prompt、固定前缀 通常明显低于未命中 稳定前缀、固定工具顺序
输出 Token 模型生成内容与思考 长输出放大账单 限制 max_completion_tokens
缓存写入(K3) 写入缓存前缀 按 TTL 档位计价 只缓存稳定复用的内容

把一次请求拆开,成本公式是:

单次请求成本 =
  未命中输入 Token × 未命中单价
+ 命中输入 Token × 命中单价
+ 输出 Token × 输出单价

K3 还要加缓存写入项。响应里的 usage 会给出 prompt_tokens、completion_tokens 和 prompt_tokens_details;其中缓存命中与缓存写入都算在 prompt_tokens 里,未缓存部分要用总数减去这两项。

三、长上下文为什么容易贵

场景 典型 Token 结构 主要成本 优化方向
长文档问答 输入大、输出中等 文档反复传入 检索加缓存
代码仓库 Agent 输入输出都大 工具结果和历史 摘要、裁剪、缓存
多轮客服 输入随轮数累积 历史消息重复 滚动摘要
批量抽取 输入中等、输出短 文档重复读取 批处理加小模型

差异通常来自五处:

  1. 输入随轮数累积:每轮都把全文再传一次,账单会按轮数近似翻倍。
  2. 缓存命中率:固定前缀能复用;每次都变的时间戳、随机 ID、动态排序会让缓存失效。
  3. 工具输出:一次搜索或代码执行返回整段日志,下一轮又原样带回,成本会叠加。
  4. 输出长度:开放式的“详细分析”最容易产生长输出,而输出通常比缓存命中输入贵。
  5. 型号错配:简单分类用大模型,或复杂任务用不合适的型号反复重试,都会放大成本。

四、做一次可复现的测算

  1. 选 20–50 条真实任务,覆盖简单、中等、复杂三档,写清验收标准。
  2. 先用 Token 估算接口量化输入,不要用字数猜。
  3. 同一批任务分别跑 kimi-k2.6 和代码型号,记录质量、延迟与返工次数。
  4. 从响应 usage 读取输入、输出、缓存命中与缓存写入。
  5. 用“每完成一个合格任务”的成本比较,而不是每百万 Token 的标价。
  6. 把重试、失败请求和缓存写入一起算进单任务成本。
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.cn/v1",
)

resp = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[{"role": "user", "content": "把这段合同抽取成 JSON:……"}],
    max_completion_tokens=1024,
)

u = resp.usage
print("输入", u.prompt_tokens, "输出", u.completion_tokens)
print("缓存明细", getattr(u, "prompt_tokens_details", None))

流式调用要加 stream_options={"include_usage": True},完整用量只在最后一块返回。金额要用合同或价格页的实际单价去乘,不要沿用几个月前的截图。

五、把成本降下来的顺序

  1. 先做缓存:固定 system prompt、工具定义和知识库前缀,用 cached_tokens 验证是否真的命中。
  2. 再减输入:检索只召回相关片段,历史消息做摘要,不要把整库塞进上下文。
  3. 限制输出:设置合理的 max_completion_tokens,要求 JSON 或固定字段,减少客套话。
  4. 做型号路由:通用任务用 kimi-k2.6,代码任务用 K2.7 代码版,超长材料再考虑 K3。
  5. 长请求改流式:流式不直接改变单价,但能减少超时和断连带来的重试。
  6. 监控与告警:按项目、型号、场景看用量,设预算上限,每周复盘消耗排名。

顺序不要反。先做缓存和输入治理,再考虑换更便宜的型号;否则只是把错误答案做得更便宜。

六、预算和账单怎么管

  • 一个项目一把 Key,按项目设日预算,避免一个业务打满全部额度。
  • 每月按“项目、型号、场景”三个维度对账,找出增长最快的调用。
  • 缓存命中率、重试次数和平均输出长度要单独记录,否则优化效果无法证明。
  • 需要人民币付款和发票的团队,可以用国内 AI 网关统一多模型账单;具体价格和发票规则以模型价格为准。

常见问题

K2 和 K3 哪个更划算?

取决于任务。K2 系列上下文 262,144,覆盖多数文档和代码场景;K3 上下文更大,适合超长材料。按“完成一个合格任务”的总成本比较,不要只看单价。

缓存能省多少?

取决于前缀复用率和命中率。缓存命中输入通常明显低于未命中,命中还会延长缓存有效期;但前缀每次都变、或前缀太短,就不会命中。

流式输出会更便宜吗?

不会直接改变单价。它的价值是降低长请求超时、连接中断和重试带来的隐性成本。

为什么账单比估算高?

常见漏算项包括历史消息、工具返回、文档全文、重试、长输出和缓存未命中。用请求日志按 usage 对账,才能定位差异。

国内团队怎么用人民币结算?

可以通过提供人民币充值和发票的 AI 网关调用 Kimi,统一多模型账单。具体可用型号、价格和发票规则以模型价格为准。

下一步

先在中商起航 AI 网关创建测试 Key,用 kimi-k2.6 和代码型号各跑一批真实任务,记录 Token、缓存命中与质量,再决定主力型号。模型可用性与价格以模型价格为准。

相关阅读: