mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 06:15:51 +00:00
主要变更: - Skill Learning 闭环系统 (9/9 AC) - Opus 4.7 模型层接入 + adaptive thinking - Prompt 工程优化 (64 审计测试) - Agent Teams 简化门控 (默认启用) - Windows Terminal 后端修复 (EncodedCommand/WT_SESSION) - TF-IDF 技能搜索精准化 (字段加权/CJK 优化) - Autonomy 系统 (/autonomy 命令) - ACP 协议完整实现 - mock.module 泄漏修复 (CI 全绿) - 152+ lint/type 修复
15 KiB
15 KiB
Claude Opus 4.7 Model Integration Checklist
本文档整理 Claude-Opus-4.7.txt 与 src/constants/prompts.ts 的关联点,以及将 Claude Opus 4.7 正式接入当前项目时需要联动的模型层清单。
当前判断:如果仅依赖授权文件登录,但不显式指定 claude-opus-4-7,当前项目大概率仍会落到 Opus 4.6,因为默认 Opus、opus alias、模型选择器、系统提示和能力映射均仍硬编码在 4.6。授权文件只影响认证和账号权限,不会自动更新本地模型表。
参考输入
- 本地参考文件:
Claude-Opus-4.7.txt - 关键模型 ID:
claude-opus-4-7 - 当前项目默认 Opus:
claude-opus-4-6 - 需要优先验证的测试路径:显式运行
--model claude-opus-4-7,区分本地拦截、服务端权限拒绝、provider 不支持三类问题。
P0: prompts.ts 直接相关清单
这些项只覆盖 src/constants/prompts.ts。它们会影响系统提示里的模型自我认知、最新模型推荐、知识截止信息和用户可见说明。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/constants/prompts.ts:119 |
FRONTIER_MODEL_NAME 仍为 Claude Opus 4.6 |
更新为 Claude Opus 4.7 |
Fast mode 文案不再声称最新 frontier 是 4.6 |
src/constants/prompts.ts:122 |
CLAUDE_4_5_OR_4_6_MODEL_IDS 名称和内容仍绑定 4.5/4.6 |
改名为更通用的最新模型 ID 常量,或扩展为 CLAUDE_LATEST_MODEL_IDS |
常量中 Opus 指向 claude-opus-4-7 |
src/constants/prompts.ts:123 |
opus ID 仍为 claude-opus-4-6 |
改为 claude-opus-4-7 |
系统提示推荐的 Opus ID 是 4.7 |
src/constants/prompts.ts:671 |
环境提示写死 “Claude 4.5/4.6” | 更新为包含 Opus 4.7 的最新模型家族说明 | # Environment 中不再把 4.6 说成最新 Opus |
src/constants/prompts.ts:671 |
模型 ID 列表只列 Opus 4.6、Sonnet 4.6、Haiku 4.5 | 把 Opus 4.7 放到最新/默认推荐位置,保留 Sonnet 4.6 和 Haiku 4.5 | AI 应用构建建议默认引用 Opus 4.7 |
src/constants/prompts.ts:687 |
getKnowledgeCutoff() 没有 Opus 4.7 分支 |
新增 claude-opus-4-7 分支,并放在泛化 claude-opus-4 判断之前 |
claude-opus-4-7 不会落入旧 Opus 4 fallback |
src/constants/prompts.ts:690-703 |
当前匹配顺序只特殊处理 4.6、4.5、Haiku 4,再泛化 Opus 4/Sonnet 4 | 为 4.7 增加明确 cutoff,避免返回 January 2025 |
prompt 中显示的 cutoff 与 Opus 4.7 资料一致 |
src/constants/prompts.ts:582-623 |
computeEnvInfo() 输出模型描述和 knowledge cutoff,依赖模型层映射 |
在模型层补齐 4.7 后确认这里输出正确 | You are powered by... 能显示 Opus 4.7 |
src/constants/prompts.ts:627-684 |
computeSimpleEnvInfo() 同样依赖模型层映射和 latest family 文案 |
在 4.7 接入后做一次 prompt 快照/断言 | simple env 和 full env 都一致 |
P0: 模型注册和别名解析
这些项决定用户输入 opus、best、default 或不指定模型时,最终实际请求哪个模型。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/utils/model/configs.ts:99 |
只存在 CLAUDE_OPUS_4_6_CONFIG |
新增 CLAUDE_OPUS_4_7_CONFIG |
ALL_MODEL_CONFIGS 可派生 opus47 |
src/utils/model/configs.ts:119-132 |
ALL_MODEL_CONFIGS 到 opus46 结束 |
注册 opus47: CLAUDE_OPUS_4_7_CONFIG |
getModelStrings().opus47 类型可用 |
src/utils/model/model.ts:50-56 |
isNonCustomOpusModel() 未包含 4.7 |
加入 getModelStrings().opus47 |
Opus 4.7 能走 Opus 相关逻辑 |
src/utils/model/model.ts:115-135 |
getDefaultOpusModel() 返回 Opus 4.6 |
first-party 默认切到 4.7,3P 是否切换需按 provider availability 决定 | /model opus 和 best 能解析到预期模型 |
src/utils/model/model.ts:250-285 |
firstPartyNameToCanonical() 未识别 4.7 |
新增 claude-opus-4-7,顺序在 4.6 和泛化 claude-opus-4 前 |
canonical 返回 claude-opus-4-7 |
src/utils/model/model.ts:485-545 |
parseUserSpecifiedModel('opus') 间接落到 4.6 |
依赖 getDefaultOpusModel() 更新 |
opus alias 解析为 4.7 |
src/utils/model/model.ts:609-653 |
getMarketingNameForModel() 没有 Opus 4.7 |
增加 Opus 4.7 显示名 |
UI 和 prompt 都能显示友好名称 |
src/utils/model/model.ts:384-423 |
getPublicModelDisplayName() 没有 Opus 4.7 |
增加 base 和如适用的 [1m] 显示名 |
/model 当前模型显示正确 |
src/utils/model/model.ts:325-347 |
默认模型描述和价格后缀函数仍是 Opus 4.6 | 更新描述,必要时重命名 getOpus46PricingSuffix 或兼容包装 |
Default option 描述不再出现过期 Opus 4.6 |
P0: 模型选择器和用户可见选项
这些项决定 /model 菜单是否能看到 Opus 4.7。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/utils/model/modelOptions.ts:113-180 |
只有 getOpus46Option() |
新增 getOpus47Option() 或把 Opus option 改为当前默认 Opus |
/model 菜单显示 Opus 4.7 |
src/utils/model/modelOptions.ts:191-201 |
1M Opus option 绑定 opus46 |
如 Opus 4.7 支持 1M,新增/替换 4.7 1M option | 1M option 不再误指 4.6 |
src/utils/model/modelOptions.ts:266-300 |
Max/merged Opus option 文案仍是 4.6 | 更新 Max 用户和 merged 1M 文案 | Max/Team Premium 默认说明正确 |
src/utils/model/modelOptions.ts:324-424 |
picker 列表显式 push 4.6 option | 按用户类型和 provider 调整 4.7/4.6 顺序或替换关系 | first-party 可选项包含 4.7 |
src/utils/model/modelOptions.ts:486-514 |
已知模型展示依赖 marketing name | 补 4.7 marketing name 后确认这里能识别 | 显式 claude-opus-4-7 不显示成 Custom model |
src/commands/model/model.tsx:130-145 |
1M 不可用提示写死 Opus 4.6/Sonnet 4.6 | 如支持 4.7 1M,更新文案和检查函数 | 错误提示不误导用户 |
src/main.tsx:1349-1352 |
--model 帮助示例仍是 Sonnet 4.6 |
更新示例,或使用稳定 alias 示例优先 | CLI help 不展示过期主推模型 |
P0: 本地拦截和可用性判断
这些项用于判断“为什么授权文件拿不到 4.7”。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/utils/model/modelAllowlist.ts:100-170 |
如果 settings availableModels 没包含 4.7,显式 4.7 会被本地拒绝 |
检查用户配置,必要时加入 opus 或 claude-opus-4-7 |
/model claude-opus-4-7 不被本地 allowlist 拦截 |
src/utils/model/validateModel.ts:20-80 |
显式模型会先检查 allowlist,再请求 API 验证 | 用它区分本地拒绝和服务端拒绝 | 错误信息可分类为 allowlist、404、invalid model、auth |
src/utils/model/validateModel.ts:139-155 |
fallback 建议链只有 4.6 到旧模型 | 加 4.7 到 4.6 的 fallback 建议 | 3P 不支持 4.7 时提示 4.6 |
src/services/api/errors.ts:735-745 |
Pro plan invalid model 逻辑依赖 isNonCustomOpusModel() |
加入 Opus 4.7 后确认错误文案仍准确 | Pro 用户错误提示不漏判 |
src/services/api/errors.ts:902-910 |
404 模型不可用错误会提示换模型 | 加 4.7 fallback 建议 | 3P/权限问题提示可操作 |
src/services/api/Claude.ts:1771 |
最终请求直接发送 options.model 去掉 [1m] 后的值 |
确认显式 claude-opus-4-7 能传到这里 |
抓包/日志中 model 是 claude-opus-4-7 |
P1: 能力、beta、上下文和输出控制
这些项影响 4.7 的高级能力是否启用,或是否错误沿用 4.6 能力。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/utils/context.ts:43 |
1M context 匹配规则未确认 4.7 | 按官方/API 探测结果加入 4.7 | getContextWindowForModel('claude-opus-4-7') 正确 |
src/utils/model/check1mAccess.ts:45 |
1M access 检查未确认 4.7 | 如支持,加入 Opus 4.7 | 1M 权限检查不误报 |
src/utils/model/contextWindowUpgradeCheck.ts:4 |
upgrade path 未覆盖 4.7 | 如支持 1M upgrade,补分支 | 超 200K 时提示正确 |
src/utils/effort.ts:24 |
effort allowlist 未确认 4.7 | 加入支持项 | --effort 对 4.7 不被错误忽略 |
src/utils/effort.ts:53-54 |
max effort 注释写 Opus 4.6 only |
确认 4.7 是否支持 max,再更新 | 文案和 API 行为一致 |
src/utils/thinking.ts:113 |
adaptive thinking allowlist 未确认 4.7 | 加入或明确不支持 | thinking 参数不导致 400 |
src/utils/betas.ts:138-156 |
structured outputs、auto mode 支持列表未确认 4.7 | 按 API 能力加入 | 相关 beta 不漏发也不错发 |
src/utils/advisor.ts:87-98 |
advisor 支持列表未确认 4.7 | 按服务端能力加入 | advisor tool 对 4.7 行为正确 |
src/services/compact/cachedMCConfig.ts:35-36 |
cached microcompact 支持模型只到 4.6 | 如 4.7 支持,加入列表 | cache editing gate 不误关 |
src/utils/fastMode.ts:142-143 |
Fast Mode 显示为 Opus 4.6 | 确认 4.7 支持后更新 | /fast 文案和实际模型一致 |
src/utils/extraUsage.ts:17-22 |
extra usage 判断可能只识别 Opus 4.6 | 扩展到 Opus 4.7 | 账单提示正确 |
P1: provider 映射和第三方路径
这些项影响 OpenAI/Gemini/Grok/Bedrock/Vertex/Foundry 兼容层。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/services/api/openai/modelMapping.ts:8-12 |
OpenAI 兼容层只映射到 Opus 4.6 | 加 claude-opus-4-7 映射,或确认透传策略 |
OpenAI provider 不因未知 Anthropic ID 失败 |
src/services/api/grok/modelMapping.ts:11-15 |
Grok 兼容层只映射到 Opus 4.6 | 加 4.7 映射或 fallback | Grok provider 行为明确 |
src/services/api/gemini/modelMapping.ts |
未在搜索中看到 Opus 4.6 命中 | 确认是否通用规则覆盖 4.7 | Gemini provider 有明确策略 |
src/utils/model/configs.ts:99-107 |
3P provider ID 是否已发布未确认 | 对 Bedrock/Vertex/Foundry 分别确认 ID 格式 | 3P 配置不使用错误 model ID |
src/utils/envUtils.ts:149-162 |
Vertex region override 只列现有模型 | 如 4.7 需要 region env,补映射 | Vertex 用户可覆盖 region |
src/utils/model/modelStrings.ts:45-53 |
Bedrock profile 匹配基于 firstParty ID | 4.7 注册后确认 inference profile 可匹配 | Bedrock 自动发现可用 profile |
P1: 成本、显示、归因和内置文档
这些项不一定阻塞请求,但会影响用户体验、账单提示和输出元数据。
| 文件位置 | 当前问题 | 建议动作 | 验收点 |
|---|---|---|---|
src/utils/modelCost.ts:13-152 |
成本函数和映射以 Opus 4.6 命名 | 添加 Opus 4.7 cost tier,必要时重命名公共函数 | 价格显示和成本计算正确 |
src/constants/figures.ts:13 |
max effort 注释写 Opus 4.6 only | 按 4.7 支持情况更新注释 | 注释不过期 |
src/utils/commitAttribution.ts:149-160 |
commit trailer 映射缺 4.7 | 加 claude-opus-4-7 |
git attribution 显示公共模型名 |
src/skills/bundled/claudeApiContent.ts:37-41 |
Claude API skill 中 Opus ID/名称仍是 4.6 | 更新为 Opus 4.7,保留 Sonnet/Haiku 当前值 | 生成 API 示例时使用 4.7 |
src/utils/settings/types.ts:402 |
settings 示例仍是 Opus 4.6 | 更新示例或增加 4.7 示例 | 文档化配置不误导 |
src/utils/swarm/teammateModel.ts:1-9 |
teammate fallback model 用 Opus 4.6 config | 评估切到 Opus 4.7 | swarm/teammate 默认符合最新模型策略 |
scripts/probe-api-capabilities.ts:182 |
claude-opus-4-7 标为猜测模型 |
移到正式配置/已知模型列表 | 探测脚本不再把已发布模型当猜测 |
P2: 运行时动态补充模型的现状
当前项目有两个动态来源,但它们不能替代正式接入:
src/services/api/bootstrap.ts会从/api/claude_cli/bootstrap拉取additional_model_options并写入additionalModelOptionsCache。这可以让/model菜单临时出现额外模型,但不会更新opusalias、默认模型、prompt 文案、成本、能力、thinking、effort 或 provider 映射。src/utils/model/modelCapabilities.ts会调用/v1/models缓存模型能力。它能帮助上下文窗口和 token 上限动态化,但同样不会改变默认模型或别名解析。
因此,授权文件或 bootstrap 结果即使能看到 Opus 4.7,也不能替代上述 P0/P1 的本地代码接入。
最小判定流程
用于定位“获取不到 Opus 4.7”到底是哪一层问题。
- 显式运行:
--model claude-opus-4-7。 - 如果报
not in available models或organization restricts model selection,优先检查settings.availableModels和modelAllowlist.ts。 - 如果能发出请求但 API 返回
invalid model name、404 或 not available,优先检查账号权限、OAuth/API key 来源、base URL、provider 类型和服务端 gating。 - 如果显式模型成功,但默认仍是 4.6,说明主要是本地默认模型、alias、picker 和 prompt 未更新。
- 如果
/model菜单不显示 4.7,但显式--model claude-opus-4-7成功,说明 picker/bootstrap 未更新,不是权限问题。
推荐实施顺序
- 先补
configs.ts、model.ts、prompts.ts,让opus、best、默认 Opus 和系统提示都认识 4.7。 - 再补
modelOptions.ts和/model命令文案,让用户能选择和看懂 4.7。 - 然后补
validateModel.ts、errors.ts、modelAllowlist.ts相关测试,让失败路径能区分本地拦截和服务端拒绝。 - 最后补能力层、beta、thinking、effort、cost、provider 映射和文档示例。
测试清单
bun test src/utils/model/__tests__/model.test.tsbun test src/services/api/openai/__tests__/modelMapping.test.tsbun test src/services/api/grok/__tests__/modelMapping.test.tsbun test src/services/api/gemini/__tests__/modelMapping.test.tsbun test src/utils/__tests__/modelCost.test.ts- 增加或更新 prompt 相关断言,覆盖
getKnowledgeCutoff('claude-opus-4-7')和 environment prompt。 - 运行
bunx tsc --noEmit,确保新增opus47key 后类型全部收敛。
完成标准
claude-opus-4-7在模型配置中是正式条目,不再只出现在探测脚本的猜测列表。opusalias、best、Max/Team Premium 默认 Opus 都按设计解析到 Opus 4.7。/model菜单能显示 Opus 4.7,显式--model claude-opus-4-7能通过本地校验。src/constants/prompts.ts不再把 Opus 4.6 描述为最新 frontier。- Opus 4.7 的 knowledge cutoff、marketing name、public display name、cost、effort、thinking、context window 和 beta 支持都有明确实现或明确不支持分支。
- 失败路径能区分:本地 allowlist、账号权限、provider 不支持、服务端模型不存在。