1. 为什么在 IntelliJ IDEA 里折腾 Claude API 这件事值得做
如果你每天有六七个小时泡在 IntelliJ IDEA 里写 Java、Kotlin 或者 Spring Boot,那你大概率动过「让 AI 直接读我当前文件、帮我改这段代码」的念头。JetBrains 官方的 AI Assistant 确实能补全,但模型选择相对固定,遇到复杂重构或者跨文件分析时,你没法自由换成 Claude 这种长上下文表现更稳的模型。而 Continue 这个插件的有趣之处在于,它把自己定位成一个「模型接入层」——插件本身不绑定任何一家模型,只要对方提供 OpenAI Compatible 接口,就能塞进 IDEA 里当编程助手用。
这篇要解决的核心问题很具体:在 IntelliJ IDEA 中通过 Continue 插件接入 Claude API,用 config.yaml 里的 OpenAI Compatible 协议把模型配好,然后在 IDE 内真正触发补全和对话。适合谁?适合已经装了 IDEA、想用 Claude 做代码解释/重构/单测生成,但不想被官方订阅绑死的后端和全栈开发者。整条链路里最容易卡住的地方其实不是装插件,而是 config.yaml 里provider、apiBase、model这三个字段的写法——写错一个,表现就是模型复读你的输入,或者直接 401。
我试过把 Continue 配成 Anthropic 原生 provider,结果在 IDEA 里对话一直转圈,后来换成 OpenAI Compatible 协议才通。所以下面会重点讲配置文件怎么写、怎么验证、报错怎么对号入座。
2. 接入前的准备:TaoToken 侧要拿到什么
Continue 要连上 Claude,本质上需要三样东西:一个能接收 OpenAI 格式请求的 Base URL、一个可用的 API Key、一个明确的 Model ID。这三者缺一不可,而且必须来自同一个服务方,否则会出现「Key 有效但模型不存在」这种隐蔽错误。
这里我用 TaoToken 作为接入侧来演示,因为它提供的就是 OpenAI Compatible 接口,Continue 里选provider: openai就能直接对接。你需要先去控制台创建一个 API Key,这个 Key 只在创建时完整显示一次,复制后先存到本地临时文件里,别直接贴在聊天窗口。
拿到 Key 之后,记下两个地址:
- Base URL:
https://taotoken.net/api,注意 Continue 的apiBase字段通常需要带/v1后缀,所以实际填https://taotoken.net/api/v1。 - 模型 ID:Claude 系列在 OpenAI Compatible 协议下一般写成
claude-sonnet-4-6、claude-opus-4-6这种形式,具体以你账号里可用的模型列表为准。
如果你还没有 Key,可以走这个入口创建:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。创建时建议给 Key 起个能认出来的名字,比如idea-continue-dev,方便以后在控制台里区分是哪个工具在用。
有一点要提前说清楚:Continue 的配置文件里apiKey是明文存储的,所以不要把 config.yaml 提交到 Git 仓库。如果你团队里多人共用一台开发机,建议每个开发者用自己的 Key,别共用。
3. 可复制的 config.yaml 配置:OpenAI Compatible 协议写法
Continue 的配置文件位置在不同系统下不太一样,但最稳妥的方式是直接在插件面板里点齿轮图标,选「Open config.yaml」,它会自动打开当前生效的那个文件。这样你就不用去猜路径了。
打开后,把 models 部分改成下面这样。这是一个可以直接复制的完整片段,包含两个 Claude 模型,一个用于日常补全,一个用于复杂推理:
name: Local Config version: 1.0.0 schema: v1 models: - name: Claude Sonnet 4.6 provider: openai model: claude-sonnet-4-6 apiKey: sk-你的实际Key apiBase: https://taotoken.net/api/v1 defaultCompletionOptions: contextLength: 200000 maxTokens: 8192 - name: Claude Opus 4.6 provider: openai model: claude-opus-4-6 apiKey: sk-你的实际Key apiBase: https://taotoken.net/api/v1 defaultCompletionOptions: contextLength: 200000 maxTokens: 8192 context: - provider: code - provider: docs - provider: diff - provider: terminal - provider: problems - provider: folder - provider: codebase几个字段必须对齐,错一个就会出问题:
| 字段 | 正确写法 | 常见错误 |
|---|---|---|
| provider | openai | 写成anthropic,导致协议不匹配 |
| apiBase | https://taotoken.net/api/v1 | 漏掉/v1,返回 404 |
| model | claude-sonnet-4-6 | 写成展示名Claude Sonnet 4.6 |
| apiKey | sk-开头完整串 | 复制时带了空格或换行 |
注意:
name字段是你在 IDEA 里看到的显示名,可以随便写;model字段是发给服务端的真实模型 ID,必须严格匹配。很多人把这两个搞混,结果请求发出去模型不存在。
保存文件后,Continue 面板右下角会出现模型切换下拉框,能看到「Claude Sonnet 4.6」和「Claude Opus 4.6」两个选项。如果没出现,先检查 YAML 缩进——Continue 用的是标准 YAML,两个空格一级,不能用 Tab。
4. 在 IDEA 内验证:补全、对话、报错对照
配置保存后别急着写业务代码,先用最小动作验证链路通不通。
第一步,打开 Continue 面板,在对话框里发一句:
Reply with exactly one word: OK如果模型返回OK,说明 Base URL、Key、Model ID 三者都对上了。如果返回的是你这句话本身,或者一直转圈,那基本是provider写成了anthropic,或者apiBase指向了不支持 OpenAI 格式的地址。
第二步,验证代码补全。随便打开一个 Java 文件,在方法体里敲一行注释:
// 写一个方法,输入 List<String>,返回去重后的 List<String>然后按 Continue 的补全快捷键(默认是Ctrl+J,Mac 是Cmd+J)。正常情况它会在光标处生成一段 Java 代码。如果没反应,去Settings → Continue里确认补全模型选的是你刚配的 Claude,而不是默认的本地模型。
第三步,验证对话上下文。选中一段代码,右键选「Continue → Add to Chat」,然后在对话框里问「这段代码有什么并发问题」。这一步能验证context里的codeprovider 是否生效。如果模型说「我看不到你的代码」,说明 context 配置没加载,检查 YAML 里context段是否顶格写。
实测下来,从保存 config.yaml 到补全生效,通常不需要重启 IDEA,Continue 会热加载。但如果改了apiBase这种连接级参数,建议还是重启一次,避免旧连接缓存。
5. 常见报错排查:401、404、复读、OAuth
这一节按真实报错来对号入座,都是我在配 Continue 时踩过的。
401 Unauthorized:Key 错了、过期了,或者复制时带了首尾空格。去 TaoToken 控制台重新生成一个,粘贴时注意别把换行符带进去。另外确认apiKey字段没有写成api_key,Continue 用的是驼峰。
404 Not Found:九成是apiBase少了/v1。正确写法是https://taotoken.net/api/v1,不是https://taotoken.net/api。如果你用的是其他兼容服务,也要确认对方文档里 Base URL 到底带不带/v1。
模型复读用户输入:这是最迷惑的报错。表现是你问「你是谁」,它回「你是谁」。原因通常是provider写成了anthropic,但apiBase指向的是 OpenAI 格式接口,两边协议对不上。把provider改成openai即可。
local proxy failed:Continue 有时会走本地代理转发,如果代理进程没起来或者端口被占,就会报这个。去Settings → Continue里关掉「Use local proxy」选项,让它直连。
OAuth 相关报错:如果你之前登录过 Continue 的云端账号,它可能会优先走 OAuth 而不是你的 config.yaml。在插件设置里退出登录,或者把name字段改成非默认值,强制它读本地配置。
reading choices 报错:这通常意味着返回体不是标准 OpenAI 格式,可能是apiBase指向了一个返回 HTML 的地址。用curl测一下:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{"model":"claude-sonnet-4-6","messages":[{"role":"user","content":"Reply OK"}]}'如果 curl 能返回 JSON,但 IDEA 里报错,那就是 Continue 配置问题;如果 curl 也报错,那就是 Key 或地址问题。
6. 把 Claude 用顺手的几个配置建议
链路通了之后,真正影响体验的是模型选择和上下文策略。日常写 CRUD、改 bug,用claude-sonnet-4-6就够了,响应快、成本可控。遇到需要读多个文件才能判断的重构,切到claude-opus-4-6,它在长上下文里的推理稳定性更好。
Continue 的context段建议保留codebase和problems,这样你在对话框里问「这个报错怎么修」时,它能自动带上 IDEA 的编译错误信息,不用你手动复制。但terminal上下文要谨慎开,它会把终端输出也塞进去,有时候会干扰模型判断。
如果你想让补全更安静,可以在defaultCompletionOptions里把maxTokens调小到 2048,避免它一次生成一大段用不上的代码。对话场景再单独用大 token 的模型。
最后,config.yaml 改完记得备份一份到本地非 Git 目录。Continue 升级时偶尔会重置配置,有备份能省不少事。整套配下来,你在 IDEA 里就有一个能自由切换 Claude 模型的编程助手了,补全、问答、重构、单测生成都能走同一条链路。