这两天 Kimi K3 爆火,但官方突然叫停新会员订阅,让不少开发者有点措手不及。
好消息是:API 通道仍然开放,K3 的能力可以通过开放平台直接调用,甚至能接入 Claude Code 等编程 Agent 工具。只不过,从「客户端里点一下」到「写脚本调 API」,中间有些坑得先知道。
这篇文章完整走一遍流程——API Key 申请、直连调用代码、Claude Code 配置,附实测踩坑记录。
第一步:获取 API Key 并注意 Tier 门槛
- 访问 Kimi 开放平台,注册/登录
- 在「API Keys」页面创建新 Key
- 关键门槛:免费组(累计充值 < 50 元)的请求会被路由到低优先级队列,实测会反复返回
engine_overloaded_error - 充值到 50 元以上,自动升到 Tier-1,最小请求才能正常返回 HTTP 200
定价方面,K3 按量计费,具体价格以官方文档为准。注意:API 额度不等于订阅额度,两者独立计费。
第二步:API 直连调用(附代码)
直连是最短的链路。下面是一个完整的 Node.js 脚本,把参考图编码为 Base64 发送给 K3,要求生成一个单文件网页:
const fs = require('fs');
const path = require('path');
// 1. 读取并编码图片
const imagePath = path.join(__dirname, 'reference.png');
const imageBuffer = fs.readFileSync(imagePath);
const base64Image = imageBuffer.toString('base64');
const mimeType = 'image/png';
// 2. 构造请求体
const payload = {
model: 'kimi-k3', // K3 模型 ID
messages: [
{
role: 'user',
content: [
{
type: 'image_url',
image_url: {
url: `data:${mimeType};base64,${base64Image}`,
},
},
{
type: 'text',
text: '分析这张网页截图,生成一个功能完整的单文件 HTML 页面。要求包含完整的 HTML、CSS 和 JavaScript。遵循参考图的视觉风格。CSS 用内联 <style>,JavaScript 用内联 <script>。确保页面能在浏览器中直接打开。',
},
],
},
],
stream: false, // 非流式,一次性返回
max_tokens: 16384,
};
// 3. 发送请求
const response = await fetch('https://api.moonshot.cn/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.KIMI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
const data = await response.json();
// 4. 提取 HTML 并写入文件
const htmlContent = data.choices[0].message.content;
const match = htmlContent.match(/```html\n?([\s\S]*?)```/);
const cleanHtml = match ? match[1].trim() : htmlContent;
fs.writeFileSync('output.html', cleanHtml, 'utf-8');
console.log('✅ 页面已生成:output.html');
注意事项:
- 非流式模式没有中间反馈,终端会沉默几十秒到几分钟不等
- 如果需要用流式(stream: true),需要逐 chunk 解析 SSE 数据
- 建议设置合理的
max_tokens(输出太短会被截断) - 遇到
engine_overloaded_error→ 检查 Tier 级别,或者稍后重试
第三步:接入 Claude Code(Anthropic 兼容接口)
如果你习惯用 Claude Code 的 Agent 工作流(文件读写、终端执行、工具调用),可以把 K3 挂进去:
配置方式
Claude Code 支持通过环境变量切换 API 端点:
# 在 ~/.zshrc 或项目 .env 中设置
export ANTHROPIC_BASE_URL="https://api.moonshot.cn/v1"
export ANTHROPIC_API_KEY="your-kimi-api-key"
然后在 Claude Code 的模型选择中指定兼容模型 ID,请求就会被路由到 Kimi 的 K3 端点。
实测发现:
- K3 接入后获得了文件读写、终端执行等 Agent 能力
- 但首次生成时,模型「思考了」但没有实际落盘文件 → 需要显式要求它检查目录并写入
- 视觉风格出现「漂移」——Claude Code 版生成的页面染上了暖红色调
- 同一个模型进入不同的 Agent 外壳(harness),输出行为差异明显
踩坑总结
| 问题 | 现象 | 解决方法 |
|---|---|---|
| 充值不足 | engine_overloaded_error | 累计充值≥50元升 Tier-1 |
| 非流式无反馈 | 终端长时间无输出 | 改用流式或加超时处理 |
| Agent 不落盘 | 似乎生成完了但无文件 | 追加「检查目录,确认已写入」 |
| API 兼容性 | 中间转换层返回 502 | 优先直连,减少代理层 |
| Token 消耗快 | 一条 Prompt 用大量额度 | 缩短 prompt,减少输出长度 |
实践建议
- 简单任务用直连:独立任务(如图→HTML),直连 API 比 Agent 更快更稳定
- 复杂任务用 Agent:需要多轮修改、文件操作、命令执行时,Claude Code 迭代能力更强
- 别迷信模型名:同一个 K3 在不同 harness 里表现差异明显,选壳和选模型同样重要
- 预留预算:K3 token 消耗不低,调用前先估算成本
