MoonshotAI/Kimi-K2.7-Code
模型介绍文件和版本Pull Requests讨论分析
下载使用量0
Kimi K2.7 Code

Chat Homepage
Hugging Face Twitter Follow Discord ModelScope
License

1. 模型介绍

Kimi K2.7 Code 是在 Kimi K2.6 基础上构建的专注于编码任务的智能体模型。该模型在真实世界的长周期编码任务上进行了显著改进,增强了复杂软件工程工作流中的端到端任务完成能力,同时提升了令牌效率,与 Kimi K2.6 相比,思考令牌使用量减少约 30%。

2. 模型概要

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

3. 评估结果

基准测试Kimi K2.6Kimi K2.7 CodeGPT-5.5Claude Opus 4.8
编码能力
Kimi Code Bench v250.962.069.067.4
Program Bench48.353.669.163.8
MLS Bench Lite26.735.135.542.8
智能体能力
Kimi Claw 24/7 Bench42.946.952.850.4
MCP Atlas69.476.079.481.3
MCP Mark Verified72.881.192.976.4
脚注
  1. 通用测试详情
    • 除非另有说明,Kimi K2.7 Code 和 K2.6 的测试均在思考模式下通过 Kimi Code CLI 进行,参数设置为温度 = 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 是我们的内部基准测试,旨在评估编码智能体在实际任务中的表现。它包含 10 多种主流编程语言的多样化软件工程任务,以及完整的生产技术栈,涵盖内部工程用例、生产事件和现实世界开源项目中的任务,重点关注后端服务、基础设施、性能工程、系统编程、安全、前端开发以及机器学习/数据工程。
    • Program Bench 通过要求代码生成智能体仅根据编译后的二进制文件及其文档来重现程序行为,从而对其进行评估。它包含 200 个任务,从小型命令行工具到大型系统(如 FFmpeg 和 SQLite)。提交的结果通过超过 248,000 个模糊测试生成的行为测试进行评判。在每个任务中,智能体仅获得可执行文件及其文档,不提供源代码、反编译结果或互联网访问权限。它必须自行选择实现语言,从零开始构建完整程序,并通过将其输出与原始二进制文件进行比较的行为测试套件。
    • MLS-Bench 评估人工智能系统是否能够发明具有可泛化性和可扩展性的机器学习方法。MLS-Bench-Lite 是 MLS-Bench 的官方 30 任务子集,涵盖 LLM 预训练和后训练、机器人技术、世界模型、计算机视觉、强化学习、优化、机器学习系统、科学人工智能等领域。智能体有 5 小时的探索时间,之后提交解决方案。Opus 4.8 在 Claude Code 中以最大努力设置进行评估。
  3. 智能体基准测试
    • Kimi Claw 24/7 Bench 是我们的内部基准测试,用于评估智能体在持续多日协作任务中的长周期智能体性能。它涵盖 17 个专业场景,包含 610 个评估点,涉及软件工程、机器学习研究、招聘、交易、市场营销等领域。所有任务均通过 OpenClaw 框架执行。最终分数为所有评估点的平均通过率,并在 3 次运行中取平均值。
    • MCP-Atlas 通过可扩展的 MCP 评估 LLM 在实际工具使用任务中的性能。我们遵循官方 MCP-Atlas 评估配置,工具调用预算为 100 次,每步最大 token 数为 32k。最终结果在 3 次运行中取平均值。
    • MCPMark-Verified 是 MCPMark 的人工验证版本,这是一个用于评估 MCP 在五个真实服务器环境(Notion、GitHub、文件系统、Postgres 和 Playwright)中工具使用情况的基准测试。每个任务均经过我们团队和基准测试官方的重新检查,即将开源。我们遵循官方 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:

  • vLLM
  • SGLang
  • KTransformers

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 中支持。

  • 思考模式(Thinking mode)推荐的 temperature 为 1.0。

  • 推荐的 top_p 为 0.95。

  • 不支持即时模式(Instant mode)。

对话补全

这是一个简单的对话补全脚本,展示了如何在思考模式(Thinking mode)下调用 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 模式,该模式会在多轮交互中保留完整的推理内容,并提升编码代理场景下的性能。

此功能默认开启且无法关闭。以下示例展示了如何在 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 文档。

编码代理框架

Kimi K2.7-Code 与 Kimi Code CLI 作为其代理框架配合使用时效果最佳,您可以访问 https://www.kimi.com/code 进行尝试。


7. 许可协议

代码仓库和模型权重均基于 Modified MIT License 发布。


8. 第三方声明

详见 THIRD PARTY NOTICES


9. 联系我们

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