上周三我们团队把 Cursor 里的默认模型从 Claude Sonnet 4.6 升级到 Claude Sonnet 5,结果三个人填了三种不同的 model_name,全部 400 报错。折腾半天才搞清楚——Claude Sonnet 5 在 Cursor 里的正确模型 ID 是 claude-sonnet-4-5,不是 claude-sonnet-5,也不是 claude-sonnet-4-6。另外 thinking 参数的写法跟 Claude Opus 4.8 有所不同,两者都需要显式声明 type,但字段值和 budget_tokens 的建议范围不一样。这篇把两个高频填错点拆开讲,10 分钟搞定。

这篇适合谁

  • 已经在用 Cursor 写代码,想把模型切到 Claude Sonnet 5 的开发者
  • 之前配过 Claude Opus 4.8,现在想加一个 Sonnet 5 但不确定参数差异的
  • 填了 Base URL 之后一直报 400 Bad RequestCould not connect to the model provider
  • 不想订 Cursor Pro($20/月),想用自己的 API Key 按量计费的

整体流程

  1. 确认你的 API Key 能调通 Claude Sonnet 5(先排除 Key 本身的问题)
  2. 在 Cursor Settings > Models 里填对三个字段:Key、Base URL、Model Name
  3. 处理 thinking 参数(Sonnet 5 和 Opus 4.8 的写法差异)
  4. 验证配置生效,跑一个简单 prompt
graph LR
    A[验证 API Key] --> B[填写 Cursor 配置]
    B --> C{选择接入方式}
    C -->|Cursor Pro 内置| D[勾选模型即可]
    C -->|自定义 API Key| E[填 Base URL + Model Name]
    E --> F[处理 thinking 参数]
    F --> G[验证调用成功]

先说结论

配置项 Claude Opus 4.8 Claude Sonnet 5 填错后果
Model Name claude-opus-4-8 claude-sonnet-4-5 400 报错
thinking 参数 "type": "enabled" + "budget_tokens": 10240 "type": "enabled" + "budget_tokens": 8192 静默忽略或 400
Context Window 200K 200K

两者的核心区别在于:model_name 不同,以及 thinking 的 budget_tokens 推荐值不同。两个模型都需要显式传入 "type": "enabled" 才能启用 extended thinking,这一点是一致的。

第一步:验证 API Key 能调通

在动 Cursor 配置之前,先用这段代码确认你的 Key 对 Sonnet 5 有权限:

import anthropic
client = anthropic.Anthropic(api_key='sk-ant-api03-你的Key')
msg = client.messages.create(
    model='claude-sonnet-4.5',
    max_tokens=128,
    messages=[{'role': 'user', 'content': 'Hi'}])
print(msg.content)

如果这步就报错:

Error: 400 Bad Request - model: claude-sonnet-4-5 does not exist or you do not have access to it

说明你的 Anthropic 账户还没开通 Sonnet 5 的访问权限。新账户可能需要等 24-48 小时才能拿到权限。这不是 Cursor 的问题。

第二步:Cursor 里填对三个字段

打开 Cursor Settings > Models > OpenAI API Key 区域(路径以你实际使用的 Cursor 版本为准,界面随版本更新可能有所调整)。

API Key:直接粘贴 sk-ant-api03- 开头的完整 Key。注意别多复制了空格,这个报错最隐蔽:

Error: 401 Unauthorized - Invalid API key.

Base URL:这里是最大的坑。Cursor 的自定义模型走的是 OpenAI 兼容协议(/v1/chat/completions),而 Anthropic 原生 API 走的是 /v1/messages,协议格式不同。Cursor 需要一个 OpenAI 兼容端点,因此不能直接填 Anthropic 原生地址,填了会报:

Error: Could not connect to the model provider.

你需要一个支持 OpenAI 兼容格式的 API 网关。OpenRouter、Together AI、ofox.io 这类聚合平台都支持,改一个 base_url 就行。比如用 ofox 的话:

https://api.ofox.io/v1

Model Name:填 claude-sonnet-4-5。不是 claude-sonnet-5,不是 anthropic/claude-sonnet-5

这个命名确实反直觉——模型叫"Sonnet 5"但 ID 里写的是"4-5"。Anthropic 的模型 ID 后缀格式并不统一,有的是版本号组合,有的是日期格式(如 -20250514),不要试图从字面规律推断,直接查官方文档或以本文真值表为准。

第三步:thinking 参数的差异(重点)

Claude Opus 4.8 和 Claude Sonnet 5 启用 extended thinking 的方式相同,都需要显式传入 "type": "enabled"

