1. 为什么要在 Void 里接自定义 LLM
Void 是一款开源 AI 代码编辑器,基于 VS Code 派生,保留了原有主题、快捷键和插件生态,同时把 AI 能力做成了可替换的通道。它和 Cursor 最大的区别在于:Cursor 把模型和额度绑死在自家订阅里,而 Void 允许你接入任意 OpenAI 兼容的模型提供商,包括本地模型和第三方 API 通道。对经常写代码、又想把模型选择权握在自己手里的人来说,这一点很关键。
Void 的日常使用主要围绕三个动作:按 Tab 触发补全、按 Ctrl+K 对选中代码做内联编辑、按 Ctrl+L 带着文件上下文提问。这三个动作每次都会真实消耗 Token,所以模型通道的稳定性和计费透明度直接决定体验。我试过把默认通道换成统一 API 入口后,配置只改两个字段,补全和内联编辑就能正常跑起来。
这篇就按「Void 自定义 LLM 接入,Base URL 填 TaoToken 的 API 地址」这个场景,把从拿 Key 到验证请求的完整步骤写清楚。适合已经在用 Void、想换模型通道的开发者,也适合刚装好 Void 还没配 AI 的新手。全程只需要改 Base URL 和 API Key,不涉及编辑器本身的替换。
2. 前置准备:TaoToken 的 Key 与 Base URL
TaoToken 在这里的角色是统一 API 兼容通道,它只提供两样东西:一个 API Key 和一个 Base URL。它不替代 Void 的编辑器功能,补全、内联编辑、上下文查询仍然由 Void 自己触发,TaoToken 只负责把请求转发到对应模型并返回结果。理解这一点很重要,否则容易误以为装了通道就不用配编辑器。
第一步是拿到 Key。打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册账号,进入控制台后创建 API Key。创建时建议给 Key 起一个能识别的名字,比如void-editor,方便以后在多个工具之间区分额度消耗。Key 只在创建时完整显示一次,复制后先存到安全的地方。
第二步是确认 Base URL。Void 的自定义提供商走 OpenAI 兼容协议,Base URL 填https://taotoken.net/api。这里有两个容易踩的坑:不要在后面加/v1,也不要带任何 UTM 参数。Void 会自己在后面拼接具体路径,多写一段就会导致 404。Key 和 Base URL 都准备好后,就可以回到 Void 里配置了。
注意:API Key 属于敏感凭证,不要写进会提交到 Git 的配置文件,也不要在截图里暴露完整 Key。
3. 在 Void 里配置 OpenAI 兼容提供商
打开 Void,进入设置里的模型配置区域。不同版本的入口文案略有差异,通常在Settings下找Models或AI Providers,然后选择添加自定义提供商,类型选 OpenAI 兼容。下面按字段说明怎么填。
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| Provider 类型 | OpenAI Compatible | 走标准兼容协议 |
| Base URL | https://taotoken.net/api | 不加/v1,不带 UTM |
| API Key | 控制台创建的 Key | 粘贴完整字符串 |
| 模型名称 | 通道支持的模型 ID | 补全/编辑/查询可各选 |
| 补全模型 | 同一个模型 | Tab 触发时使用 |
| 内联编辑模型 | 同一个模型 | Ctrl+K 时使用 |
| 上下文查询模型 | 同一个模型 | Ctrl+L 时使用 |
配置时把补全、内联编辑、上下文查询三个用途都指向同一个模型,这样行为一致,排查问题也简单。如果通道支持多个模型,也可以按用途分开选,比如补全用轻量模型、查询用能力更强的模型,但初次接入建议先统一,确认通道通了再细分。
填完后保存配置。Void 不会在保存时立刻发请求,所以这里看不到成功提示是正常的,真正的验证在下一步。如果保存时报字段校验错误,优先检查 Base URL 是否多了/v1或尾部斜杠。
{ "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "你的_API_Key", "models": { "completion": "你的模型ID", "inlineEdit": "你的模型ID", "chat": "你的模型ID" } }上面这段是配置结构的示意,实际以 Void 界面字段为准。核心就是baseUrl和apiKey两个值,其余是用途映射。
4. 验证请求:触发一次 Tab 补全和 Ctrl+L
配置保存后,打开一个代码文件,把光标放到函数体里,正常敲几个字符,等 Void 给出灰色补全建议,然后按 Tab 接受。如果建议正常出现并能插入,说明补全通道已经通了。这一步会真实消耗 Token,属于预期行为。
接着验证上下文查询。按 Ctrl+L 打开提问框,输入一个和当前文件相关的问题,比如「这个函数做了什么」,回车发送。正常情况下会返回一段基于文件上下文的回答。如果返回内容为空或报错,说明请求没有正确到达通道,需要回到排查环节。
再验证内联编辑。选中一段代码,按 Ctrl+K,输入修改指令,比如「把这段改成使用 const」,确认后看代码是否被替换。三个动作都通过,就说明从 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 拿到的 Key 已经把 Void 的自定义 LLM 通道配通了。
# 想单独确认通道是否可达,可以用 curl 直接打一次 curl https://taotoken.net/api/chat/completions \ -H "Authorization: Bearer 你的_API_Key" \ -H "Content-Type: application/json" \ -d '{ "model": "你的模型ID", "messages": [{"role": "user", "content": "ping"}] }'这条命令返回正常 JSON 就说明 Key 和 Base URL 本身没问题,问题只可能在 Void 的字段填写上。注意命令里的路径是通道侧的完整路径,和 Void 里填的 Base URL 不是一回事,别混淆。
5. 本篇常见错误排查
接入过程中最容易遇到的是 404。绝大多数情况是 Base URL 写成了https://taotoken.net/api/v1或者带了 UTM 参数。Void 会自己拼接路径,你只需要填到/api为止。把多余部分删掉再保存,重新触发一次补全即可。
第二类是 401 未授权。先确认 Key 有没有复制完整,前后有没有多余空格。如果 Key 是在别的工具里用过的,确认它没有被删除或禁用。还有一种情况是 Key 创建后没有保存,只显示了掩码,这种需要重新创建一个。
第三类是补全没反应但 Ctrl+L 正常。这通常不是通道问题,而是补全功能本身没开启,或者当前文件类型不在补全范围内。检查 Void 的补全开关,换一个常见语言的文件再试。如果 Ctrl+L 也失败,才回到通道层面排查。
第四类是返回内容被截断或超时。这多半和模型选择或网络状况有关,可以换一个模型 ID 再试,或者缩短提问内容。排查时优先用上面的 curl 命令确认通道侧是否正常,把编辑器问题和通道问题分开定位,效率会高很多。
提示:每次改完配置记得重新触发一次请求,Void 不会自动重试旧配置。
6. 后续怎么用这套通道
通道配通之后,Void 的三个核心动作就都能走同一个模型入口了。日常写代码时 Tab 补全负责顺手补全,Ctrl+K 负责局部改写,Ctrl+L 负责带着文件上下文问答。因为 Base URL 和 Key 都在你自己手里,换模型只需要改模型 ID,不用重新走一遍注册流程。
如果后面要长期跑编码任务或者接 Agent 类工作流,可以到 Coding Plan 页面看看适合的额度方案;想先验证模型效果,直接进模型对话试几次最直观;需要管理多个 Key 或查看用量,去 API Keys 控制台操作;接入细节有疑问就翻接入文档。这几个入口按需取用即可,不用一次全打开。
最后留一个实用习惯:给 Void 单独建一个 Key,和别的工具分开。这样在控制台看用量时,能一眼看出编辑器消耗了多少,排查异常也更快。配置本身只有两个字段,真正花时间的是确认通道通不通,而这一步用一次 Tab 补全就能验证。