feat: 扩展按模型上下文管理,支持自动压缩与模型元数据导入 - #1837
Conversation
438ae7e to
8daec15
Compare
|
Fork CI using the same .github/workflows/pr-build.yml passed for commit e4bf126. Windows artifacts, cargo test --workspace, macOS x64 DMG, and macOS arm64 DMG all passed. The upstream pull_request workflow is currently action_required and needs maintainer approval before it can run. |
9861a77 to
7e1223a
Compare
|
Rebased onto upstream/main at Latest head: Fork CI passed on the rebased head:
Fork CI run: https://github.com/dongyu23/CodexPlusPlus/actions/runs/31802597533 |
BigPizzaV3
left a comment
There was a problem hiding this comment.
按模型自动压缩和元数据导入本身有价值,但这个分支当前不能按整体合并。
相对最新 main,它已经是约 3654 行新增、384 行删除,除了目标功能还改动 launcher、Computer Use Guard、诊断日志、供应商应用/清理事务和大量旧 UI。主线在此后已经独立调整或移除了其中若干行为,直接解决冲突很容易把旧逻辑重新带回,且无法判断回归来自自动压缩、元数据导入还是无关同步代码。
请基于最新 main 重做并拆分:
- 第一部分只保留
modelAutoCompact、catalog 计算、前端编辑与对应测试; - 第二部分再单独提交模型元数据导入、受保护字段和外部 catalog 冲突处理;
- 不要携带 launcher、Computer Use Guard、诊断日志等与该功能无关的旧基线改动。
每个 PR 都应保持 opt-in,并分别覆盖旧 profile 无新字段时生成内容不变、每模型窗口与压缩阈值计算、外部 catalog 冲突失败不留半更新文件。当前分支已与 main 冲突,旧分支不建议继续直接合并。
背景
现有版本已经支持按模型配置上下文窗口。本次 PR 在此基础上继续扩展按模型的配置能力,使不同模型可以拥有更符合自身特性的上下文、自动压缩和能力元数据。
我近期观察到 DeepSeek 已开始原生适配 Responses API。随着 Responses API 被更多第三方模型提供商采用,模型之间在推理档位、工具能力、截断策略、响应格式和多模态支持方面的差异会越来越明显。继续让所有第三方模型沿用同一套默认能力配置,会限制实际使用效果,也会让用户难以根据模型特性进行调整。
目前 Codex 内置模型目录主要由 GPT/Codex 系列模型组成。对于内置目录中没有匹配到的第三方模型,原有回退逻辑会借用首个内置模型的字段结构和部分能力默认值。因此,未知模型可能继承与自身实际能力不一致的 GPT 模型配置,例如默认推理档位、verbosity、工具类型、截断策略和并行工具调用能力。
本 PR 继续沿用现有上下文管理和
model_catalog_json机制,为第三方 Responses 模型提供更具扩展性的配置方式。功能预览
管理器会根据当前模型名称匹配
models.json中相同slug的条目,并同步上下文窗口、自动压缩阈值和模型能力元数据。主要改动
按模型配置自动压缩
90%、84.5%context_window自动计算auto_compact_token_limit导入模型元数据
models.json导入入口models.json、模型对象数组和单个模型对象export default和module.exportsJSON 包装models数组中自动匹配同名slugslug时拒绝导入,避免覆盖错误配置导入内容除了上下文窗口和自动压缩阈值,还可以包含模型自身的能力字段,例如推理档位、verbosity、截断策略、并行工具调用、图片输入和供应商扩展字段。
模型名称同步
配置边界与默认值
context_window、auto_compact_token_limit等由 Codex++ 管理的字段不会作为普通元数据覆盖max_context_window、priority、visibility、supported_in_api等托管字段会被明确提示为未导入用户界面优化
max_context_window约束兼容性
model_list和model_windows配置格式验证
本地已完成:
npm test,74 项测试通过npm run checknpm run vite:buildgit diff --check本机当前没有 Rust 工具链,Rust 和跨平台打包由上述 CI 完成验证:
cargo test --workspace关联
本 PR 是 #1197 合并后对按模型上下文管理能力的后续扩展。
#931 记录了第三方模型上下文窗口未按配置生效的运行时问题。本 PR 继续沿用 Codex 原生
model_catalog_json机制,并扩展自动压缩和模型元数据配置。