Codex 自定义模型上下文窗口改为 1M(DeepSeek / ccx 代理)
Codex 自定义模型上下文窗口改为 1MDeepSeek / ccx 代理最近烦恼codex上下文太短技术一般所以一直没设置成功。但最近发现了问题成功设置。给大家分享一下方法。适用环境Codex 桌面版Windows 自定义 provider 本地代理ccxlocalhost:3000 模型 deepseek-v4-flashDeepSeek 上下文 1M。1. 问题现象界面上的上下文窗口占用显示258k而不是 1M。在 config.toml 里写model_context_window 1000000之后重启仍然显示 258k。2. 根本原因Codex 内置模型列表里没有 deepseek-v4-flash 这个自定义模型所以它使用了fallback 模型元数据context_window 272000effective_context_window_percent 95有效窗口 272000 × 95% 258400即界面显示的 258k而 config.toml 里的 model_context_window 虽然会被读取但会被该 fallback 元数据的 max_context_window 272000封顶所以设 1M 也会被压回 272000 → 258k。解决办法通过官方支持的 model_catalog_json 配置项给 Codex 提供一份自定义模型目录里面明确定义 deepseek-v4-flash 的上下文窗口绕开 fallback。3. 修改步骤只需两步 重启3.1 新建模型目录文件新建文件C:\Users\你的用户名\.codex\model_catalog.json内容DeepSeek 1M 配置{models:[{slug:deepseek-v4-flash,display_name:DeepSeek V4 Flash,description:DeepSeek V4 Flash via ccx,default_reasoning_level:high,supported_reasoning_levels:[{effort:high,description:reasoning}],shell_type:shell_command,visibility:list,supported_in_api:true,priority:99,additional_speed_tiers:[],service_tiers:[],default_service_tier:null,availability_nux:null,upgrade:null,base_instructions:You are Codex, a coding agent.,model_messages:null,include_skills_usage_instructions:false,support_verbosity:false,default_verbosity:null,apply_patch_tool_type:null,truncation_policy:{mode:tokens,limit:10000},supports_parallel_tool_calls:true,supports_image_detail_original:false,context_window:1000000,max_context_window:1000000,effective_context_window_percent:95,experimental_supported_tools:[],input_modalities:[text],supports_search_tool:false,use_responses_lite:false}]}关键字段说明context_window模型的上下文窗口token 数。max_context_window允许配置覆盖的上限必须 ≥ context_window否则 model_context_window 配置会被它封顶。effective_context_window_percent实际可用比例。Codex 会预留系统提示/工具/输出的空间。95 → 有效窗口 1000000 × 95% 950000界面显示 950k推荐留有余量100 → 有效窗口 1000000界面显示 1000k / 1Mslug 必须和 config.toml 里的model deepseek-v4-flash完全一致。3.2 在 config.toml 里启用打开C:\Users\你的用户名\.codex\config.toml在顶层第一个[xxx]段落之前加一行model_catalog_json C:/Users/你的用户名/.codex/model_catalog.json路径里的反斜杠要么写两个\要么直接用正斜杠/如上例。改完后顶层大致长这样model_context_window 1000000 model_catalog_json C:/Users/你的用户名/.codex/model_catalog.json model_provider custom model deepseek-v4-flash ...model_context_window 1000000 可以保留现在不会被封顶也可以删掉效果一样。3.3 重启 Codex必须完全退出Codex 应用再重新打开配置只在启动时加载。确认任务栏/托盘没有残留进程。4. 如何验证界面上的上下文窗口占用应显示950k或 1M取决于 effective_context_window_percent。也可以用命令行验证在任意目录执行codex debug models输出中应包含 deepseek-v4-flash且字段为context_window:1000000,max_context_window:1000000,effective_context_window_percent:955. 注意事项model_catalog_json 指定的目录会在启动时替换内置模型目录模型选择器里只会显示该目录中的模型。本项目只使用 DeepSeek不影响使用。文件必须是 UTF-8 编码无 BOMJSON 语法不能错否则 Codex 启动时报错。不同电脑需要先有相同的 DeepSeek 代理配置[model_providers.custom] 指向 http://localhost:3000/v1本说明只解决上下文窗口显示 258k的问题。如果模型名称不是 deepseek-v4-flash把 JSON 里的 slug、display_name 和 config.toml 里的 model 改成实际名称即可。6. 如何恢复原状删除 config.toml 里的model_catalog_json ...这一行。删除 model_catalog.json 文件可留不影响。重启 Codex即可回到原来的 258k 状态。