Addi — Extend Your VS Code Copilot
为 GitHub Copilot 添加自定义 AI 供应商与模型、快捷构造MCP工具的 VS Code 扩展
目录 Table of Contents
简介 Introduction
Addi 让你在 VS Code 中为 GitHub Copilot 添加自定义 / 第三方 / 自建 AI Provider 与模型,并在 Copilot 原生模型选择器中一键切换。它既是一个模型管理器,也是一个交互式调试 Playground,同时还是一个快捷构造 MCP 工具微服务。
[!Tip]
虽然 vscode 官方有支持自定义模型的计划,但目前仍未开放给大众用户,Addi 作为一个临时解决方案,可以帮助你快速上手并测试各种模型。详见 Bring Your Own Language Model 以及 Use an OpenAI-Compatible Model。
特性 Features
| 类别 |
说明 |
| Provider 管理 |
添加 / 编辑 / 复制 / 删除 / 快速编辑 API Key |
| 模型管理 |
绑定于 Provider 的模型定义与特性标记(视觉 / 工具调用支持等) |
| 智能模型验证 |
自动检测连通性、视觉能力、工具调用支持和 Token 限制 |
| 模型切换 |
在 Copilot 模型选择器中勾选后即可切换自定义模型 |
| 配置导入导出 |
JSON 结构备份 / 迁移到其他机器 |
| 可配置默认参数 |
默认 family / version / token 限制 |
| 排序选项 |
支持按字母、输入/输出 Token 数排序供应商和模型 |
| UI / 树视图 |
直观的 ActivityBar 侧边栏管理界面 |
| 右键上下文操作 |
针对 Provider / Model 的快捷操作 |
| Playground 调试 |
发送消息、调节参数、实时查看日志 |
| SSE 流式输出 |
支持 OpenAI 及兼容端点增量输出 |
| 参数持久化 |
最近一次 Playground 参数自动恢复 |
| 测试覆盖 |
Streaming / 参数裁剪与持久化测试 |
| 日志输出 |
专用 output channel 与可调 Log Level |
快速开始 Quick Start
1. 安装扩展(市场或本地 VSIX)
2. 打开侧边栏 “Addi”
3. 添加 Provider(填写端点与 API Key)
4. 为该 Provider 添加模型(id / token 限制等)
5. 在 Copilot → 模型下拉 → 管理模型 → 勾选你的模型
6. 返回聊天界面,选择并使用它!
安装 Installation
插件市场 Marketplace
搜索 “Addi” 并安装;或命令面板输入:ext install addi。
本地 VSIX
npm install; npm run package
code --install-extension addi.vsix
# 或在 VS Code 文件列表中右键安装
使用概览 Usage Overview
Activity Bar 中的 Addi 图标 → 展开树:
- Provider:可快速添加模型 / 编辑密钥 / 管理模型
- Custom Tools:添加 / 管理 MCP 自定义工具
[!Warning]
完整利用自定义模型的 Edit / Agent 模式可能需要 GitHub Copilot Pro 级别订阅;Free 版本目前测试仅支持用于 Ask 模式使用自定义模型。请确保账户权限满足需求。
供应商与模型管理 Provider & Model Management
添加供应商 Add Provider
- 点击 “Add Provider”
- 填写:名称 / 描述 / 网站 / API Endpoint / API Key / 接口类型(OpenAI 兼容等)
- 保存后出现在列表
添加模型 Add Model
- 选中 Provider → Add Model
- 填写:id / 名称(可选) / maxInputTokens / maxOutputTokens / 视觉支持 / 工具支持
- 保存后挂载在对应 Provider 下
模型验证 Model Verification
在添加或编辑模型时,点击底部的 "Verify & Detect" 按钮可以自动测试:
- 连通性:检查 API Key 和 Endpoint 是否有效
- 视觉能力:自动检测模型是否支持图片输入
- 工具调用:自动检测模型是否支持 Function Calling
- Token 限制:自动探测并填充 Max Input / Output Tokens (使用二分查找与参数估算,不消耗真实 Token)
[!Tip]
如果不确定模型的 Token 限制,可以将 Max Input Tokens 和 Max Output Tokens 留空(或设为?),点击 Verify & Detect 后 Addi 会自动探测并填入建议值。如果检测不准确,请参照官方模型文档手动设置。
所有附属能力(视觉 / 工具调用)也会在验证过程中自动测试并更新勾选(不适配则会自动去除勾选)。
快速编辑 Edit API Key
Provider 节点右侧钥匙图标 → 输入密钥 → 保存。
Addi 内置了一个 Model Context Protocol (MCP) Server,支持通过 YAML 文件定义自定义工具。这意味着你的本地脚本可以被 AI 像原生函数一样调用。
并且为了方便用户理解与编辑,Addi 的自定义工具语法完全兼容 GitHub Actions 的 composite 语法规范,使用优秀的开源本地化 actions 运行项目 nektos/act 作为模板解析引擎。
详细文档与示例:自定义工具指南 (CUSTOM_TOOLS.md)
核心特性
- 多语言支持: 支持 PowerShell, Bash, Python, Node.js 等多种运行时。
- 热重载: 修改 YAML 文件后自动生效,无需重启 VS Code。
- 无缝集成: 兼容 GitHub Actions
composite 语法。
[!Tip]
自定义工具的 YAML 文件支持热重载,修改后会自动生效,无需重启 VS Code 或手动处置 Addi MCP Server 进程。
但因 VS Code 资源按需运行的基本原则,修改 yaml 模板文件后的 Copilot 工具列表将只会在 Chat 触发服务启动时发出 list_tool 并更新 UI 中显示的工具。或您可尝试通过命令面板执行 MCP: List Server 选中并手动启动服务来同步刚增加修改或删除的工具列表。
快速概览
- 创建工具文件:在
.addi/public/ (共享) 或 .addi/private/ (私有) 目录下创建 .yaml 文件。
- 定义工具:
name: 'get-ip'
description: 'Get public IP'
runs:
using: 'composite'
steps:
- run: curl -s http://ip-api.com/json/
shell: bash
- 使用工具:在对话中直接询问 "Check my IP"。
命令 Commands
| Command ID |
标题 |
用途 |
addi.manage |
Management |
打开管理视图 |
addi.exportConfig |
Export Configuration |
导出配置 (支持加密) |
addi.importConfig |
Import Configuration |
导入配置 (支持解密) |
addi.showLogs |
Show Logs |
打开 Addi 日志输出 |
注意: 导出配置时,如果不设置密码,导出的 JSON 文件将不包含任何 API Key(为了安全)。如果需要备份或迁移 API Key,请务必设置导出密码,此时文件将以加密格式保存。
Show Logs 将在 VS Code 的 输出 (Output) 面板中定位 "Addi" 通道,可随时查看调试信息。日志内容会自动脱敏,并额外记录模型解析、请求选项等关键上下文,便于排查问题。
这些命令大多通过树视图右键或标题按钮触发,命令面板默认隐藏。
配置项 Settings Items
| Setting |
默认 |
说明 |
addi.defaultMaxInputTokens |
4028 |
默认最大输入 tokens |
addi.defaultMaxOutputTokens |
1024 |
默认最大输出 tokens |
addi.defaultModelFamily |
"Addi" |
默认模型 family |
addi.defaultModelVersion |
"1.0.0" |
默认模型 version |
addi.saveConfigToSettingsSync |
true |
是否保存到 VSCode Settings Sync 云端 |
addi.sortRule |
"none" |
排序规则 (none/alphabet/input tokens/output tokens) |
addi.sortTarget |
"both" |
排序目标 (providers/models/both) |
更改方法:VS Code 设置搜索 “addi” 或在视图标题中点击 Settings。
配置文件以 JSON 多维数组存储,每个供应商包含其模型列表:
[
{
"id": "provider-id",
"name": "OpenAI",
"providerType": "openai",
"description": "提供 GPT 系列模型",
"website": "https://openai.com",
"apiEndpoint": "https://api.openai.com/v1",
"apiKey": "sk-...",
"models": [
{
"id": "gpt-4",
"name": "GPT-4",
"family": "Addi",
"version": "1.0.0",
"maxInputTokens": 8192,
"maxOutputTokens": 2048,
"capabilities": {
"imageInput": false,
"toolCalling": false
}
}
]
}
]
调试游乐场 Debug Playground
提供交互式调试界面,发送消息、调节参数、查看日志。现阶段主要用于测试与调试自定义模型参数。
支持设定参数:Temperature / Top P / Max Output Tokens / Presence Penalty / Frequency Penalty / System Prompt。参数在 workspaceState 中持久化。OpenAI 兼容端点支持 SSE 流式增量输出,可中途取消(AbortController)。不支持流的 Provider 自动回退普通请求。
常见问题 FAQ
Q: 为什么我添加的模型在 Copilot 中不可见?
A: 请确保:
- 您已为供应商配置了 API 密钥
- 您使用的是 GitHub Copilot 个人计划
- 模型已正确添加并保存
Q: 如何知道我的模型是否正在使用中?
A: 您可以在 Copilot 聊天界面的模型选择器中查看当前选中的模型。
Q: 我可以添加多少个供应商和模型?
A: 扩展对供应商和模型数量没有硬性限制,但建议根据您的实际需求合理添加。
Q: 我的自定义工具没有显示在 Copilot 的工具列表中?
A: 请确保:
- 自定义工具的 YAML 文件位于正确的目录(
.addi/public/ 或 .addi/private/)。
- 文件格式符合规范且无语法错误。
- MCP 服务器已启动(修改 YAML 文件后,发起一次对话,或可通过执行
MCP: Start Server 命令手动启动)。
故障排除 Troubleshooting
| 问题 |
排查步骤 |
| 无法切换模型 |
重启 VS Code / 确认 Provider Key / 在模型管理面板勾选显示模型 |
| 无法在 Agent 模式使用 |
确认 Copilot 订阅等级 / 检查模型支持情况(官方要求需支持工具调用) |
| 新增的工具不显示 |
确认 YAML 语法正确 / 检查文件路径 / 确认 MCP 服务器已在运行 |
| 工具列表重复显示 |
重启 VS Code / 确认没有自编译版本的 Addi 插件及 MCP 服务正在运行 |
| 请求失败 |
查看 Addi 输出日志 & 控制台 / 校验 API Endpoint & Key |
| 流式不工作 |
Provider 是否支持 SSE;禁用流后重试 |
| 配置未同步 |
检查 addi.saveConfigToSettingsSync 设置 |
| 接口兼容性问题 |
检查 Provider 类型设置 / 查看日志了解请求细节 / 切换其他类型测试 |
许可证 License
MIT © 2026-present deepwn — 详见 LICENSE。
免责声明 Disclaimer
本扩展仅提供客户端功能,使用第三方 / 自建 API 带来的数据与安全风险由使用者自行承担。我们不对直接或间接损失负责。
致谢 Thanks
- GitHub Copilot 团队与 VS Code 扩展生态
- OpenAI / Anthropic / Google 等公共 API 生态
- 所有提交 Issue / PR 的贡献者 🙌
欢迎 Star 支持项目,如果它对你有帮助!