What version of Kimi Code is running?
0.6.0
Which open platform/subscription were you using?
Moonshot AI Open Platform (moonshot.cn)
Which model were you using?
No response
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
KIMI_MODEL_* 这条环境变量配置路径允许:
KIMI_MODEL_PROVIDER_TYPE=openai
KIMI_MODEL_PROVIDER_TYPE=anthropic
但当用户没有显式设置 KIMI_MODEL_CAPABILITIES 时,代码会使用一组原本看起来是给 Kimi 模型准备的默认能力:
const DEFAULT_CAPABILITIES = ['image_in', 'thinking'];
随后 applyEnvModelConfig() 会把这个默认值应用到所有允许的 provider type 上:
const capabilities =
parseCapabilities(env['KIMI_MODEL_CAPABILITIES']) ?? DEFAULT_CAPABILITIES;
这样的话,通过 env 配置的 OpenAI / Anthropic 模型 alias 默认被声明为支持 image_in 和 thinking 和 kimi 一样
What steps can reproduce the bug?
例如使用下面的环境变量启动:
KIMI_MODEL_PROVIDER_TYPE=openai \
KIMI_MODEL_NAME=gpt-3.5-turbo \
KIMI_MODEL_API_KEY=... \
kimi
因为没有设置 KIMI_MODEL_CAPABILITIES,运行时合成出来的 model alias 会带上:
capabilities: ['image_in', 'thinking']
当然这个例子中的 gpt-3.5-turbo 并不具备 capabilities: ['image_in', 'thinking'] 这两项能力
What is the expected behavior?
openai 和 anthropic 作为 KIMI_MODEL_PROVIDER_TYPE 的合法值本身是合理的,不应该移除。
但非 Kimi provider 不应该和 Kimi 默认的能力相同。更合理的行为是:
- Kimi env model 可以继续默认声明
image_in / thinking
- OpenAI / Anthropic env model 默认不写 capabilities,交给 provider/model capability detection 判断
- 如果用户接的是 OpenAI-compatible 网关或自定义模型名,需要覆盖能力时,再显式设置
KIMI_MODEL_CAPABILITIES
Additional information
当前行为可能让 CLI 暴露或使用模型实际不支持的能力。
例如:
- 文本 OpenAI 模型可能被声明为支持图片输入
- 非 reasoning OpenAI 模型可能被声明为支持 thinking
- Anthropic 模型可能被默认声明为支持 thinking,即使具体模型并不适合
这可能带来误导性的 UI 行为,或者生成 provider 不接受的请求参数。并且 kosong 中有了内置判断,这些前置判断并不需要。
把默认能力改成按 provider type 区分:
const DEFAULT_CAPABILITIES_BY_TYPE: Partial<Record<ProviderType, string[]>> = {
kimi: ['image_in', 'thinking'],
};
const capabilities =
parseCapabilities(env['KIMI_MODEL_CAPABILITIES']) ?? DEFAULT_CAPABILITIES_BY_TYPE[type];
What version of Kimi Code is running?
0.6.0
Which open platform/subscription were you using?
Moonshot AI Open Platform (moonshot.cn)
Which model were you using?
No response
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
KIMI_MODEL_*这条环境变量配置路径允许:但当用户没有显式设置
KIMI_MODEL_CAPABILITIES时,代码会使用一组原本看起来是给 Kimi 模型准备的默认能力:随后
applyEnvModelConfig()会把这个默认值应用到所有允许的 provider type 上:这样的话,通过 env 配置的 OpenAI / Anthropic 模型 alias 默认被声明为支持
image_in和thinking和 kimi 一样What steps can reproduce the bug?
例如使用下面的环境变量启动:
KIMI_MODEL_PROVIDER_TYPE=openai \ KIMI_MODEL_NAME=gpt-3.5-turbo \ KIMI_MODEL_API_KEY=... \ kimi因为没有设置
KIMI_MODEL_CAPABILITIES,运行时合成出来的 model alias 会带上:当然这个例子中的 gpt-3.5-turbo 并不具备 capabilities: ['image_in', 'thinking'] 这两项能力
What is the expected behavior?
openai和anthropic作为KIMI_MODEL_PROVIDER_TYPE的合法值本身是合理的,不应该移除。但非 Kimi provider 不应该和 Kimi 默认的能力相同。更合理的行为是:
image_in/thinkingKIMI_MODEL_CAPABILITIESAdditional information
当前行为可能让 CLI 暴露或使用模型实际不支持的能力。
例如:
这可能带来误导性的 UI 行为,或者生成 provider 不接受的请求参数。并且
kosong中有了内置判断,这些前置判断并不需要。把默认能力改成按 provider type 区分: