🛠️ VS Code Agent 工具全指南

0 阅读8分钟

推荐阅读

微软正式开源!王炸!

VS Code 又整新活!相当炸裂!

VS Code 2026 效率秘籍:学完无敌!

VS Code 新版本来了,更强 AI,更丝滑的编程体验!

VSCode1.108发布

VS Code官宣绿色版:更强,更智能!

2025年7 个鲜为人知但超实用的 VS Code 技巧

专为程序员打造的AI时代的开发神器,效率是单车变跑车!

2025 年 7 个压箱底 VS Code 插件,都是神器!

Cursor 2.0正式发布:携自研模型Composer强势登场,不再只做「壳」,速度遥遥领先!

VS Code 的这款数据库 AI 神器,再也不用来回切换 Navicat 了

VS Code2025 这几个 AI 智能编程天花板技巧,比 Cursor 还强!

📦 什么是 Agent 工具?

工具 (Tools) 是 VS Code 中扩展 Agent 能力的 specialized functionality(专业功能模块)。简单来说,工具就是让 AI 能够执行具体任务的能力包。

想象一下:

  • 没有工具的 Copilot:像个只会纸上谈兵的军师 📜
  • 有工具的 Copilot:像能上阵杀敌的将军 ⚔️

VS Code 支持三种类型的工具:

工具类型说明需要配置吗?
🔧 Built-in Tools (内置工具)VS Code 自带的工具,覆盖常见开发任务❌ 无需安装,开箱即用
🔌 MCP Tools (模型上下文协议工具)通过 MCP 服务器提供的外部工具和服务✅ 需要安装配置 MCP 服务器
📦 Extension Tools (扩展工具)VS Code 扩展贡献的工具,深度集成编辑器✅ 安装对应扩展后自动可用

🔍 三种工具类型详解

1️⃣ 内置工具 (Built-in Tools)

这是 VS Code 亲儿子,无需任何安装或配置,开始使用 Chat 就自动可用!

典型能力

  • 搜索代码库

  • 读取工作区文件

  • 运行终端命令

  • 浏览器交互测试

  • 获取问题列表等


2️⃣ MCP 工具

MCP 是一个开放标准,让 AI 模型能通过统一接口使用外部工具和服务。

特点

  • MCP 服务器可以运行在本地远程托管
  • 可以提供额外能力(如数据库查询、API 调用等)
  • 支持通过 MCP Apps 返回交互式 UI 组件

⚠️ 重要提示:你的组织可能会禁用 MCP 服务器或限制可用的服务器列表。如有疑问,请联系管理员。


3️⃣ 扩展工具 (Extension Tools)

VS Code 扩展可以通过 Language Model Tools API 贡献工具。

特点

  • 深度集成编辑器功能
  • 安装扩展后自动可用,无需额外配置
  • 开发者可以创建自定义工具

👨‍💻 想自己开发工具?查看 Language Model Tools API guide


⚙️ 如何启用工具?

在使用工具之前,需要在 Chat 视图 中启用它们。你可以按请求启用/禁用特定工具。

操作步骤

  1. 打开 Chat 视图,从 Agent 选择器中选择 Agent
  2. 点击聊天输入框中的 Configure Tools (配置工具) 按钮 🔧
  3. 勾选或取消勾选工具,控制哪些工具可用于当前请求
  4. 使用搜索框可以快速过滤工具列表

Chat Tools Picker (图示:在 Chat 视图中通过工具选择器启用/禁用工具)

💡 小贴士:只选择与你的提示词相关的工具,可以提高结果质量!


💬 在提示词中使用工具

自动模式(推荐)

使用 Agent 时,它会根据你的提示词和请求上下文,自动决定使用哪些已启用的工具。你只需要描述任务,Agent 会自主选择并调用相关工具。

提示词示例:
"帮我找出项目中所有使用 axios 的地方,并检查是否有错误处理"

Agent 会自动:

  1. 搜索代码库
  2. 定位 axios 调用
  3. 分析错误处理逻辑
  4. 生成报告

显式引用模式

你也可以明确指定使用哪个工具,方法是在提示词中输入 # 加工具名称。

输入 #,会显示可用工具列表,包括:

  • 内置工具
  • 已安装 MCP 服务器的工具
  • 扩展工具
  • 工具集

显式引用示例

示例说明
"Summarize the content from #fetch https://code.visualstudio.com/updates"获取并总结网页内容
"How does routing work in Next.js? #githubRepo vercel/next.js"查询 GitHub 仓库
"Fix the issues in #problems"修复问题列表中的错误
"Explain the authentication flow #codebase"基于代码库解释认证流程

💡 某些工具需要参数,如 #fetch 需要 URL,#githubRepo 需要仓库名称。


🔐 工具审批机制(安全很重要!)

某些工具在运行前需要你的审批。这是安全措施,因为工具可能:

  • 修改文件
  • 更改环境配置
  • 通过恶意工具输出进行提示注入攻击

审批选项

当工具需要审批时,会显示确认对话框,你可以选择:

