VS Code 1.120 把此前在预览阶段反复打磨的 Agents 窳窗推入了稳定版通道,同时围绕 BYOK(Bring Your Own Key)模型和 agent 安全做了多项实用改进。如果你已经在用 Copilot Chat,这版更新会直接改变你组织工作流的方式——从"先选工具再对话"变成"先定 agent 再干活"。
Agents 窳窗:从实验到日常
此前 Agents 功能藏在 Chat 面板的侧边栏里,入口深、切换繁琐。1.120 把它独立成一级窗口,放在活动栏上,和 Explorer、Search 同级。核心变化是交互范式:不再需要先打开 Chat 再手动 # 引用某个工具,而是直接在 Agents 窳窗里选择或创建一个 agent,整个对话上下文、可用工具集、执行策略都由该 agent 统领。
实际体验上有几个值得注意的点:
- 项目级持久化:你为某个项目配置的 agent(比如绑定了特定文件范围和工具)会随项目保存,下次打开不用重新设定。
- 多 agent 并行:可以在不同 agent 会话中分别处理代码重构、文档撰写、测试生成,互不干扰。
- 工具绑定更直观:每个 agent 会明确展示它能调用哪些工具(文件操作、终端命令、搜索等),不再像之前那样靠隐式推断。
BYOK 改进:自己的模型,更可控
BYOK 让你把非 OpenAI 的模型接入 Copilot Chat。1.120 在两个方向做了加强:
可见性——之前接入自定义模型后,模型列表里经常混在一起,难以区分哪个是内置、哪个是你自己配的。现在模型选择下拉框会分组显示,BYOK 模型带独立标签,还能看到当前 token 消耗和剩余配额的实时统计。
可空性(nullable)——部分 BYOK 端点不一定支持所有 Chat 功能(比如某些模型没有 tool-use 能力)。1.120 让 agent 在检测到模型能力缺失时优雅降级,而不是直接报错中断。这意味着你可以用更便宜的推理模型跑简单问答,用满配模型跑复杂 agent 任务,按需切换。
下面是一个典型的 BYOK 配置示例,把一个本地部署的模型接入 VS Code:
// settings.json — 将此内容合并到你的 VS Code 用户设置中
{
// BYOK 模型配置
"github.copilot.chat.models": [
{
"name": "my-local-qwen3",
"provider": "custom",
"endpoint": "http://localhost:8000/v1/chat/completions",
"apiKeyEnvVar": "MY_LOCAL_MODEL_KEY", // 从环境变量读取,避免硬编码
"capabilities": {
"toolUse": false, // 该模型不支持 tool-use,agent 会自动降级
"streaming": true
}
}
],
// 默认 agent 使用 BYOK 模型(可选)
"github.copilot.chat.defaultModel": "my-local-qwen3"
}
启动前确保你的本地模型服务已在运行,并且环境变量 MY_LOCAL_MODEL_KEY 已设置:
# 在终端中设置 API Key 环境变量(示例,替换为你的实际 key)
export MY_LOCAL_MODEL_KEY="sk-your-actual-key-here"
# 确认本地模型服务可达
curl -s http://localhost:8000/v1/models | head -20
配置完成后重启 VS Code,在 Agents 窳窗的模型下拉框里就能看到带标签的 my-local-qwen3。
Markdown 体验优化
1.120 对编辑器内的 Markdown 渲染做了几处细节打磨:
- 实时预览同步更精准:滚动左侧源码时,右侧预览不再出现段落错位。
- 代码块复制按钮:渲染后的 Markdown 代码块右上角新增一键复制,省去手动选中。
- 表格渲染改进:宽表格不再溢出容器,自动适配编辑器宽度。
这些看似小改动,但对日常写 README、API 文档、变更日志的人来说,体验提升明显。
Agent 安全:权限边界更清晰
Agent 能调用终端、读写文件、搜索代码——能力很强,风险也真实存在。1.120 引入了 agent 安全机制,核心思路是显式授权 + 操作审计:
- 工具调用确认:agent 尝试执行终端命令或修改文件时,编辑器会弹出确认提示,列出具体操作内容,你逐条批准或拒绝。
- 权限范围设定:可以在 agent 配置中限定它只允许读取特定目录、只允许运行预批准的命令白名单。
- 操作日志:每次 agent 执行的操作都记录在会话历史中,可回溯审查。
一个安全配置示例:
// settings.json — agent 安全策略
{
"github.copilot.chat.agentSecurity": {
// 全局默认策略:所有 agent 执行命令前必须确认
"requireConfirmationFor": ["terminal", "fileWrite", "fileDelete"],
// 可选:为特定 agent 设定更宽松或更严格的策略
"perAgentOverrides": {
"doc-writer": {
// 文档 agent 只允许写 Markdown 文件
"allowedFilePatterns": ["*.md", "*.txt"],
"allowedTerminalCommands": ["npm run docs"] // 白名单模式
}
}
}
}
升级建议与注意事项
- 升级路径:VS Code 会自动推送更新;如果你用的是
.deb/.rpm安装包,手动检查更新即可。 - Agents 窳窗迁移:此前在 Chat 面板里创建的 agent 会话不会自动迁移到新窗口,需要手动重建。建议趁这次升级重新梳理你的 agent 划分——按职能(代码、文档、测试)而非按项目拆分,复用性更好。
- BYOK 模型兼容性:配置自定义模型前,先用
curl确认端点返回格式符合 OpenAI Chat Completions API 规范;不支持 tool-use 的模型务必在capabilities里标明,否则 agent 调用工具时会静默失败。 - 安全策略起步:初期建议把
requireConfirmationFor设为全部三类操作都需确认,跑几天观察哪些操作你确实会反复批准,再逐步放宽或切换到白名单模式。
这版更新不算大刀阔斧,但每一项都指向同一个方向:让 AI 辅助从"偶尔用用的聊天框"变成"有边界、有纪律的工作伙伴"。Agents 窳窗稳定版落地,意味着这条路线已经过了内部验证,可以放心用在日常项目里了。