Opus 4.8 的写法:

{
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10240
  }
}

Sonnet 5 的写法:

{
  "thinking": {
    "type": "enabled",
    "budget_tokens": 8192
  }
}

两者的差异只在于 budget_tokens 的推荐值不同,"type": "enabled" 对两个模型都是必填项。少了这行,thinking 块会被直接忽略——不报错,但也不会做深度推理。你以为开了 thinking 实际上没开,输出质量莫名其妙变差,这个问题排查起来很隐蔽。

关于 budget_tokens 的范围:官方文档要求最小值为 1024,最大值随模型不同而异,请以 Anthropic 官方文档中对应模型的说明为准,不要硬套某个固定上限。

在 Cursor 里怎么设置?如果你用的是自定义 API Key + 聚合网关(比如 ofox.io 或 OpenRouter),thinking 参数需要在请求体里传。Cursor 本身的 UI 里没有单独的 thinking 开关,你可以尝试通过 .cursorrules 文件指定(注意:该方式是否被 Cursor 官方支持,建议以你实际测试结果为准):

{"model_params": {"thinking": {"type": "enabled", "budget_tokens": 8192}}}

不同场景怎么选

场景一:个人开发者,每天用 Cursor 写 2-3 小时代码

直接订 Cursor Pro($20/月),在 Models 列表里勾选 claude-sonnet-4-5 就行。零配置,fast request 配额够用。

场景二:用量大,每天超过 50 次对话

Cursor Pro 的 fast request 会很快用完,之后降速体验很差。建议用自己的 API Key + 聚合网关按量付费。Sonnet 5 的价格是输入 $3/百万 tokens、输出 $15/百万 tokens,中等强度使用一天大概 ¥8-12。

场景三:团队 5 人以上共用

ofox.io 这类有团队管理后台的平台,每个人的消耗、调了哪些模型、每笔花多少钱,管理员后台能按 User / API Key 维度看到明细,月底不用每个人单独报销。不同平台的加价比例和费率结构不同,建议在选型时直接对比各平台官方定价页,以实际报价为准。

场景四:只想试试 Sonnet 5,不想折腾

Cursor Pro 内置模型最省事。但如果你同时还在用 Claude Code 或 Cline,统一走一个聚合网关的 Key 反而更方便——改 base_url 就行,不用每个工具单独管 Key。

踩坑记录 / 常见问题 FAQ

Q: 我填了 claude-sonnet-5 为什么报 400?

A: 正确的模型 ID 是 claude-sonnet-4-5,不是 claude-sonnet-5。Anthropic 的模型 ID 后缀格式不统一,不要从字面规律推断,直接查官方文档或以本文真值表为准。

Q: Base URL 直接填 api.anthropic.com 为什么连不上?

A: Cursor 自定义模型走 OpenAI 兼容协议(/v1/chat/completions),Anthropic 原生 API 走的是 /v1/messages,协议格式不同。你需要一个支持协议转换的中转层。

Q: thinking 参数不生效怎么排查?

A: 先确认你传了 "type": "enabled"——Sonnet 5 和 Opus 4.8 都需要显式启用,缺少这个字段会导致 thinking 块被静默忽略。再确认 budget_tokens 在该模型允许的范围内(最小 1024,最大值以官方文档为准)。如果用的是 Cursor 内置模型,thinking 由 Cursor 自动管理,无法手动控制。

Q: 用自己的 API Key 和 Cursor Pro 订阅冲突吗?

A: 不冲突。两条路完全独立——用自己的 Key 走自定义 Base URL 时,不消耗 Cursor Pro 的 fast request 配额。你甚至可以同时开着 Pro 订阅(用内置模型快速对话)+ 自己的 Key(用于特定模型或大量调用)。

Q: 多个工具(Cursor / Cline / Claude Code)能共用一个 Key 吗?

A: 可以。如果你用的是聚合网关的 Key,只要 base_url 填对,Cursor、Cline、Claude Code 甚至 Cherry Studio 都能用同一个 Key。

小结

整个配置就三件事:确认 Key 有权限、Base URL 用 OpenAI 兼容格式的网关地址、Model Name 填 claude-sonnet-4-5。thinking 参数两个模型都需要显式传 "type": "enabled",区别只在 budget_tokens 的推荐值。

Anthropic 的模型 ID 命名方式不够直观,claude-sonnet-4-5 这个 ID 和"Sonnet 5"的对应关系确实容易让人困惑。跑通之后体验比 Sonnet 4.6 好了一截,尤其是长上下文场景下的代码补全,明显更稳。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