[ PROMPT_NODE_23872 ]
model-migration
[ SKILL_DOCUMENTATION ]
# 模型迁移指南
如何将现有代码迁移到较新的 Claude 模型。涵盖重大变更、已弃用的参数以及已退役模型的直接替代方案。
获取最新、权威的版本(包含所有支持语言的代码示例),请使用 `shared/live-sources.md` 中的 **迁移指南** URL 进行 WebFetch。使用此文件作为整合的、技能驻留的参考;每当模型发布或发生重大变更可能改变情况时,请回退到实时文档。
**此文件很大。** 使用下面的章节名称跳转(或 `Grep` 此文件以查找标题文本)。先阅读第 0 步和第 1 步 — 它们适用于所有迁移。然后仅阅读您要迁移到的目标模型的章节。
| 章节 | 使用场景 |
|---|---|
| 第 0 步:确认迁移范围 | 始终 — 在进行任何编辑之前 |
| 第 1 步:分类每个文件 | 始终 — 决定是替换、并列添加还是跳过 |
| 各 SDK 语法参考 | 将本指南中的 Python 示例翻译为 TypeScript / Go / Ruby / Java / C# / PHP |
| 目标模型 / 退役模型替代方案 | 选择目标模型 |
| 源模型的重大变更 | 迁移到 Opus 4.6 / Sonnet 4.6 |
| 迁移到 Opus 4.7 | 迁移到 Opus 4.7(重大变更、静默默认值、行为转变) |
| Opus 4.7 迁移检查清单 | 4.7 的必选与可选项目,标记为 `[BLOCKS]` / `[TUNE]` |
| 验证迁移 | 编辑后 — 运行时抽查 |
**TL;DR:** 更改模型 ID 字符串。如果您之前使用 `budget_tokens`,请切换到 `thinking: {type: "adaptive"}`。如果您之前使用助手预填充(assistant prefills),它们在 Opus 4.6 和 Sonnet 4.6 上会返回 400 错误 — 切换到预填充替代方案之一(通常是 `output_config.format`;请参阅“源模型的重大变更”中的表格)。如果您从 Sonnet 4.5 迁移到 Sonnet 4.6,请显式设置 `effort` — 4.6 默认为 `high`。移除 `effort-2025-11-24` 和 `fine-grained-tool-streaming-2025-05-14` 测试版请求头(4.6 已 GA);一旦使用自适应思考,请移除 `interleaved-thinking-2025-05-14`(仅在使用过渡性的 `budget_tokens` 逃生舱时保留它)。然后从 `client.beta.messages.create` 回退到 `client.messages.create`。减少任何激进的“CRITICAL: YOU MUST”工具指令;4.6 对系统提示词的遵循程度要高得多。
---
## 第 0 步:确认迁移范围
**在进行任何 Write、Edit 或 MultiEdit 调用之前,确认范围。** 如果用户的请求没有明确命名一个