Zed 编辑器接入 Claude 中转 API:AI 助手配置
上个月把主力编辑器换成了 Zed,最直接的感受就是快——冷启动几乎没有等待,滚动大文件也不掉帧。用顺手之后自然就想把它内置的 AI 助手也接上 Claude,可官方直连那套流程折腾下来发现坑不少,最后还是换成了中转。这篇就把从零配置到多模型切换的完整过程写清楚,照着抄基本能一次通。
一、Zed 是什么,它的 AI 功能为什么想配中转
Zed 是一款用 Rust 写的开源代码编辑器,主打的就是速度和协作。它把编辑器该有的东西——多光标、语言服务器、Git 集成、实时协同——都做进了原生实现,没有 Electron 那层壳,所以在大项目里的响应比很多同类工具跟手。
真正让人愿意留下来的是它的 AI 能力。Zed 内置了 Assistant 面板,可以在侧边栏跟模型对话、让它读当前文件、生成补丁,还支持行内改写(inline transformation)——选中一段代码直接让模型重写。这套体验想跑得舒服,模型质量是关键,尤其是做大段重构、跨文件推理的时候,弱模型给出的方案经常是似是而非的。
那为什么不直接连官方?我踩过几个点:一是国内网络访问官方接口本身就不稳,不挂代理经常连不上,挂了代理高频长连接又容易被识别,写着写着就 403/429 断掉;二是官方账号的支付和风控对国内用户不太友好,信用卡容易被拒,账号偶尔还会莫名其妙受限。折腾这些的时间还不如写代码。
中转的思路很简单:Zed 的 Assistant 支持 OpenAI 兼容的自定义 provider,那我就把请求指向一个国内能直连、又帮我把模型透传到 Claude 的中转端点。我用的是 KingFlow,它走官方协议转发,国内节点直连,一个 Key 就能调 Claude 全系。下面进入正题。
二、接入配置
Zed 的所有配置都在一个 JSON 文件里,不用点来点去。打开方式:命令面板(Cmd/Ctrl + Shift + P)搜 zed: open settings,或者直接编辑 ~/.config/zed/settings.json。
在 language_models 下面配一个 OpenAI 兼容的 provider,把 api_url 指向中转端点:
{
"language_models": {
"openai": {
"api_url": "https://www.kingflow.ai/v1",
"available_models": [
{
"name": "claude-opus-4-8",
"display_name": "Claude Opus 4.8",
"max_tokens": 200000
},
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000
}
]
}
},
"assistant": {
"default_model": {
"provider": "openai",
"model": "claude-opus-4-8"
},
"version": "2"
}
}
这里的关键就三处:api_url 填 https://www.kingflow.ai/v1(注意带 /v1,走的是 OpenAI 兼容协议);available_models 里的 name 填在售模型名,旗舰用 claude-opus-4-8,均衡用 claude-sonnet-4-6;assistant.default_model 指定默认用哪个。
API Key 不建议直接写进 JSON。Zed 有两种更稳的方式:一是在 Assistant 面板点开 provider 设置,会弹出输入框让你粘贴 Key;二是走环境变量,启动 Zed 前 export 一下:
export OPENAI_API_KEY="你在KingFlow后台生成的Key"
Key 在 KingFlow 后台创建,新注册一般会送一点额度,可以先测通了再考虑充值,人民币小额就能充,不用一上来押一大笔。
配完保存,回到 Assistant 面板(右侧栏那个对话图标),右上角模型选择器里应该就能看到 Claude Opus 4.8 和 Claude Sonnet 4.6 了。随便发一句"帮我总结这个文件的结构"验证一下,能正常流式返回就算通了。
三、常见配置点
provider 选择。Zed 内置了 anthropic、openai、google 等几个 provider,很多人一上来去找 anthropic 那栏,结果发现改不了 base url。这里的正确做法是复用 openai 这个 provider——因为中转端点用的是 OpenAI 兼容协议,只要能自定义 api_url 就行,模型名照样填 Claude 的。别纠结名字叫 openai,它只是个协议壳子。
模型名。name 字段必须和端点支持的在售模型名完全一致,写错一个字符就会返回 model not found。当前用 claude-opus-4-8、claude-sonnet-4-6 这类新名字,别再从老教程里抄那种带长串日期后缀的旧模型名,早就下线了。
超时。大重构或者长上下文对话,首字返回会比闲聊慢一些。如果偶尔遇到超时,先确认是不是网络抖动;正常情况下国内直连的首字延迟通常在几秒内,比自己挂代理连美区节点动辄几十秒要稳得多。max_tokens 按模型上下文能力填,Claude 系列给 200000 是安全的。
行内改写。配好默认模型后,inline transformation(选中代码 + 快捷键)会自动用你设的 default_model,不用单独配。做局部小改写时其实可以临时切到更轻的模型省点开销。
四、多模型切换
中转最爽的一点是一个 Key 管全系模型,切换只改一个字段,不用维护好几套 Key 和端点。
在 available_models 里把想用的都列上,除了两个 Claude,也可以按需加上高频低成本的那款:
"available_models": [
{ "name": "claude-opus-4-8", "display_name": "Opus 4.8 · 重构", "max_tokens": 200000 },
{ "name": "claude-sonnet-4-6", "display_name": "Sonnet 4.6 · 日常", "max_tokens": 200000 },
{ "name": "claude-haiku-4-5", "display_name": "Haiku 4.5 · 高频", "max_tokens": 200000 }
]
之后在 Assistant 面板顶部的模型下拉里随时切。我的习惯是:跨文件大改、要模型真正"想清楚"的时候用 claude-opus-4-8;日常写业务、改 bug 用 claude-sonnet-4-6,速度和质量比较平衡;补注释、生成测试样例、批量小改这种高频低难度的活,切到 claude-haiku-4-5,响应快也更省。
因为同一个端点还能路由到 GPT、DeepSeek、通义等其它系列,真想横向对比某个方案时,加一行模型名就能换一家的模型试,不必重新配 provider。
五、为什么用 KingFlow
选中转这段试过好几家,说几个让我留下来的实际理由:
- 国内直连。这是刚需。KingFlow 用的是国内节点,写代码时那种即打即回的手感全靠它,不用再为 Zed 单独配代理,首字延迟通常控制在几秒内。
- 走官方协议转发,不是逆向反代第三方客户端,Claude 那边更新版本时不容易突然挂掉,稳定性有保障。
- 一个 Key 多模型。前面多模型切换那套之所以能只改一个字段,就是因为一个 Key 覆盖了 Claude 全系加其它厂商模型,省去维护多套凭证的麻烦。
- 用量透明。后台能查调用日志、余额和 token 明细,每一笔花在哪个模型上清清楚楚,月底对账不抓瞎,这点比那些黑箱扣费的小站踏实太多。
- 先测后充。新人有额度可以先跑通再决定,人民币小额充值,不用为了试一下就承担一笔沉没成本。
六、FAQ
Q1:Zed 里明明有 Anthropic provider,为什么不直接用它配中转?
因为 Zed 内置的 Anthropic provider 不给你改 base url,请求还是打向官方。要用中转就复用 openai provider,它允许自定义 api_url,把端点填成 https://www.kingflow.ai/v1 即可,模型名照填 Claude 的。
Q2:返回 model not found 或者 401 怎么排查?
先查 name 字段是不是在售模型名,拼写、大小写都要对;再查 OPENAI_API_KEY 有没有正确注入(环境变量的话确认是在启动 Zed 的那个终端里 export 的);最后确认 api_url 结尾带 /v1,少这一段协议对不上就会报错。
Q3:一个 Key 能同时给 Zed、Cursor、Claude Code 用吗?
可以。中转的 Key 是通用的,Cursor 走 Override Base URL,Claude Code 走 ANTHROPIC_BASE_URL,都指向同一个端点、共用同一个 Key,用量在后台合并统计,不用为每个工具单独申请。
Q4:Assistant 面板里对话经常超时是什么原因? 先区分是网络还是模型。长上下文和大重构本身首字会慢一点,属正常;如果连简单对话都频繁超时,多半是网络抖动或端点选得不对——国内直连的中转正常首字延迟在几秒内,如果动辄几十秒,检查一下是不是把请求绕到了远端节点或者还挂着代理。