审批范围说明
🔸 单次使用仅本次运行需要审批
🔸 当前会话本次聊天会话中无需再审批
🔸 当前工作区该工作区中无需再审批
🔸 所有未来调用永久信任该工具

在这里插入图片描述


配置 URL 自动审批

使用 chat.tools.urls.autoApprove 设置存储自动审批的 URL 模式:

{
  "chat.tools.urls.autoApprove": {
    "https://www.example.com": false,
    "https://*.contoso.com/*": true,
    "https://example.com/api/*": {
      "approveRequest": true,
      "approveResponse": false
    }
  }
}

支持的模式

  • 精确 URL
  • Glob 模式(通配符)
  • 布尔值(启用/禁用所有)

在这里插入图片描述


重置工具确认

想清除所有已保存的工具审批?使用命令面板:

Ctrl+Shift+P → 搜索 "Chat: Reset Tool Confirmations"

✏️ 编辑工具参数

在工具运行前,你可以审查并编辑输入参数:

  1. 当工具确认对话框出现时,点击工具名称旁边的 chevron (∨) 展开详情
  2. 根据需要编辑任何工具输入参数
  3. 点击 Allow 使用修改后的参数运行工具

💻 终端命令功能

Agent 可能会使用终端命令作为工作流的一部分来完成任务。

查看命令输出

  • 在聊天对话中,Agent 会显示它运行的命令
  • 点击命令旁边的 Show Output (>) 可在聊天中内联查看输出
  • 点击 Show Terminal 可在集成终端中查看完整输出

在这里插入图片描述

后台运行长时间命令

当 Agent 运行长时间命令(如启动开发服务器、watch 模式构建)时,可以点击 Continue in Background 按钮将命令推送到后台。

好处

  • Agent 可以继续执行其他任务,无需等待命令完成
  • 稍后可以检查输出或使用终端执行其他任务

自动审批终端命令

使用 chat.tools.terminal.autoApprove 配置哪些终端命令自动审批:

{
  // 允许 mkdir 命令
  "mkdir": true,
  // 允许 git status 和以 git show 开头的命令
  "/^git (status|show\\b.*)$/": true,
  
  // 阻止 del 命令
  "del": false,
  // 阻止任何包含 "dangerous" 的命令
  "/dangerous/": false
}

规则说明

  • true = 自动审批
  • false = 始终需要审批
  • / 包裹 = 正则表达式匹配

⚠️ 警告:自动审批终端命令提供的是"尽力而为"的保护。在高风险环境中,考虑启用终端沙盒或在容器中运行 VS Code。


📁 工具集 (Tool Sets)

工具集 是工具的集合,可以在提示词中作为单个实体引用。帮助你组织相关工具,使其在聊天提示词、提示文件和自定义 Agent 中更易使用。

创建工具集

  1. 运行命令:Chat: Configure Tool Sets
  2. 选择 Create new tool sets file
  3. 在打开的 .jsonc 文件中定义工具集

在这里插入图片描述

工具集结构示例

{
  "reader": {
    "tools": ["changes", "codebase", "problems", "usages"],
    "description": "Tools for reading and gathering context",
    "icon": "book"
  }
}

属性说明

属性说明
tools工具名称数组(内置/MCP/扩展工具)
description在工具选择器中显示的简短描述
icon工具集图标(参考 Product Icon Reference)

使用工具集

在提示词中输入 # 加工具集名称:

"分析代码库的bug #reader"
"常量MASS使用到的地方? #search"

在工具选择器中,工具集显示为可折叠的相关工具组,可以一次性启用/禁用多个相关工具。


❓ 常见问题 (FAQ)

Q1: 如何知道有哪些工具可用?

A: 在聊天输入框中输入 #,会显示所有可用工具列表。也可以使用 Chat 视图中的工具选择器查看和管理活动工具。


Q2: 收到错误 "Cannot have more than 128 tools per request" 怎么办?

A: 每个聊天请求最多启用 128 个工具。解决方法:

  • 打开工具选择器,取消勾选一些工具或整个 MCP 服务器
  • 启用 github.copilot.chat.virtualTools.threshold 设置自动管理大型工具集

Q3: 为什么 Agent 不使用 Command Prompt 作为终端 Shell?

A: Agent 使用你配置的默认终端 Shell(cmd 除外)。因为 Shell Integration 不支持 Command Prompt,导致 Agent 对终端内发生的事情可见性非常有限。

如果必须使用 cmd,可以配置:

{
  "chat.tools.terminal.terminalProfile.windows": {
    "path": "C:\\WINDOWS\\System32\\cmd.exe"
  }
}

但体验会比 PowerShell 差。


Q4: 可以自动审批所有工具和终端命令吗?

A: 可以,但强烈不推荐!⚠️

启用 chat.tools.global.autoApprove 会禁用所有手动审批,包括潜在的破坏性操作。这会移除关键安全保护,使攻击者更容易入侵机器。

如果一定要用

  • 从 Chat 中使用 /yolo/autoApprove 斜杠命令启用
  • 使用 /disableYolo/disableAutoApprove 禁用
  • 首次启用时会显示警告对话框确认