Kimi · HF · Moonshot

Kimi-K2.7-Code

Kimi-K2.7-Code

二〇二六年八月二十六日 · 英文原文

Moonshot AI 发布 Kimi K2.7 Code,一个基于 Kimi K2.6 构建的编码 agentic 模型,采用 MoE 架构,总参数量 1T,激活参数量 32B,上下文长度 256K,支持 MLA 注意力机制与 MoonViT 视觉编码器。相比 K2.6,思考 token 使用量减少约 30%。在 Kimi Code Bench v2 上得分 62.0,Program Bench 得分 53.6,MLS Bench Lite 得分 35.1,MCP Atlas 得分 76.0,MCP Mark Verified 得分 81.1。模型采用原生 INT4 量化,支持 vLLM、SGLang、KTransformers 推理引擎,提供兼容 OpenAI/Anthropic 的 API。

1. 模型介绍

Kimi K2.7 Code 是一个以编码为核心的 agentic 模型,基于 Kimi K2.6 构建。在真实世界的长周期编码任务上进行了大幅改进,增强了跨复杂软件工程工作流的端到端任务完成能力,同时提升了 token 效率,与 Kimi K2.6 相比,思考 token 使用量减少了约 30%。

2. 模型概要

架构 混合专家模型 (Mixture-of-Experts, MoE)
总参数量 1T
激活参数量 32B
层数(含稠密层) 61
稠密层数 1
Attention 隐藏维度 7168
MoE 隐藏维度(每个专家) 2048
Attention 头数 64
专家数 384
每个 token 选择的专家数 8
共享专家数 1
词表大小 160K
上下文长度 256K
Attention 机制 MLA
激活函数 SwiGLU
视觉编码器 MoonViT
视觉编码器参数量 400M

3. 评估结果

  1. 通用测试细节
    • 除非另有说明,Kimi K2.7 Code 和 K2.6 均在 Kimi Code CLI 中启用思考模式进行测试,temperature = 1.0,top-p = 0.95,上下文长度为 262,144 token;GPT-5.5 在 Codex 中以 xhigh 模式运行,Opus 4.8 在 Claude Code 中以 xhigh 模式运行。除这些差异外,所有基准测试均在相同条件下评估。
  2. 编码基准测试
    • Kimi Code Bench V2 是我们内部构建的基准测试,用于评估编码 agent 在真实任务上的表现。它包含跨 10 多种主流编程语言的多样化软件工程任务,以及涵盖内部工程用例、生产事故和真实世界开源项目的完整生产技术栈,重点涉及后端服务、基础设施、性能工程、系统编程、安全、前端开发以及 ML/数据工程。
    • Program Bench 通过要求代码生成 agent 仅根据编译后的二进制文件及其文档重建程序行为来进行评估。它包含 200 个任务,从小型 CLI 工具到 FFmpeg 和 SQLite 等大型系统。提交结果将根据超过 248,000 个模糊生成的 behavioral test 进行评判。在每个任务中,agent 会获得一个可执行文件及其文档,但没有源代码、反编译工具或互联网访问权限。它必须自行选择实现语言,从头构建完整程序,并通过 behavioral test 套件,将其输出与原始二进制文件进行比较。
    • MLS-Bench 评估 AI 系统能否发明可泛化且可扩展的机器学习方法。MLS-Bench-Lite 是 MLS-Bench 官方 30 个任务的子集,涵盖 LLM 预训练和后训练、机器人学、世界模型、计算机视觉、强化学习、优化、ML 系统、AI for Science 等领域。Agent 有 5 小时探索时间,然后提交解决方案。Opus 4.8 在 Claude Code 中以最大努力设置进行评估。
  3. Agentic 基准测试
    • Kimi Claw 24/7 Bench 是我们内部构建的基准测试,用于评估在持久、多日协作任务中的长周期 agentic 性能。它涵盖 17 个专业场景,共 610 个评估点,涉及软件工程、ML 研究、招聘、交易、营销等领域。所有任务均通过 OpenClaw harness 执行。最终得分为所有评估点的平均通过率,并取 3 次运行的平均值。
    • MCP-Atlas 通过可扩展的 MCP 评估 LLM 在真实工具使用任务上的性能。我们遵循官方 MCP-Atlas 评估配置,工具调用预算为 100 次,每步最大 token 数为 32k。最终结果为 3 次运行的平均值。
    • MCPMark-Verified 是 MCPMark 的人工验证版本,该基准测试用于评估在五个真实服务器环境(Notion、GitHub、Filesystem、Postgres 和 Playwright)中的 MCP 工具使用。每个任务均已由我们团队和基准测试官方重新检查,并将很快开源。我们遵循官方 MCPMark 评估配置,工具调用预算为 100 步,每步最大 token 数为 32k。最终结果为 3 次运行的平均值。

4. 原生 INT4 量化

Kimi-K2.7-Code 采用与 Kimi-K2-Thinking 相同的原生 int4 量化方法。

5. 部署

[!Note] 您可以在 https://platform.moonshot.ai 访问 Kimi-K2.7-Code 的 API,我们提供兼容 OpenAI/Anthropic 的 API。 目前,建议在以下推理引擎上运行 Kimi-K2.7-Code:

Kimi-K2.7-Code 与 Kimi-K2.5/Kimi-K2.6 具有相同的架构,部署方法可直接复用。

