返回首页

我把 Codex 默认模型换成了 Kimi K3:真香,但这 3 个坑必须提前避开

我把 Codex 默认模型换成了 Kimi K3:真香,但这 3 个坑必须提前避开

一句话结论:Codex 桌面端可以直连 Kimi K3,1M 上下文 + 原生多模态,能用且效果不错;但桌面端多模型切换有 bug,配置前建议先看完第 3 节。

老张最近折腾了一下,把天天在用的 Codex 默认模型切到了 Kimi K3。K3 最近确实火:2.8 万亿参数、1M 上下文、原生多模态,Kimi Code 套餐价格也香。整个过程踩了几个坑,全部记录在这篇里,给想上车的运维和开发朋友做个参考。

项目说明
目标Codex 默认模型切换为 Kimi K3
前提Kimi Code 会员(Allegretto 及以上)+ Kimi Code API Key
难度⭐⭐(改两个配置文件)
耗时顺利的话 10 分钟
最大坑点桌面端模型与 provider 不同步

一、最终效果

配置完成后:

  • Codex 直接走 Kimi K3,原生支持 Responses API,不需要 CC Switch 之类的本地代理
  • 1M 上下文,整个代码仓库丢进去不担心截断;
  • 多模态能力配合截图排障很实用;
  • 提供 k3(1M)和 k3-256k(256K)两个模型可选,日常任务用 256K 版本省一半配额。

二、前置准备

  1. Codex 桌面应用(macOS 或 Windows 都行)
  2. Kimi Code 会员:Allegretto 及以上档位才能用 K3 的 1M 上下文
  3. Kimi Code API Key:在 Kimi Code 控制台新建

⚠️ 注意:Kimi Code 的 API Key 和 Kimi 开放平台的通用 Key 不是一回事,要用专门的 Kimi Code Key。这是本文第 2 个坑,后面细说。


三、操作步骤(四步搞定)

第一步:获取 API Key

登录 Kimi Code 控制台,进入「API Keys」页面,新建一个 API Key,复制保存好。

第二步:创建模型目录文件

Codex 需要一个 models.json 文件来识别第三方模型的元数据(上下文大小、是否支持图片、推理档位等)。

打开终端:

mkdir -p ~/.codex

然后在 ~/.codex/models.json 里写入 K3 系列模型的定义:

