上周三我把项目里的 Cursor 换成 VS Code + Continue.dev,原因很简单——Cursor 的订阅到期了,而且我只需要一个能接自定义模型的补全插件。想着把 Claude Opus 4 挂上去应该十分钟搞定,结果折腾了大半个下午。最大的坑不是配置本身,而是 tabAutocomplete 和 chat 是两套完全独立的 provider 配置,写一份不会自动复用到另一份;另外 Continue.dev 的 Anthropic provider 不像 Cursor 那样自动注入 anthropic-version 请求头,漏填直接 400,官方文档一个字没提。

这篇适合谁

  • 你在 VS Code 里用 Continue.dev 插件,想接 Claude Opus 做 chat 对话
  • 你同时需要 tab 补全功能,但不想 Opus 的高延迟拖慢打字节奏
  • 你之前在 Cursor / Cline 里用过 Anthropic API,以为 Continue.dev 配置差不多(不一样)
  • 你刚踩了 404 或 400 报错,搜到这篇来的

整体流程

  1. 确认你有可用的 Anthropic API Key(或聚合平台的 Key)
  2. 找到 Continue.dev 的 config.json 文件
  3. models 数组里配 chat provider(Opus)
  4. 单独配 tabAutocompleteModel(建议用 Claude Haiku 3.5,便宜快)
  5. 手动注入 anthropic-version 请求头
  6. 验证两个功能分别能跑通
graph TD
 A[拿到 API Key] --> B[编辑 config.json]
 B --> C[配 models 数组 - chat 用 Opus]
 B --> D[配 tabAutocompleteModel - 补全用 Haiku 3.5]
 C --> E[注入 anthropic-version 头]
 D --> E
 E --> F[重载生效,验证]

先说结论

配置项 chat(对话) tabAutocomplete(补全)
推荐模型 claude-opus-4-5(Claude Opus 4) claude-haiku-3-5(Claude Haiku 3.5)
输入价格 $15/M tokens $0.80/M tokens
输出价格 $75/M tokens $4.00/M tokens
写在哪 models 数组 tabAutocompleteModel 对象
是否共享配置 否,完全独立

一句话:这两个位置互不感知,你在 models 里写了 Opus 不代表 tab 补全也能用,反过来也一样。

第一步:找到 config.json

Mac/Linux 路径:

~/.continue/config.json

Windows 路径:

%USERPROFILE%\.continue\config.json

也可以在 VS Code 侧边栏点 Continue 的齿轮图标直接打开。文件不存在的话,装完插件第一次打开会自动生成。

第二步:配 chat provider(Opus)

models 数组里加一个对象:

{
 "title": "Claude Opus 4",
 "provider": "anthropic",
 "model": "claude-opus-4-5",
 "apiKey": "$ANTHROPIC_API_KEY"
}

注意 model 字段。我第一次填的是 claude-opus-4.8,直接报 404:

Anthropic API error: 404
{"type":"error","error":{"type":"not_found_error","message":"model: No such model: claude-opus-4.8"}}

Anthropic 的模型标识符格式是 claude-opus-4-5 这种用短横线连接的,不是小数点。网上流传的"4.8"是不存在的版本号,API 里不认,正确的 API 标识符是 claude-opus-4-5,对应 Claude Opus 4。

第三步:配 tabAutocompleteModel(独立!)

这是我踩的第一个大坑。我以为 models 里配了 Opus,tab 补全就能用了。结果按 Tab 毫无反应。翻了一圈才发现 Continue.dev 的 autocomplete 是单独的顶层字段:

{
 "tabAutocompleteModel": {
 "title": "Claude Haiku 3.5 补全",
 "provider": "anthropic",
 "model": "claude-haiku-3-5",
 "apiKey": "$ANTHROPIC_API_KEY"
 }
}

这里我用 Claude Haiku 3.5 而不是 Opus。原因很实际——Opus 输入 $15/M,Claude Haiku 3.5 输入 $0.80/M,差了将近 19 倍。补全这种每秒触发好几次的场景,Opus 一天能烧掉好几刀,而且延迟明显更高,补全出来的时候你已经打完那行了。

第四步:注入 anthropic-version 请求头(隐藏坑)

配完前面两步,chat 能用了,但 tabAutocomplete 偶尔会返回 400。报错信息长这样:

{"type":"error","error":{"type":"invalid_request_error","message":"missing required header: anthropic-version"}}

说实话一开始我是拒绝的——Cursor 和 Cline 都不需要手动填这个头,它们内部自动附带了。但 Continue.dev 的 Anthropic provider 在某些请求路径(特别是 completion 端点)不会自动注入。

解决方法是在配置里加 requestOptions.headers

