Skip to content

Kimi Partial Mode 报错 agent message content is empty

问题

使用 Kimi API 的 Partial Mode("把话塞嘴里"),将 assistant 消息的 content 设置为空字符串时,API 返回 400 错误:

json
{"error":{"message":"Invalid request: agent message content is empty","type":"invalid_request_error"}}

错误写法:

python
{"role": "assistant", "name": "", "content": "", "partial": True}

解决方案

Partial Mode 中 content 不能为空字符串,必须至少有一个字符作为"前缀"。如果想要模型输出 JSON,应该在 content 里填入 {,让模型假定自己已经输出了这个字符并继续:

python
{"role": "assistant", "name": "", "content": "{", "partial": True}

模型的输出结果会从 { 之后继续,实际内容类似 "foo": "bar" },需要手动把前缀拼上:

python
response = client.chat.completions.create(
    model="kimi-k2.6",
    messages=[
        {"role": "user", "content": "返回一个 JSON,包含 name 字段"},
        {"role": "assistant", "content": "{", "partial": True},  # 前缀必须非空
    ],
)
# 拼接前缀
full_json = "{" + response.choices[0].message.content

总结partial: True 的 assistant 消息要求 content 至少有一个字符,空字符串会触发输入校验失败。

来源MoonshotAI/MoonshotAI-Cookbook #34