
通过网关将 Zed 连接到 Claude
Zed 速度很快,其助手也很实用,但配置自定义 Claude 端点的位置并不是大多数人首先会想到的地方。原生 Anthropic 提供商不支持覆盖基础 URL,因此连接网关的简便方式是使用 Zed 的 openai_compatible 配置块。
为什么不使用 Anthropic 提供商
Zed 内置原生 Anthropic 提供商,直觉上会想将它指向网关。问题在于,这个提供商没有 api_url 设置,因此没有受支持的字段可以将请求从默认 Anthropic 主机重定向到其他地址。
正是这一限制让许多人卡在这里。与其尝试绕过它,不如通过通用的 openai_compatible 机制访问 Claude。该机制提供基础 URL 设置,正是为第三方端点设计的。
可以将原生提供商理解为固定连接到一个目标,而 openai_compatible 提供商则可以配置。对于多模型网关,可配置的方式本来就是合适的选择,因为同一个配置块可以通过单个 api_url 接入 Claude 以及网关提供的其他模型。这样,编辑器的所有模型配置都集中在同一处,而不必分散到规则不同的两套提供商机制中。这个选择决定了后续的配置方式,因此在编辑任何内容之前,先弄清楚它很有必要。确定 openai_compatible 配置块是受支持的接入方式后,剩下的就是填写字段。
添加 openai_compatible 配置块
在 settings.json 的 language_models.openai_compatible 下添加一个具名提供商。将其 api_url 设置为网关地址,并在末尾加上 /v1;Zed 会在该地址下访问 /chat/completions,因此响应请求的是网关的 OpenAI 兼容接口。
名称可以任意选择,它会成为 Zed 模型菜单中的标签。一个配置块可以提供多个 Claude 模型,每个模型都在下一步中声明。
这里的 /v1 后缀至关重要:Zed 会直接在你提供的 api_url 下构建聊天补全路径,因此缺少 /v1 会将请求发送到错误的位置,而末尾的斜杠可能导致路径重复。将其准确设置为主机地址加 /v1,路由就能正确工作。编辑后快速重新加载设置,可以确认 Zed 已正常解析该配置块。如果提供商没有出现,首先应检查配置块中是否存在 JSON 语法错误。
声明 available_models
Zed 不会自动发现自定义端点上的模型,因此需要在 available_models 中手动列出。每个条目都需要一个与网关 ID 匹配的 name、用于菜单显示的 display_name,以及根据模型设置的 max_tokens 值。
使用 claude-sonnet-4-5 处理日常辅助任务,并将 claude-opus-4-8 添加为第二个条目,用于最困难的任务。由于模型由你明确列出,菜单只会显示你指定的模型,不会出现其他模型。
name 字段必须与网关的 ID 逐字符一致,而 display_name 仅用于显示,可以设置为你希望在菜单中看到的名称。模型出现在菜单中却在使用时报错,通常是因为 name 填写错误,因此应直接从网关复制 ID,而不要凭记忆输入。只列出实际使用的模型,可以让菜单保持简洁,便于日常选择。以后添加模型只需编辑一行,因此无需一开始就声明所有模型。
密钥存放在哪里
API 密钥不应放在 settings.json 中。Zed 会将其存储在操作系统钥匙串中,或从以提供商命名的环境变量(例如 AIPRIME_API_KEY)中读取,从而避免将密钥放入同步配置。
保存后,打开助手,从菜单中选择你的提供商,并在提示时输入密钥。此后,Zed 会使用钥匙串中的密钥进行身份验证,而设置文件中不会包含凭据。
如果你在多台机器之间同步 Zed 设置,或将其提交到 dotfiles 仓库,这种分离方式非常实用:配置不包含密钥,因此可以自由同步,每台机器则通过钥匙串或环境变量提供自己的密钥。相比将密钥直接写入配置文件的工具,这种方式更清晰。这也是可以安全地与同事共享 Zed 配置的原因:他们使用自己的密钥,你的密钥不会随配置一起传递。将设置提交到 dotfiles 仓库时也是如此。
通过 ACP 使用原生方式
如果你明确需要原生 Anthropic 行为,而不是 OpenAI 兼容接口,Zed 支持通过 Agent Client Protocol 使用 Claude Code。你运行 Claude Code 作为智能体,Zed 则通过 ACP 与它通信。
在这种配置中,Claude Code 自行使用指向网关的 ANTHROPIC_BASE_URL,因此 Zed 无需配置自己的 Anthropic api_url。这是在编辑器中获得真正原生 Messages 行为的最简便方式。
需要权衡的是,ACP 提供的是 Claude Code 完整的智能体执行循环,而不是 Zed 较轻量的内置助手,因此功能更强,但使用起来也更重。需要快速的内联帮助时,选择 openai_compatible 方式;希望完整智能体在编辑器内执行多步骤编辑时,选择 ACP 方式。大多数人会先使用较轻量的方式,等到需要在编辑器中使用完整智能体时才采用 ACP。你可以同时保留这两种方式,并根据任务选择使用。
// Zed settings.json
{
"language_models": {
"openai_compatible": {
"aiprime": {
"api_url": "https://aiprimetech.io/v1",
"available_models": [
{ "name": "claude-sonnet-4-5",
"display_name": "Claude Sonnet",
"max_tokens": 200000 }
]
}
}
}
}
// Key goes in the keychain / AIPRIME_API_KEY env var, NOT this file.常见问题
为什么无法在 Zed 中设置 Claude 的基础 URL?
api_url 应该放在哪里?
API 密钥应该放在哪里?
如何获得原生 Anthropic 行为?
获取 API 密钥,无需 Anthropic 账户,也无需加入候补名单。
获取你的 API 密钥AI Prime Tech 是独立的 API 网关,与 Anthropic 无关联,未获得其背书,也不是其经销商。Claude 及相关模型名称是其各自所有者的商标。