{
  "models": [
    {
      "slug": "k3",
      "display_name": "Kimi K3",
      "description": "Kimi K3,1M 上下文,原生多模态",
      "default_reasoning_level": "high",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Light reasoning" },
        { "effort": "high", "description": "Enhanced reasoning" },
        { "effort": "max", "description": "Deep reasoning" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 0,
      "base_instructions": "",
      "supports_reasoning_summaries": true,
      "default_reasoning_summary": "none",
      "support_verbosity": false,
      "truncation_policy": { "mode": "bytes", "limit": 10000 },
      "context_window": 1048576,
      "max_context_window": 1048576,
      "effective_context_window_percent": 95,
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"]
    },
    {
      "slug": "k3-256k",
      "display_name": "Kimi K3 256K",
      "description": "Kimi K3 256K 上下文,日常代码任务更省配额",
      "default_reasoning_level": "high",
      "supported_reasoning_levels": [
        { "effort": "low", "description": "Light reasoning" },
        { "effort": "high", "description": "Enhanced reasoning" },
        { "effort": "max", "description": "Deep reasoning" }
      ],
      "shell_type": "shell_command",
      "visibility": "list",
      "supported_in_api": true,
      "priority": 1,
      "base_instructions": "",
      "supports_reasoning_summaries": true,
      "default_reasoning_summary": "none",
      "support_verbosity": false,
      "truncation_policy": { "mode": "bytes", "limit": 10000 },
      "context_window": 262144,
      "max_context_window": 262144,
      "effective_context_window_percent": 95,
      "supports_parallel_tool_calls": true,
      "experimental_supported_tools": [],
      "input_modalities": ["text", "image"]
    }
  ]
}

两个模型的区别:

  • k3:1M 上下文,适合大项目、长文档
  • k3-256k:256K 上下文,效果一样,消耗只有 k3 的一半,日常开发更省

第三步:修改 Codex 主配置

编辑 ~/.codex/config.toml

model = "k3"
model_provider = "kimi"
model_reasoning_effort = "high"
disable_response_storage = true
model_catalog_json = "/Users/<你的用户名>/.codex/models.json"

[model_providers]
[model_providers.kimi]
name = "Kimi"
base_url = "https://api.kimi.com/coding/v1"
experimental_bearer_token = "<KimiCodeAPIKey>"
wire_api = "responses"

[desktop]
enabled-reasoning-efforts = ["low", "high", "max"]

三个重点,错一个就连不上:

  • wire_api 必须是 "responses",不能写成 "chat"
  • base_urlhttps://api.kimi.com/coding/v1不是开放平台的地址
  • experimental_bearer_token 填 Kimi Code API Key(明文存储,注意别泄露配置文件)

第四步:重启验证

完全关闭 Codex 再打开,新开一个对话输入:

你好,请确认你当前使用的模型是什么?

回复里提到 Kimi ,就说明成功了。


四、老张踩的 2 个坑

坑 1:桌面端模型和 Provider 不同步(最大的坑)

现象:老张配置了 GLM 和 Kimi 两个模型,桌面端选择器里都能看到。切到 Kimi K3 后,左下角还显示 "ZAI"(智谱的 provider 名),发消息直接报 modelCode:不存在

原因:Codex 桌面端的模型选择器只切模型名,不切 provider。选了 Kimi K3,请求却还是发到智谱的服务器,智谱不认识 k3 这个模型名,自然报错。

解决办法

  • 桌面端只保留一个模型,别搞多模型切换
  • 需要多模型就用 CLI + Profiles--profile 参数会同时切换 model 和 provider
  • 或者等官方修复(目前是已知问题)

坑 2:环境变量读不到

配置里用 env_key 方式(从环境变量读 Key),macOS 桌面端死活读不到。

原因:从 Dock 启动的 GUI 应用读不到终端里的环境变量

解决办法:

  • launchctl setenv 注入用户会话(重启后失效,不推荐)
  • 直接用 experimental_bearer_token 写进配置文件(简单粗暴,推荐,一劳永逸)

五、实际体验

用了几天,说几个直观感受。

优点:

  • 1M 上下文真的大,整个仓库丢进去不慌
  • 多模态实用,截图丢进去分析 bug 很方便
  • 中文理解好,写中文文档、做中文项目更顺手

不足:

  • 桌面端多模型切换 bug 影响体验
  • 工具调用稳定性偶尔抽风,需要重试
  • 推理速度比轻量模型稍慢(毕竟参数多)

老张的用法:

场景模型
日常写代码、改 bugKimi K3 256K(省配额)
大项目、长文档Kimi K3(1M 上下文)
Hermes agentGLM-5.3-Flash、DeepSeek

🎯 老张建议

  1. 桌面端只留一个模型:多模型切换 bug 没修之前,桌面端单模型 + CLI 多 profile 是最稳的组合;
  2. 日常任务用 k3-256k:效果一样、配额减半,1M 留给真正需要的大上下文场景;
  3. 有 Kimi Code 会员的都建议试试:额度用不完也是浪费,多一个模型就多一个选择,别把鸡蛋放一个篮子里。

💬 互动话题

  1. 你现在 Codex 默认用的是什么模型?体验如何?
  2. 你在配置第三方模型时踩过什么坑?
  3. Kimi K3、GLM、DeepSeek,你日常主力是哪个?为什么?

🔗 关注老张

公众号:老张聊运维 小程序:观简国学 个人博客:https://www.shanwaiyun.top/

A

Admin

用文字记录生活与思考。

评论 (0)
暂无评论,来抢沙发吧
我把 Codex 默认模型换成了 Kimi K3:真香,但这 3 个坑必须提前避开 | 山外云的Vlog