{
 "tabAutocompleteModel": {
 "title": "Claude Haiku 3.5 补全",
 "provider": "anthropic",
 "model": "claude-haiku-3-5",
 "apiKey": "$ANTHROPIC_API_KEY",
 "requestOptions": {
 "headers": {
 "anthropic-version": "2023-06-01"
 }
 }
 }
}

chat 那边的 models 配置里也建议加上同样的 headers。chat 路径当前版本通常会自动带上该请求头,但建议显式声明以避免因版本差异导致的潜在问题。我在 4 月 22 号测试时,不加这个头 chat 也正常,但 autocomplete 必挂。

第五步:完整配置长这样

把前面的拼起来,一个能跑的最终版本:

{
 "models": [{
 "title": "Claude Opus 4",
 "provider": "anthropic",
 "model": "claude-opus-4-5",
 "apiKey": "$ANTHROPIC_API_KEY",
 "contextLength": 200000,
 "requestOptions": {
 "headers": {
 "anthropic-version": "2023-06-01"
 }
 }
 }],
 "tabAutocompleteModel": {
 "title": "Claude Haiku 3.5 补全",
 "provider": "anthropic",
 "model": "claude-haiku-3-5",
 "apiKey": "$ANTHROPIC_API_KEY",
 "requestOptions": {
 "headers": {
 "anthropic-version": "2023-06-01"
 }
 }
 }
}

改完保存,Continue.dev 通常会热重载,不用重启 VS Code。侧边栏模型下拉菜单里应该能看到"Claude Opus 4"了。

用聚合平台的 Key 怎么配

如果你用的不是 Anthropic 官方直连,而是通过 OpenRouter 这类聚合网关走(OpenRouter 收 5.5% 手续费),需要额外加 apiBase 字段:

{
 "title": "Claude Opus via 聚合",
 "provider": "anthropic",
 "model": "claude-opus-4-5",
 "apiKey": "your-platform-key",
 "apiBase": "https://your-platform-api-base/v1"
}

其他字段不变。聚合平台的好处是一个 Key 能切不同模型,团队里多人共用时管理员后台能看到每个人的消耗明细,月底不用挨个对账。请将 apiBase 替换为你实际使用的聚合平台地址,并确认该地址可用。

不同场景怎么选

场景 chat 模型 autocomplete 模型 理由
个人日常开发 Claude Opus 4 Claude Haiku 3.5 质量和成本的平衡点
团队统一配置 Claude Sonnet 4 Claude Haiku 3.5 Sonnet 性价比更高,$3/M 输入
预算极紧 Claude Haiku 3.5 Claude Haiku 3.5 全 Haiku 成本最低
复杂架构讨论 Claude Opus 4 关掉 autocomplete Opus 200K 上下文适合长对话

我个人现在的配置是 Claude Opus 4 做 chat + Claude Haiku 3.5 做补全。一天大概 40-60 次 chat 对话、补全触发几百次,日均成本在 $1.1-$1.7 左右(仅供参考,实际费用因使用量而异)。如果全用 Opus 做补全,测了一天数据我人傻了——光补全就烧了 $4.7。

踩坑记录 / 常见问题 FAQ

Q: config.json 改完模型列表不显示怎么办?

先用 jsonlint.com 验证 JSON 格式。我有一次多打了个逗号,报错是 Cannot read properties of undefined (reading 'model'),完全看不出是 JSON 语法问题。验证通过后如果还不显示,Cmd+Shift+P 搜 "Continue: Reload" 手动触发一次。

Q: 报 401 invalid x-api-key 怎么排查?

完整报错长这样:

Anthropic API error: 401
{"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}

三种可能:Key 复制时带了前后空格(最常见)、Key 已在 Anthropic Console 里 revoke 了、用了环境变量但终端没 source。

Q: anthropic-version 头的值填什么?

目前填 2023-06-01 就行,这是 Anthropic Messages API 的稳定版本标识符。未来 Anthropic 可能会推出新版本号,建议使用前以 Anthropic 官方文档 为准。

Q: 能不能 chat 和 autocomplete 用同一个模型?

技术上可以,但不推荐。Claude Opus 4 做补全延迟较高(个人实测 P95 在 1200ms 左右,实际延迟因网络环境和 token 长度而异),打字体验很糟。Claude Haiku 3.5 补全 P95 大概 320ms,体感流畅很多。

Q: Continue.dev 支持自定义 base URL 吗?

支持。在模型配置里加 apiBase 字段,指向你的聚合平台或自建代理地址就行。格式是完整的 URL 到 /v1

小结

整个配置其实就三个核心认知:model 标识符用短横线不用小数点、chat 和 autocomplete 是两套独立配置、anthropic-version 头要手动加。知道这三点,五分钟就能配完。

折腾半天最大的感受是——Continue.dev 的灵活性确实比 Cursor 高,但代价就是这些细节全得自己填。Cursor 帮你封装好了,Continue 把选择权交给你,也把坑留给你了。

Logo

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

更多推荐