用 VS Code 和 Lemonade 轻松搭建本地 Copilot

/admcpr 2026-10-26T15:55:10.596116

不久前,我写过一篇指南,讲如何在 Visual Studio Code 里用本地模型跑 GitHub Copilot。那之后,Copilot 订阅贵了不少,本地模型强了很多,搭建本地 Copilot 也变得容易多了。看来是时候更新一下指南了,咱们开始吧。

你需要准备什么

一台比较新的电脑。如果是 PC,至少 16GB 内存和 12GB 显存;如果是 Mac,至少 16GB 内存。

一个操作系统:macOS、Windows,或者基本上任何 Linux 发行版。

Visual Studio Code 版本高于 1.122。

足够的带宽,或者足够的耐心——因为要下载一个 7GB 的模型。

你不需要什么

安装 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 玩过之后,建议你继续看看自己的硬件还能跑哪些模型、跑起来有多快。这个话题非常大,我只按顺序推荐几个值得尝试的:

祝顺利。如果你有别的模型或配置想推荐,欢迎留言。

故障排除

缺少 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

查看原文