本文由 辛梓煜@词元2号站(www.ciyuanerhao.com)撰写,转载请注明出处。
快速摘要
如果你只想要一个结论:Kimi K3 是月之暗面(Moonshot AI)在 2026 年 7 月 16 日至 17 日发布的新一代旗舰模型,总参数 2.8 万亿,是目前公开宣布的参数规模最大的开源权重模型。它的三个技术支点分别是 KDA(Kimi Delta Attention,一种混合线性注意力)、AttnRes(注意力残差,用注意力机制替代沿用十年的固定残差连接)和 Stable LatentMoE(896 个专家里每次只激活 16 个的高稀疏混合专家架构)。原生支持视觉理解,上下文窗口 100 万 token,API 计价为缓存未命中输入每百万 token 3 美元、输出每百万 token 15 美元,完整权重承诺在 2026 年 7 月 27 日前放出。独立评测机构 Artificial Analysis 给它的智能综合指数排在全球第四,但编程指数反而排在最前面,Arena 的前端代码分区它拿了第一。
需要泼一点冷水的是:2.8 万亿参数的“开源”更像是面向云端的开放,官方建议用包含 64 个加速器的超级节点来部署,普通开发者基本不可能在单机上跑起未量化的完整版本。同时它自己也承认三个短板——对历史思考内容敏感、有时过于主动自作主张、整体体验与顶级闭源模型仍有差距。
下面这篇文章我会把这些点全部拆开讲:术语是什么意思、架构为什么这么设计、榜单该怎么读才不被带节奏、三条上手路径分别怎么配、长任务该怎么喂给它、什么场景不适合用它。想看完整拆解,往下翻。
一、先把事实摆清楚:K3 这次到底发布了什么
每次有大模型发布,最烦的就是满屏“炸裂”“碾压”“遥遥领先”,看完一圈还是不知道它到底是个什么东西。所以我习惯先做一件事:把可核验的硬信息抠出来,列成一张干干净净的清单,剩下的形容词全部扔掉。
K3 这次的硬信息大概是这些:
|
维度 |
具体情况 |
|
发布时间 |
2026 年 7 月 16 日发布、17 日凌晨全面上线 |
|
研发方 |
北京月之暗面科技有限公司(Moonshot AI) |
|
总参数 |
2.8 万亿(2.8T),MoE 架构 |
|
专家配置 |
896 个专家,每个 token 激活 16 个 |
|
上下文窗口 |
100 万 token |
|
多模态 |
原生视觉理解,文字与图像在同一模型内处理 |
|
核心架构 |
KDA + AttnRes + Stable LatentMoE |
|
量化方案 |
MXFP4 权重 + MXFP8 激活,从微调阶段就做量化感知训练 |
|
API 计价 |
缓存命中输入 $0.30/M,未命中输入 $3.00/M,输出 $15.00/M |
|
默认生成长度 |
131072 token,最高可调到 1048576 token |
|
开放权重时间 |
承诺 2026 年 7 月 27 日前放出完整权重 |
|
上线入口 |
Kimi 官网、App、Kimi Code、Kimi Work、API 开放平台 |
另外还有一个容易被忽略的细节:K3 首发其实是两个配置,一个是面向常规对话与智能体任务的通用旗舰版,另一个是面向大规模并行处理、批量任务、多智能体协作的重载版本。很多人测出来体感不一致,有一部分原因就出在这里——你用的可能压根不是同一个配置。
还有一点容易被行业新闻带偏:这一轮的模型发布相当密集,国内几家主要厂商在很短的时间窗口内相继放出了新一代模型,有的补齐了原生视觉能力,有的强调完全依托国产算力完成训练与推理全流程,有的把重点放在企业级智能体上。K3 是这一波里参数规模最大、也是话题度最高的一个,但它不是孤立事件。把它放回这个密集发布的背景里看,会比单看一款模型清楚得多——真正在变化的是整个梯队的推进速度,而不只是某一家的排名。
从版本演进的角度看,K3 的前一代是 K2.6,中间还夹着一个专门做编程的 K2.7 Code。K2.7 Code 走的是“小而专”的路线,上下文窗口 25.6 万 token,主打长上下文里的指令遵循稳定性;K3 则是“大而全”的路线,把上下文一口气拉到 100 万,同时把视觉能力做进底座。这两条线并不冲突,实际用起来是互补关系,后面第五节我会具体讲什么时候该用哪个。
二、2.8 万亿参数到底意味着什么
这一节是给不做模型的朋友准备的。已经熟悉 MoE 的读者可以直接跳到第三节,我不会在这里绕圈子。
2.1 参数量:模型的“脑容量上限”
参数(Parameter),你可以理解成模型内部的一堆可调节的旋钮。训练的过程,本质上就是拿海量数据反复去拧这些旋钮,直到模型对世界的预测足够准。旋钮越多,理论上能装下的知识和模式就越复杂——所以参数量常被当成“能力上限”的粗略指标。
注意是上限,不是实际能力。旋钮多不代表拧得好。这也是为什么历史上多次出现参数更少的模型在实测中赢过参数更多的模型:数据质量、训练方法、后训练对齐,每一环都能把这个上限打个折。
2.8 万亿是什么概念?做个对比就有体感了:此前开源权重模型里参数规模领先的是 1.6 万亿级别的几个型号,K3 直接把这条线往上抬了将近一倍,成了第一个摸到 3 万亿量级的开源模型。有意思的是,上一个“开源最大模型”的纪录保持者,也是月之暗面自己。
2.2 MoE:不是所有旋钮都要一起转
如果 2.8 万亿参数每次推理都要全部参与计算,那这个模型的推理成本会高到没有任何商业可行性。**MoE(Mixture of Experts,混合专家)**就是用来解这个死结的。
打个比方:传统的稠密模型像一个什么都懂一点的全科医生,不管你来看什么病,他整个大脑都得转一遍。MoE 更像一家分科齐全的大医院——门口有个分诊台(业内叫路由器 Router),你说完症状,它把你分给对口的几个科室,其他科室的医生该干嘛干嘛,不占用资源。
K3 的分科粒度极其夸张:896 个“科室”,每次只请其中 16 个会诊,稀疏比达到 56 比 1。用一个简单的式子表达这个稀疏度:
[
\text{稀疏比} = \frac{896}{16} = 56
]
好处很直白——模型总容量可以做得非常大,但单次推理的计算量被牢牢摁住。代价也很直白:分诊台的压力陡增。896 个专家里挑 16 个,一旦分诊策略有偏差,就会出现少数几个专家被反复调用、大多数专家常年闲置的情况。业内管这个叫负载不均衡,它不只是浪费资源,更会直接把训练搞崩。K3 为此专门设计了一套基于分位数的分配方法,这个我放到第三节讲。
2.3 上下文窗口:模型的“短期记忆”
**上下文窗口(Context Window)**指的是模型一次能同时“看见”的信息总量,单位是 token。中文里一个 token 大致对应一到两个汉字,100 万 token 换算过来是几十万到上百万字的量级。
对普通对话来说,25.6 万 token 早就绰绰有余了。100 万窗口真正的价值在智能体编程场景:一个中等规模的工程,源码、配置、依赖清单、测试用例、文档加起来轻松几十万 token。窗口不够的时候,模型只能靠检索片段拼凑理解,很容易出现“改了 A 文件忘了 B 文件依赖它”这类问题。窗口足够大,它就可以把整个仓库端进脑子里再动手。
不过这里有个很多人会踩的坑:窗口大 ≠ 全程都该塞满。上下文里塞的无关内容越多,模型的注意力越容易被稀释,输出质量反而下降,成本也线性上升。我自己的做法是把 100 万窗口当成“安全余量”,而不是“使用目标”。
2.4 原生多模态:不是接了个外挂
原生视觉理解这个词值得单独说一句。早年的多模态方案,很多是拿一个图像编码器把图片转成向量,再喂给一个纯文本模型,两个模块是拼起来的。原生的意思是文字和图像在同一套架构里被统一处理,从预训练阶段就一起学。
体现在实际使用上,差别很明显:你截一张页面渲染效果的图丢给它,它能直接把视觉上的问题(间距不对、层级混乱、对比度不足)和代码里的具体样式规则对应起来,而不是先“描述图片”再猜代码。K3 官方特别强调的一个能力方向,就是软件工程与视觉推理的结合——写完代码自己截图看效果,看完再改,形成闭环。
三、拆开 K3 的三个架构支点
这是全文技术密度最高的一节,我尽量讲人话。
先给一张全景图,方便你建立整体印象:
graph TD
A[输入: 文本 + 图像] --> B[注意力层]
B --> B1[KDA: 混合线性注意力<br/>负责超长序列的高效记忆]
B --> B2[MLA: 多头潜在注意力<br/>负责精确检索]
B1 --> C[AttnRes: 注意力残差<br/>按需从不同深度取信息]
B2 --> C
C --> D[Stable LatentMoE<br/>896 专家中激活 16 个]
D --> E[Quantile Balancing<br/>基于分位数的专家分配]
E --> F[输出]
G[MXFP4 权重 / MXFP8 激活<br/>量化感知训练] -.贯穿全流程.-> D
H[Per-Head Muon 优化器] -.训练阶段.-> B
3.1 KDA:让超长上下文不再是成本黑洞
要理解 KDA 解决了什么问题,得先知道标准注意力机制的老毛病:计算复杂度是序列长度的平方级。序列长度记作 (N),那么:
[
\text{标准注意力计算量} \propto O(N^2)
]
这意味着上下文从 10 万涨到 100 万,长度翻了 10 倍,计算量翻的是 100 倍。这就是为什么早期长上下文模型要么慢得离谱,要么贵得离谱。
线性注意力是学界给出的一条解法:把复杂度压到 (O(N))。代价是它得用一个固定大小的“记忆状态”去概括所有历史信息——就像你只有一个容量固定的笔记本,新内容进来必须决定擦掉哪些旧内容。写得好,长文照样记得住;写得糙,前面的关键信息就丢了。
KDA(Kimi Delta Attention) 的核心改进,就在“怎么决定擦掉什么”这件事上。它在既有的门控机制基础上,引入了更精细的逐通道对角门控。通俗讲,原来的方案是“这一整条记忆整体衰减多少”,一个标量说了算;KDA 变成了“记忆的每一个维度分别决定衰减多少”。这就好比原来只能整本笔记本一起褪色,现在可以做到“公式那一页保留得清清楚楚,闲聊那一页快速淡掉”。
工程上它还做了配套的分块并行算法,用了一种特殊变体的低秩加对角变换,把计算量相对通用方案砍掉一大截,实测在相同输入长度下执行时间约为通用方案的一半。
关键在于,K3 并不是全用线性注意力。它是混合架构:KDA 层负责扛长序列的效率,穿插的全局注意力层负责保证精确检索能力,两者按一定比例交替。这个思路在 Kimi 之前发布的线性注意力工作里就验证过——在公平比较下,混合方案在短上下文、长上下文和强化学习扩展三类场景中都不输给全注意力。
3.2 AttnRes:动了“十年不变的那根线”
这一项是我个人觉得最有意思的。
残差连接(Residual Connection) 最早出自 2015 年的 ResNet,思路简单到极致:把某一层的输入直接加到它的输出上,即 (x_{l+1} = x_l + f(x_l))。这一笔加法解决了深层网络的梯度消失问题,随后被 Transformer 继承,成了过去十年深度学习的默认标配,几乎没人怀疑过。
月之暗面团队在 2026 年 3 月发布的技术报告里,指出了这个默认设计的一个隐性代价:信息一旦累加进去,就再也拆不出来了。有个比喻我觉得非常贴切——往一桶水里依次倒进不同颜色的墨水,混完之后,你没法再单独把某一种颜色捞回来。浅层学到的那些具体、精细的特征,在几十层的反复叠加中被稀释成一团模糊的平均值,深层想要精确调用某个早期表征时,已经无从下手。
AttnRes(Attention Residuals) 的解法可以概括成一句话:把注意力机制旋转 90 度,从序列维度搬到深度维度上去。
这个类比是这样成立的。Transformer 当年的贡献,是用 Softmax 注意力替代了时间维度上的固定递归——不再是一步步顺序传递,而是让当前位置去“查询”所有历史位置,按相关性加权取信息。那么,网络的深度本质上不也是另一种“时间”吗?既然如此,为什么第 40 层非要接受一个把前 39 层无差别加总的结果,而不能主动去查询“我现在这个任务,最需要第 7 层和第 23 层的那部分表征”?
AttnRes 干的就是这件事。它用 Softmax 加权替代了固定累加,让每一层按需从不同深度检索信息。Softmax 归一化天然带来竞争关系:某一层的权重上去了,别的层就得下来,模型被迫学出真正有价值的层间依赖,而不是漫无目的地把所有历史全堆上。
实验结果也挺说明问题:在算力—损失的幂律拟合曲线上,AttnRes 变体在整个算力区间内都取得了更低的验证损失;在特定算力点上,它达到的效果相当于基线方案用 1.25 倍算力才能达到的水平。工程上还有个细节值得一提——所有注意力残差的伪查询向量初始化为零,保证训练初期的权重是均匀的,等价于退化成标准的等权平均,这样就不会在训练早期引入不稳定。
这项工作发布后在业内引起的反响不小,有海外知名研究者公开表示“我们对注意力机制的理解还不够透”。我个人的感受是,动一个用了十年、大家都以为是常识的基础结构,这件事本身的信号意义可能比性能数字更大。
3.3 Stable LatentMoE 与配套的稳定性工程
前面提到,896 选 16 的极端稀疏度会让专家负载均衡成为生死问题。K3 这一层的做法叫 Stable LatentMoE,配套还有一整套稳定性工程:
- Quantile Balancing(分位数均衡):传统方法靠一堆启发式规则和敏感的超参数去“修正”专家分配,调不好就崩。K3 改成直接依据路由器打分的分位数来确定分配,把一个带超参的黑盒变成了基于统计的确定性过程。
- Per-Head Muon:把优化器的作用粒度细化到每一个注意力头独立优化,在万亿参数规模上让训练过程更稳。
- SiTU 激活函数与 Gated MLA:分别改善激活值的控制能力和注意力的选择性。
- 量化感知训练:从监督微调阶段就用 MXFP4 权重加 MXFP8 激活来训练,而不是训完再压。这样做的好处是模型从一开始就“习惯”了低精度环境,部署时精度损失小,硬件兼容面也更宽。
这一整套组合拳的最终收益,官方给的口径是:相对上一代,整体扩展效率提升约 2.5 倍——同样的算力,换来更多的智能。
顺带说一句关于潜在空间压缩的逻辑,我觉得挺优雅:路由到的专家在压缩后的低维空间里计算,省下来的算力用于同时咨询更多专家;而路由门控、共享专家、注意力层这些“非瓶颈”部分仍然保持在完整维度上,不为了压缩而牺牲表达力。该省的省,该留的留。
这一段我在整理时反复看了几遍原始技术描述,因为很容易理解偏。辛梓煜@词元二号站的习惯是:架构类内容宁可讲慢一点,也不要为了显得专业而堆术语。
3.4 三项技术合起来,到底解决了什么
单独看每一项都挺抽象,合起来看逻辑就顺了。我用一条“信息流动”的线索把它们串一遍。
一段超长的输入进来,第一个瓶颈是横向的:序列太长,标准注意力的平方复杂度直接把成本顶到天花板。KDA 负责解这一段——用线性复杂度扛住长度,用逐通道门控保住记忆质量,再靠穿插的全局注意力层兜住精确检索。
信息往上走,第二个瓶颈是纵向的:网络太深,浅层学到的精细特征在一层层的固定累加中被稀释成模糊的平均值,深层想精确调用早期表征已经无从下手。AttnRes 负责解这一段——把注意力旋转到深度维度,让每一层按需检索它真正需要的那几层信息。
横纵两个方向都通了之后,第三个瓶颈是容量:想装下更多知识就得堆参数,堆参数就得付推理成本。Stable LatentMoE 负责解这一段——在潜在空间里压缩专家的计算维度,用省下来的算力同时咨询更多专家,把 896 选 16 的极端稀疏度做成可训练的状态。
用一句话概括:KDA 管长度,AttnRes 管深度,LatentMoE 管宽度。 三个维度各自松绑,再靠分位数均衡、逐头优化、量化感知训练这一层工程把整体稳住,才有了那个 2.5 倍扩展效率的结果。
我个人觉得这里最值得学的不是某一项技术本身,而是这种先定位瓶颈、再针对性拆解的思路。很多团队做优化是拿到一个新点子就往上堆,堆完发现指标没动,因为真正的瓶颈根本不在那里。先想清楚“卡在哪一维”,再决定动什么,这个顺序对做工程的人同样适用。
四、榜单怎么读:别被“登顶”两个字牵着走
每次模型发布,最容易失真的环节就是评测。我这里给的建议只有一条:先看是谁测的,再看测了什么,最后才看分数。
4.1 独立评测与官方自测要分开看
先看第三方独立评测的结果。Artificial Analysis 的综合指数上,K3 拿到 57 分档,位列全球第四,前面是两款顶级闭源模型,它和另一款闭源旗舰基本咬在一起。但同一家机构的编程指数是另一幅景象:K3 的 76.24 分反超了排在它前面的那几款,是开源阵营在软件工程方向的最强战绩。
这个“综合排第四、编程排第一”的错位非常关键——它直接说明月之暗面这一代的资源投放是有明确偏向的,就是奔着代码和智能体去的。
再看人类偏好类评测。LMArena 的前端代码分区,K3 拿到了第一。这个榜的机制是让不同模型针对同一个提示生成真实的 HTML、CSS、JavaScript,然后由人类做两两对比投票。它测的东西很特别:前端代码没法用“能不能编译通过”来判分,一个模型完全可以吐出语法完美但布局稀烂、按钮点了没反应的页面。所以这类榜单反映的是观感和可用性,跟 SWE-bench 那种“补丁能不能通过测试”的自动化评测是两个维度。
官方自测的部分,月之暗面披露的数据比较克制,也算坦诚:在自家的三十多项评测里,K3 明确取胜的大约七项,主要集中在长程编程、智能体浏览、文档理解、表格处理这几块。其中长程工程任务那一项拉开的差距比较明显,智能体浏览也刷出了很高的分数。而在一些偏深度推理和高难度工程的项目上,它确实还落后于顶级闭源模型,差距在四到五分区间,官方自己也没藏着。
4.2 四个必须知道的“读榜陷阱”
第一,评测框架(harness)本身就是产品的一部分。 同一个模型,配不同的智能体框架、不同的工具集、不同的重试策略,分数能差出好几个点。官方那张对比表里,不同行用的框架并不统一——有的跑自家 CLI,有的跑第三方编程工具,有的跑标准最小化框架。这不叫作弊,但意味着这张表适合用来看能力轮廓,不适合当成绝对排名。
第二,小样本基准的方差被严重低估。 有些长程工程类基准总共只有二十来个任务,每个任务要跑数小时。在这种样本量下,一两个任务的成败就能让百分比出现明显位移。看到这类分数,第一反应应该是问“跑了几轮、方差多大”,而不是直接下结论。
第三,长程任务里存在“钻空子”风险。 任务链条一长,智能体就有动机去攻击评分机制本身,而不是老老实实解决问题。这也是为什么严肃的长程基准会要求公开完整的执行轨迹供人核查。
第四,还有个时间因素。 K3 的权重在发布当天并未公开,独立第三方无法在完全相同的条件下复现,所有非官方渠道的分数都得等权重放出后才能真正对齐。
我自己的态度是:把榜单当成“筛选候选者”的工具,把自己业务里的真实任务当成“最终裁判”。具体怎么做我在第六节讲。
4.3 一张对比表怎么看更省事
我把常见的几类评测按“它到底在测什么”重新归了个类,比按分数排序有用得多:
|
评测类型 |
测的是什么 |
适合谁参考 |
|
自动化补丁类 |
能否修复真实仓库里的缺陷并通过隐藏测试 |
做代码维护、重构的团队 |
|
长程工程类 |
数小时到数天的持续任务完成度 |
想让智能体独立跑完整需求的团队 |
|
前端人类偏好类 |
生成页面的观感与可交互性 |
做产品原型、页面开发的人 |
|
终端与工具调用类 |
能否正确操作命令行、协调多个工具 |
做自动化运维、脚本化流程的人 |
|
智能体浏览类 |
多轮联网检索与信息整合能力 |
做资料调研、竞品分析的人 |
|
文档与表格类 |
复杂版式文档、电子表格的理解与处理 |
做数据整理、报告加工的人 |
看完这张表你大概就能定位自己该关注哪几行了,剩下的可以直接略过。
4.4 与其看榜,不如自己跑一次小型对照测试
这是我最想安利的一条。榜单再权威,测的也是别人的任务分布,不是你的。真正靠谱的做法,是花半天时间搭一个属于你自己的小型对照测试。
不需要多复杂,五个环节就够:
第一,选真实任务。 从你过去三个月实际处理过的工作里挑八到十个,覆盖不同难度和不同类型。用真实任务的意义在于,你自己心里有标准答案,一眼就能看出好坏。
第二,锁死变量。 版本固定、工具权限固定、提示词模板固定。只换模型,别的一律不动。这一步不做,后面所有结论都不成立。
第三,重复跑。 每个任务至少跑三轮。大模型输出本来就有随机性,单轮结果说明不了任何问题。跑完把三轮的结果都记下来,看的是分布不是单点。
第四,用确定性的验收标准。 提前把“什么算通过”写死——测试是否通过、输出格式是否符合规范、有没有碰不该碰的文件。别用“感觉还行”这种标准,人的主观判断在连续评估中会漂移得很厉害。
第五,算“单位有效产出的成本”。 不是算总花费,而是算每一个被你接受的改动平均花了多少。有的模型看起来单价便宜,但要试三次才对一次,实际成本反而更高。
跑完这一轮,你会得到一份只对你自己有效、但比任何公开榜单都可信的结论。而且这套流程做一次就能复用,下次再有新模型发布,重跑一遍即可,半天变成一小时。
五、三条上手路径,选一条就够
K3 目前的入口有好几个,我按“投入成本从低到高”排一遍。
5.1 路径一:网页与 App,零配置
最简单的方式,直接在 Kimi 官网或者 App 里选用 K3 模型。登录用户在一定额度内可以免费用,适合先建立体感——扔几段自己熟悉的代码进去,看它读得准不准;扔一张设计稿截图,看它的视觉理解到什么程度。
这一步不要跳过。很多人上来就配 API、写脚本,结果发现模型压根不适合自己的场景,白折腾半天。先花二十分钟在网页版做几轮定性判断,性价比最高。
5.2 路径二:Kimi Code CLI,命令行里的智能体
如果你的主要场景是写代码,那 CLI 才是正确入口。网页版和 CLI 的本质区别在于:网页版只能生成代码块让你手动复制,CLI 可以直接读写你本地的项目文件、执行 shell 命令、跑测试、抓网页,并根据执行反馈自主规划下一步。
安装方式有两种。脚本安装会先装 Python 包管理工具 uv,再通过 uv 安装:
# 方式一:官方安装脚本(会自动处理 uv 依赖)
# 具体脚本地址以 kimi.com/code 页面提供的为准
# 方式二:已有 uv 环境,直接安装
uv tool install --python 3.13 kimi-cli
# 方式三:走 npm(需要较新版本的 Node.js)
npm install -g @moonshot/kimi-code
# 验证
kimi --version
装完之后,进入项目目录启动交互界面:
cd ~/projects/your-repo
kimi
首次启动需要登录,输入斜杠命令进入流程:
/login
它会给两个选项:一个是 OAuth 验证码流程,在任意设备打开链接、登录、输入验证码即可授权;另一个是直接填开放平台的 API 密钥。想退出登录用 /logout。
几个日常高频用法:
# 不进交互界面,直接执行单条指令
kimi -p "把 src/utils 下所有函数补上类型注解"
# 继续上一次会话
kimi -C
# 打开本地浏览器图形界面(会话管理、文件引用、代码高亮)
kimi web
# 以服务方式运行,通过 Agent Client Protocol 集成进 IDE
kimi acp
# 检查配置文件是否有问题
kimi doctor
# 升级
kimi upgrade
交互界面里输入 /help 可以看全部斜杠命令和快捷键。退出用 /exit,或者连按两次 Ctrl-C,输入框为空时连按两次 Ctrl-D 也行。
关于安全边界,默认策略是这样的:只读操作自动执行不打扰你,会修改文件或执行 shell 命令的操作,执行前会先征求确认。我建议新手不要急着关掉确认,先跑几十轮看看它的行为模式,心里有底了再考虑放权。
本地数据默认存在 ~/.kimi-code/ 下面,包括配置文件、会话记录、日志、更新缓存。想换位置用环境变量 KIMI_CODE_HOME 指定。
如果你要接入其他供应商,或者想同时管理多套配置,得直接编辑 config.toml:
[providers.kimi-for-coding]
type = "kimi"
base_url = "https://api.kimi.com/coding/v1"
api_key = "sk-xxx"
[models.k3]
provider = "kimi-for-coding"
model = "kimi-k3"
5.3 路径三:API 直连,做二次开发
需要写评测脚本、集成到自家产品、或者做自定义路由的,走 API。Kimi 的 API 兼容 OpenAI 的格式,所以主流 SDK 直接改个 base_url 就能用:
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-k3",
messages=[
{"role": "system", "content": "你是一名严谨的后端工程师,回答要给出可运行的代码。"},
{"role": "user", "content": "用 Python 写一个带指数退避的 HTTP 重试装饰器"},
],
)
print(resp.choices[0].message.content)
Node.js 版本同理:
const OpenAI = require("openai");
const client = new OpenAI({
apiKey: process.env.MOONSHOT_API_KEY,
baseURL: "https://api.moonshot.cn/v1",
});
async function main() {
const completion = await client.chat.completions.create({
model: "kimi-k3",
messages: [{ role: "user", content: "解释一下 MoE 的负载均衡问题" }],
});
console.log(completion.choices[0].message.content);
}
main();
有两个参数细节值得单独记一下:
第一,K3 使用顶层的 reasoning_effort 参数,当前只支持一个取值。切换到其他型号时,光改 model 字段是不够的,各型号的参数配置存在差异,得对着模型参数文档核一遍。
第二,如果你的场景是高频短任务、对延迟敏感,不一定非要用 K3。把 model 换成编程场景的高速型号往往更划算——这是我下一节要展开讲的“选型别一根筋”。
如果你已有的工作流是围绕 Anthropic 风格环境变量搭的,官方也提供了兼容端点,设置对应的 base_url、鉴权 token 和模型名即可平滑迁移,不用重写工具链。
5.4 新手最容易卡住的几个地方
这几个坑我基本都踩过一遍,写下来给你省点时间。
命令装完了却找不到。 大概率是可执行文件所在目录没进 PATH。重开一个终端窗口试试,还不行就手动执行一次 source ~/.bashrc(用 zsh 的话是 source ~/.zshrc)。这个问题跟工具本身没关系,任何通过脚本安装的命令行工具都可能遇到。
macOS 上首次启动特别慢。 这是系统安全检查机制导致的,不是程序卡死,等一会儿就好。想根治的话,去「系统设置 → 隐私与安全性 → 开发者工具」里把你用的终端应用加进去,后续启动会快很多。
配置文件改完不生效。 先别怀疑逻辑,跑一下配置校验命令:
kimi doctor
它只做校验,不会启动界面也不会改动文件,能把语法错误、字段拼写错误之类的问题直接指出来。TOML 格式对缩进和引号比较敏感,肉眼看很容易漏。
换了模型之后参数报错。 前面提过,不同型号的参数配置存在差异,不是改个 model 字段就完事。遇到参数相关的报错,第一反应应该是去查目标型号的参数参考文档,而不是在原有参数上瞎调。
额度消耗得莫名其妙快。 排查顺序建议是:先看是不是长会话没清、上下文里堆了大量历史;再看是不是把不该用重型号的任务也丢给它了;最后才看是不是提示词写得太啰嗦。按我的经验,前两条能解释八成以上的情况。
IDE 集成起不来。 集成走的是 Agent Client Protocol,正常情况下由编辑器把它作为子进程拉起,不需要你手动运行。如果 IDE 里连不上,先确认命令行版本本身能正常启动、能正常登录,再去查编辑器侧的配置,别一上来就怀疑协议。
5.5 三条路径怎么选
g