用 VS Code 和 Lemonade 轻松搭建本地 Copilot
不久前,我写过一篇指南,讲如何在 Visual Studio Code 里用本地模型跑 GitHub Copilot。那之后,Copilot 订阅贵了不少,本地模型强了很多,搭建本地 Copilot 也变得容易多了。看来是时候更新一下指南了,咱们开始吧。
你需要准备什么
一台比较新的电脑。如果是 PC,至少 16GB 内存和 12GB 显存;如果是 Mac,至少 16GB 内存。
一个操作系统:macOS、Windows,或者基本上任何 Linux 发行版。
Visual Studio Code 版本高于 1.122。
足够的带宽,或者足够的耐心——因为要下载一个 7GB 的模型。
你不需要什么
- GitHub Copilot 订阅
- GitHub 账号
- 一张 3000 美元的显卡(当然,有的话也不碍事)
安装 Lemonade
我们需要一个服务器来托管本地模型。Lemonade 提供了跨平台的安装方式,你可以用自己喜欢的包管理器,也可以从它的安装页面下载安装包。我今天用的是 macOS,所以直接:
brew install --cask lemonade-server
安装 Lemonade 服务器。
服务器装好之后,就可以加载模型了。我选了 IBM 的 Granite 4 tiny。选它倒不是因为它最聪明,而是因为它在我们最低配置要求下性能可以接受,即使开 128k 上下文也没问题,而且支持工具调用。如果你硬件更强,可选的好模型多得多,不过咱们先从确定能跑的方案开始。
lemonade pull unsloth/granite-4.0-h-tiny-GGUF:Q8_0
拉取 Granite 模型。
模型大约 7GB,下载得等一会儿。拉取成功后就可以加载了:
lemonade load granite-4.0-h-tiny-GGUF-Q8_0 --ctx-size 131072
加载 Granite 模型。
现在本地模型已经跑起来了,接下来把它接进 VS Code。
配置 VS Code
从 1.121 版本开始,VS Code 就支持为智能体和对话补全使用自定义端点(Custom Endpoint)提供方了。到了 1.122 版本,这个功能不再需要 Copilot 许可证或 GitHub 登录。
我们先在 VS Code 设置里搜索并选择“管理语言模型”(Manage Language Models)。模型列表弹出后,点击“+ 添加模型”(+ Add Models),就能看到一个方便的“自定义端点”选项。
自定义端点
选中这个选项后,它会要求填一个名称,我们这组就叫 Lemonade;API Key 留空(因为 Lemonade 里还没设置密钥),API Type 选 Responses API。
接着 VS Code 会打开 chatLanguageModels.json,我们在里面填上模型 id granite-4.0-h-tiny-GGUF-Q8_0、希望显示的名字 granite,以及 Lemonade 的 API 地址 http://localhost:13305/v1/responses。你还能看到我把 toolCalling 设成了 true,这样模型就能调用工具;vision 设为 false,因为 Granite 不支持图像输入。
{
"name": "Lemonade",
"vendor": "customendpoint",
"apiType": "responses",
"models": [
{
"id": "granite-4.0-h-tiny-GGUF-Q8_0",
"name": "granite",
"url": "http://localhost:13305/v1/responses",
"toolCalling": true,
"vision": false,
"maxInputTokens": 128000,
"maxOutputTokens": 16000
}
]
}
这份 chatLanguageModels.json 保存之后,模型就会出现在 Copilot 聊天里。到这一步,我们就可以向完全本地运行的 Copilot 打个招呼了 👋
Hello Granite
接下来做什么
下一步怎么走?你很快会发现,Granite 在扮演编码 Agent/助手这个角色时能力相当有限,但这并不代表它毫无用处。可以让它在后台写写单元测试、总结代码,把它当成一个实习生助理——当然,别太信它写的代码。
Granite 玩过之后,建议你继续看看自己的硬件还能跑哪些模型、跑起来有多快。这个话题非常大,我只按顺序推荐几个值得尝试的:
- Qwen 3.5 9B
- Qwen 3.5 35B MTP
- Qwen 3.8 27B
祝顺利。如果你有别的模型或配置想推荐,欢迎留言。
故障排除
缺少 Agent 功能
如果你能正常和模型聊天,但看不到 Agent 相关能力(比如让 Agent 直接帮你改代码),先确认 chat.agent.enabled 已经打开。
没有 utility 模型
如果你遇到这个错误:
No utility model is configured for 'copilot-utility-small' while the selected main agent model is BYOK.
原因是 Copilot 的这个已知问题。简单说,在 BYOK(Bring Your Own Key,自带密钥接入第三方模型)模式下,Copilot 不知道该用哪个模型当 Utility Model(负责小任务的辅助模型)。在设置里给它指定一个值就能解决,像这样:
No utility model is confiugred for 'copilot-utility-small' while the selected main agent model is BYOK