Zed 编辑器接入 Claude 中转 API:AI 助手配置

KingFlow · 国内直连 AI API 中转

KingFlow

上个月把主力编辑器换成了 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_urlhttps://www.kingflow.ai/v1(注意带 /v1,走的是 OpenAI 兼容协议);available_models 里的 name 填在售模型名,旗舰用 claude-opus-4-8,均衡用 claude-sonnet-4-6assistant.default_model 指定默认用哪个。

API Key 不建议直接写进 JSON。Zed 有两种更稳的方式:一是在 Assistant 面板点开 provider 设置,会弹出输入框让你粘贴 Key;二是走环境变量,启动 Zed 前 export 一下:

export OPENAI_API_KEY="你在KingFlow后台生成的Key"

Key 在 KingFlow 后台创建,新注册一般会送一点额度,可以先测通了再考虑充值,人民币小额就能充,不用一上来押一大笔。

配完保存,回到 Assistant 面板(右侧栏那个对话图标),右上角模型选择器里应该就能看到 Claude Opus 4.8Claude 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-8claude-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

选中转这段试过好几家,说几个让我留下来的实际理由:

六、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 面板里对话经常超时是什么原因? 先区分是网络还是模型。长上下文和大重构本身首字会慢一点,属正常;如果连简单对话都频繁超时,多半是网络抖动或端点选得不对——国内直连的中转正常首字延迟在几秒内,如果动辄几十秒,检查一下是不是把请求绕到了远端节点或者还挂着代理。