Zed 接入中转站:在 Agent 设置里添加 OpenAI 或 Anthropic 兼容的供应商
按 Zed 官方文档整理:在 Agent 设置里点 Add Provider,或者在 settings.json 里加一段配置,就能让 Zed 的智能体走中转站。讲清 OpenAI 兼容和 Anthropic 兼容两种写法、key 存在哪里、模型能力怎么声明,以及哪些功能不走这条线路。
本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。
Zed 是开源的高性能代码编辑器,内置了智能体。它的官方文档专门讲了怎么接入“有自定义地址、模型名和 API key”的服务,分 OpenAI 兼容和 Anthropic 兼容两种。接中转站用的就是这个。
最快的办法是在界面里加:
- 打开命令面板,运行
agent: open settings; - 在 LLM Providers 一节点 Add Provider;
- 填供应商名称、API URL、模型名和上下文长度,再填 API key。
先说清楚这条线路管哪些功能。官方文档写明,这里配置的模型用于 Zed 自己的 AI 功能:Zed Agent、行内助手、生成提交说明、对话摘要等。下面两类不走这里:
- 补全(Edit Prediction):有单独的一套设置。
- 外部智能体:在 Zed 里运行的 Claude Code、Codex 等,模型访问由它们自己管,要在各自的配置里接中转站,见Claude Code 接入中转站和Codex 接入中转站。
如果你还没弄清中转站是什么、有哪些风险,先读中转站是什么和用中转站有什么风险;选站可以看中转站排行榜。
开始之前:从中转站拿到三样东西
| 需要什么 | 说明 |
|---|---|
| 接口地址 | OpenAI 兼容接口和 Anthropic 原生接口的地址通常不同 |
| 模型名 | 中转站模型页上写的名字,一字不差 |
| API key | 在中转站的控制台创建,多数站只显示一次 |
做法一:在界面里添加
运行 agent: open settings 打开 Agent 设置,在 LLM Providers 一节找到 Add Provider。
- 接 OpenAI 兼容的接口:直接填供应商名称、API URL、模型名和上下文长度。
- 接 Anthropic 兼容的接口:点 Add Provider 后选 Anthropic,再填同样的几项。
API key 也在这个界面里填。官方文档说明,通过 Zed 保存的 key 存在系统的钥匙串里,不会写进 settings.json。
做法二:写进 settings.json
想一次配好多个模型,或者要精确控制模型的能力,直接改设置文件。
OpenAI 兼容
{
"language_models": {
"openai_compatible": {
"my-relay": {
"api_url": "https://你的中转站地址/v1",
"available_models": [
{
"name": "模型名",
"display_name": "显示用的名字",
"max_tokens": 128000
}
]
}
}
}
}
my-relay 是供应商的名字,自己起。max_tokens 在这里指的是模型的上下文长度。例子里的数字只是示意,换成你用的模型的实际值。
Anthropic 兼容
官方文档说明,服务实现了 Anthropic 的 Messages 接口(/v1/messages)时用这种写法:
{
"language_models": {
"anthropic_compatible": {
"my-relay": {
"api_url": "https://你的中转站地址",
"available_models": [
{
"name": "模型名",
"display_name": "显示用的名字",
"max_tokens": 200000,
"max_output_tokens": 32000,
"capabilities": {
"tools": true,
"images": false,
"prompt_caching": false
}
}
]
}
}
}
}
key 不要写进设置文件
官方文档明确说:不要把 API key 放进 settings.json。 两种给 key 的办法:
- 在 Agent 设置的界面里填,存进系统钥匙串;
- 设环境变量。变量名由供应商的名字生成:转成大写、用下划线连接,再加
_API_KEY。上面的例子里供应商叫my-relay,变量名就是MY_RELAY_API_KEY。
两处都有时,环境变量优先。想停用环境变量里的 key,要取消这个变量并重启 Zed。
模型能力要自己声明
自定义的模型,Zed 不知道它能做什么,按一组默认值处理。和实际不符时要在 capabilities 里改。
OpenAI 兼容的默认值(常用的几项):
| 能力 | 默认 | 说明 |
|---|---|---|
tools |
开 | 工具调用 |
images |
关 | 模型支持看图的话要手动打开 |
parallel_tool_calls |
关 | 并行调用工具 |
chat_completions |
开 | 用 Chat Completions 接口。模型只能走 Responses 接口时设成 false,Zed 会改用 Responses |
max_tokens_parameter |
关 | 接口要求用 max_tokens 而不是 max_completion_tokens 传输出上限时打开 |
Anthropic 兼容的默认值:
| 能力 | 默认 | 说明 |
|---|---|---|
tools |
开 | 工具调用 |
images |
关 | 模型支持看图的话要手动打开 |
prompt_caching |
关 | 打开后 Zed 会发送缓存断点。官方的说明是:供应商拒绝带这些字段的请求时,保持关闭 |
两点实用的提醒:
- 图片默认是关的。 想在 Zed 里贴截图给模型看,要把
images设成true。 - 提示词缓存默认也是关的。 中转站支持 Claude 的缓存时,打开
prompt_caching能明显省钱;不确定就先关着,打开后请求被拒再关回去。
推理模型还可以设 reasoning_effort,可选 "none"、"minimal"、"low"、"medium"、"high"、"xhigh"、"max",填你的中转站这个模型支持的档位。
验证
配好之后打开 Agent 面板,在模型选择器里选你加的模型,让它做一件要读代码的事。能读到文件并回答,说明模型和工具调用都是通的。
常见问题
| 现象 | 检查什么 |
|---|---|
| 模型选择器里没有新加的模型 | JSON 有没有写错;供应商下面的 available_models 有没有写模型 |
| 提示没有 key 或认证失败 | key 是否在界面里填了;用环境变量的话,变量名是否按规则生成,有没有重启 Zed |
返回 404 |
api_url 和写法是否对应。OpenAI 兼容的地址通常带 /v1;Anthropic 兼容的地址以中转站的文档为准 |
| 贴图片模型看不到 | capabilities.images 是否打开 |
| 请求被拒,提示不认识某些字段 | 试着关掉 prompt_caching;或者打开 max_tokens_parameter |
| 推理模型用不了 | 这个模型可能只能走 Responses 接口,把 chat_completions 设成 false |
| 配了中转站,补全还是原来的 | 补全有单独的设置,不走这里 |
| 在 Zed 里用 Claude Code,没走中转站 | 外部智能体的模型访问由它自己管,要在 Claude Code 里配置 |
接上之后
- 验证拿到的是不是真模型。 能回答不等于给你的是它声称的模型。用同一把 key 到 Veridrop 检测一次,背景见中转站怎么掺假。
- 你的代码会经过中转站。 涉及公司代码的项目,先想清楚能不能走第三方,见用中转站有什么风险。
- 其他编辑器里的接法:Cline 接入中转站、VS Code 的 Copilot 对话接入中转站。