结论先给:VSCode 装完 Cline,点开侧栏的 Cline 图标,进设置(齿轮),API Provider 下拉选 OpenAI Compatible,Base URL 填 https://xyuapi.top/v1,API Key 填小鱼API后台生成的 sk- 令牌,Model ID 手填 claude-sonnet-4-5-thinking,保存。三步就是填地址、填 Key、选模型。下面把每一步的具体值、填错的后果,以及 Plan/Act、自动批准、检查点这些开关怎么设,一次讲完。
打开 VSCode,左侧活动栏点扩展图标(四个方块那个),搜索框输入 Cline,搜索结果里那个带机器人图标的插件点 Install。装完左侧活动栏会多出一个 Cline 图标;没看到就在活动栏空白处右键,勾上 Cline。插件装好会自动在侧栏展开面板,初次打开是一段介绍页,不用管,直接进设置。
侧栏 Cline 图标点开,面板右上角有个齿轮,点进设置。面板顶部就是 API Provider 下拉框,默认停在内置的 Cline 账号或者 Anthropic 那一项。往下拉找到 OpenAI Compatible 选上。只有这一项才会开放 Base URL 输入框,选别的项那个框是灰的或者压根不显示,很多人卡在这一步就是因为没换 Provider 就去找地址框。
选完 Provider,下面出现 Base URL 输入框,填 https://xyuapi.top/v1。备用地址 https://xyuai.cc/v1 指向同一个网关,主地址连不上时换它;备用地址还带 /v1beta/ 路径,支持 Gemini 原生格式,要用 Gemini 的某些原生参数就走这条。地址末尾的 /v1 一个字符都不能省。
Key 在小鱼API后台自己生成,形如 sk- 开头的一长串。粘贴时留神两点:别把前后的空格带进去,别把品牌站的登录密码当成 Key 填进去。这一项填完可以先保存,模型那一步单独再说。
Cline 的模型下拉不是必填项,列表拉不到模型时直接手填 ID 就行。填进去的字符串要和平台模型表一字不差:claude-sonnet-4-5-thinking 就是 claude-sonnet-4-5-thinking,别写成 Claude-Sonnet-4.5,也别自己加 -latest 后缀。大小写和连字符写错,报的就是 model not found 或者 400。
| 字段 | 填什么 | 填错的后果 |
|---|---|---|
| API Provider | OpenAI Compatible | 选别的项,Base URL 框不出现 |
| Base URL | https://xyuapi.top/v1 | 少了 /v1 直接 404 |
| API Key | 后台生成的 sk- 令牌 | 带空格或者填错 → 401 |
| Model ID | 手填,与模型表一字不差 | 大小写错 → model not found |
| Context Window | claude 系列 200000,gemini 系列 1000000 | 填太小会提前压缩上下文 |
Cline 面板里有一项 Context Window,用来告诉插件这个模型能装多少上下文。claude- 系列的模型按 200000 填,gemini- 系列按 1000000 填。填太小,Cline 会很早就触发上下文压缩,把它判断为不重要的历史丢掉,表现是聊着聊着它忘了你前面改过哪个文件;填太大,每次请求塞进去的历史更多,长上下文会消耗掉更多额度,单次请求的开销跟着涨。
Max Output Tokens 管的是模型一次回答、一次写文件最多吐多少 token。填小了最典型的症状是代码写到一半就停住,或者 diff 只出一半,你还以为是自己断网了。建议 8192 起步,做跨文件重构可以调到 16384 甚至 32000。这个值不是越大约好,有些模型的输出上限本身就没那么大,填超了请求会直接报错。
别等 Cline 弹错才去排查。先在终端跑一条 curl,确认地址、Key、模型名三样都对:
curl https://xyuapi.top/v1/chat/completions \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v3.2-thinking","messages":[{"role":"user","content":"说一句你好"}],"max_tokens":64}'
返回里能看到 choices 数组和一段文字,说明链路是通的,剩下的问题都在插件配置里。返回 401 就是 Key 的事,404 就是地址的事,这一条命令能帮你把排查范围砍掉一半。
Cline 发出去的请求体就是这个结构,看一眼有助于对着报错找原因:
{
"model": "deepseek-v3.2-thinking",
"messages": [
{ "role": "system", "content": "你是一个耐心的编程助手" },
{ "role": "user", "content": "把这段 python 改成异步写法" }
],
"temperature": 0.2,
"max_tokens": 8192,
"stream": true
}
model 字段就是你填进 Cline 的 Model ID,stream 为 true 时响应是流式的,Cline 一边收一边渲染,看起来才像在打字。
choices[0].message.content 是正文。finish_reason 值得多看一眼,出现 length 就说明输出被 max_tokens 截断了,这是把 Max Output Tokens 调大的信号。usage 里有本次消耗的 token 数,长上下文的请求涨得快,可以拿来核对每天的成本。
Cline 输入框上方有模式切换,Plan 和 Act。Plan 模式下它只读文件、只出方案,不写文件也不执行命令。对不熟的仓库建议先用 Plan,让它把项目结构摸清、给出改动清单,你看完觉得靠谱再切过去。反过来,陌生仓库直接上 Act 让它自由发挥,很容易改出一堆你不想要的东西。
Act 模式会实际写文件、跑命令。它在动手前会给出 diff 预览,你点 Approve 才落盘。关键习惯是一步一步批,不要一路 Approve 到底:它一次改三个文件的时候,第二个文件改歪了你根本没注意,等跑起来才发现问题就晚了。
建议分。走的是 OpenAI Compatible 接口,可以存两套配置:Plan 阶段用 deepseek-v3.2-thinking(0.049 元/次)这类思考型模型做方案推演,Act 阶段用 claude-sonnet-4-5-thinking(0.09 元/次)真正改码。两套配置换起来比每次改 Model ID 快得多。
设置里有 Auto-approve 一组开关,分三类:读文件、改文件、执行命令。读文件放行风险低,它只是看看内容;改文件放行意味着它不再问你,直接写进磁盘;执行命令放行风险最高,装依赖、跑脚本、删文件都算在内。
git checkout . 能回退npm test、pytest 这种确定安全的命令危险不在于模型故意乱来,而在于它理解错了你的意图,然后带着「我理解对了」的信心连续执行五步。没有 git 兜底、又把三个开关全打开,一次误删就得靠备份来救。稳妥的做法是先提交代码,再开自动批准。
| 开关 | 风险 | 建议 |
|---|---|---|
| 读文件 | 低,只读取内容 | 常开 |
| 改文件 | 中,直接覆盖磁盘文件 | 仅在有 git 提交时开 |
| 执行命令 | 高,可装包、跑脚本、删文件 | 默认关,要开就加白名单 |
Cline 在任务开始前会打一个 Checkpoint,改坏了可以直接回滚到某个检查点,不用完全依赖 git。这个功能对刚上手的人很实用。它有自己的存储开销,长期不清理会占磁盘;另外它管的是 Cline 自己改过的东西,你在终端手动删掉的文件它救不回来。
在项目根目录建一个 .clinerules 文件,把项目的规矩写进去,Cline 每次会话都会读:
- 只用 TypeScript,不要写 any
- 组件放 src/components/,一个文件一个组件
- 提交前必须跑 npm run lint
- 不要修改 server/database/ 下的文件
这比每次在对话框里重复交代省事得多,也能拦住它按自己的习惯重构你的代码。
对话变长之后 Cline 会做上下文压缩,把前面的历史总结成一段。压缩完它可能忘掉细节,所以重要约束要写进 .clinerules,那部分不会被压掉。看到它突然忘了之前改过什么,通常就是压缩刚发生,或者 Context Window 填小了。
Cline 支持直接粘贴图片,界面截图、报错截图、设计稿都能丢进去让它照着改。抓前端报错时,一张截图比贴一大段日志快得多。MCP 工具能让它接数据库、浏览器这类外部服务,接之前先确认这个 MCP 的权限范围,别把能写线上库的工具随手挂上。
| 任务 | 建议模型 | 按次价格 |
|---|---|---|
| 读代码、写注释、补文档 | gemini-2.5-pro | 0.031 元/次 |
| 常规改码、跨文件重构 | claude-sonnet-4-5-thinking | 0.09 元/次 |
| 难 bug、性能与竞态问题 | claude-opus-4-5-thinking | 0.12 元/次 |
| 方案推演、长链条推理 | deepseek-v3.2-thinking | 0.049 元/次 |
| 快速问答、格式转换 | grok-4.1 | 0.05 元/次 |
平台按次计费,五个模型的单价一目了然:gemini-2.5-pro 0.031 元/次、deepseek-v3.2-thinking 0.049 元/次、grok-4.1 0.05 元/次、claude-sonnet-4-5-thinking 0.09 元/次、claude-opus-4-5-thinking 0.12 元/次。别拿 claude-opus-4-5-thinking 去干读代码的活,单次贵出近 4 倍,一天下来差得很明显。
算法就一句:次数乘单价,再按任务构成加权。假设一天 100 次调用,60 次读代码和写注释走 gemini-2.5-pro,30 次跨文件重构走 claude-sonnet-4-5-thinking,10 次难 bug 走 claude-opus-4-5-thinking:
合计 5.76 元。如果 100 次全挂 claude-opus-4-5-thinking,就是 12 元,两倍多。分工不只是为了控制成本,也是让合适的模型干合适的活,读代码这种活本来就不需要重型模型。
| 报错 | 真正原因 | 怎么修 |
|---|---|---|
| 401 Unauthorized | Key 错、带空格、没带 sk- 前缀 | 重新复制令牌,粘贴后检查首尾 |
| 403 Forbidden | Key 被停用,或者访问了没有权限的模型 | 去后台看令牌状态与可用模型 |
| 404 Not Found | Base URL 少了 /v1 | 改成 https://xyuapi.top/v1 |
| 429 Too Many Requests | 短时间并发太高 | 降并发,等几十秒再试 |
model not found 或者 400 基本都出在 Model ID:大小写不对、连字符写成下划线、自己加了 -latest 后缀。请求超时多数是客户端在走系统代理,代理链路连不到网关,建议在 Cline 或 VSCode 的代理设置里选「不使用代理」,改成直连再试。公司网络强制走代理的,就把 xyuapi.top 加进直连白名单。
https://xyuapi.top/v1,末尾没有多余的斜杠sk- 开头的令牌,前后没有空格.clinerules 里写好了项目的硬性规矩这八条对完,Cline 基本就能稳定干活了。真出问题,回到那条 curl,它能把问题锁死在地址、Key、模型名三者之一,省下大量来回试的时间。