transformers 的版本要求为 >=4.57.1, <5.0.0

部署示例可在 模型部署指南 中找到。


6. 模型使用

以下使用示例演示了如何调用我们的官方 API。请注意,Kimi-K2.7-Code 强制将 thinking 和 preserve_thinking 设置为 True。

对于使用 vLLM 或 SGLang 部署的第三方 API,请注意:

[!Note]

  • 视频内容对话是一项实验性功能,目前仅在我们的官方 API 中支持。

  • 建议的 temperature 在思考模式下为 1.0

  • 建议的 top_p0.95

  • 不支持即时模式。

对话补全

这是一个简单的对话补全脚本,展示了如何在思考模式下调用 K2.7-Code API。

import openai
import base64
import requests
def simple_chat(client: openai.OpenAI, model_name: str):
    messages = [
        {'role': 'system', 'content': 'You are Kimi, an AI assistant created by Moonshot AI.'},
        {
            'role': 'user',
            'content': [
                {'type': 'text', 'text': 'which one is bigger, 9.11 or 9.9? think carefully.'}
            ],
        },
    ]
    response = client.chat.completions.create(
        model=model_name, messages=messages, stream=False, max_tokens=4096
    )
    print('====== Below is reasoning content in Thinking Mode ======')
    print(f'reasoning content: {response.choices[0].message.reasoning}')
    print('====== Below is response in Thinking Mode ======')
    print(f'response: {response.choices[0].message.content}')

带视觉内容的对话补全

K2.7-Code 支持图像和视频输入。

以下示例演示了如何使用图像输入调用 K2.7-Code API:

import openai
import base64
import requests

def chat_with_image(client: openai.OpenAI, model_name: str):
    url = 'https://huggingface.co/moonshotai/Kimi-K2.7-Code/resolve/main/figures/kimi-logo.png'
    image_base64 = base64.b64encode(requests.get(url).content).decode()
    messages = [
        {
            'role': 'user',
            'content': [
                {'type': 'text', 'text': 'Describe this image in detail.'},
                {
                    'type': 'image_url',
                    'image_url': {'url': f'data:image/png;base64,{image_base64}'},
                },
            ],
        }
    ]

    response = client.chat.completions.create(
        model=model_name, messages=messages, stream=False, max_tokens=8192
    )
    print('====== Below is reasoning content in Thinking Mode ======')
    print(f'reasoning content: {response.choices[0].message.reasoning}')
    print('====== Below is response in Thinking Mode ======')
    print(f'response: {response.choices[0].message.content}')

以下示例演示了如何使用视频输入调用 K2.7-Code API:

import openai
import base64
import requests

def chat_with_video(client: openai.OpenAI, model_name:str):
    url = 'https://huggingface.co/moonshotai/Kimi-K2.7-Code/resolve/main/figures/demo_video.mp4'
    video_base64 = base64.b64encode(requests.get(url).content).decode()
    messages = [
        {
            "role": "user",
            "content": [
                {"type": "text","text": "Describe the video in detail."},
                {
                    "type": "video_url",
                    "video_url": {"url": f"data:video/mp4;base64,{video_base64}"},
                },
            ],
        }
    ]

    response = client.chat.completions.create(model=model_name, messages=messages)
    print('====== Below is reasoning content in Thinking Mode ======')
    print(f'reasoning content: {response.choices[0].message.reasoning}')
    print('====== Below is response in Thinking Mode ======')
    print(f'response: {response.choices[0].message.content}')

保留思考内容

Kimi K2.7 Code 强制启用 preserve_thinking 模式,该模式在多轮交互中保留完整的推理内容,并增强编码 agent 场景的性能。

此功能默认启用且无法禁用。以下示例演示了如何在 preserve_thinking 模式下调用 K2.7-Code API:

def chat_with_preserve_thinking(client: openai.OpenAI, model_name: str):
    messages = [
        {
            "role": "user",
            "content": "Tell me three random numbers."
        },
        {
            "role": "assistant",
            "reasoning_content": "I'll start by listing five numbers: 473, 921, 235, 215, 222, and I'll tell you the first three.",
            # Some API (e.g. vLLM) may not support reasoning_content, you can try reasoning instead
            "content": "473, 921, 235"
        },
        {
            "role": "user",
            "content": "What are the other two numbers you have in mind?"
        }
    ]

    response = client.chat.completions.create(
        model=model_name,
        messages=messages,
        stream=False,
        max_tokens=4096,
    )
    # the assistant should mention 215 and 222 that appear in the prior reasoning content
    print(f"response: {response.choices[0].message.reasoning}")
    return response.choices[0].message.content

交错思考与多步工具调用

K2.7-Code 与 K2 Thinking 共享相同的交错思考与多步工具调用设计。使用示例请参考 K2 Thinking 文档

编码 Agent 框架

Kimi K2.7-Code 与 Kimi Code CLI 作为其 agent 框架配合使用效果最佳——请访问 https://www.kimi.com/code 试用。


7. 许可证

代码仓库和模型权重均根据 修改版 MIT 许可证 发布。


8. 第三方声明

请参阅 第三方声明


9. 联系我们

如有任何问题,请通过 support@moonshot.ai 联系我们。

译自 Kimi · HF · Moonshot · 录于 二〇二六年八月二十六日