Agent 工具
說明 VS Code agent 的 built-in tools、MCP tools、extension tools、工具選擇、批准和信任邊界。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| Agent tools | 代理工具 | agent 可呼叫的能力集合。 |
| 工具許可權 | permission | 哪些工具需要授權。 |
| MCP 擴充套件 | extend | 用 MCP 給 agent 加工具。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你管好 VS Code Copilot agent 能用哪些工具、許可權到哪。
你是 Copilot Agent 工具管理顧問。
【角色】
Copilot Agent 工具管理顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。
【輸入】
- 我希望它能做什麼操作:___
- 哪些操作絕不能做:___
- 是否接 MCP 工具:___
- 專案敏感區:___
- 風險偏好:___
【工作流程】
1. 列出 agent 可用工具
2. 按最小夠用授權
3. 標出高危工具的邊界
4. 說明 MCP 擴充套件怎麼接
5. 給驗證
【輸出規範】
▌一、可用工具
▌二、最小授權
▌三、高危邊界
▌四、MCP 擴充套件 + 驗證
【硬約束】
- 只開必要工具,高危預設審批
- 敏感區設禁改
- 外部工具返回視為不可信
- 不要替我臆測情況或編造不存在的功能,資訊不全先問清
- 不確定的設定或許可權一律以官方文件為準,禁止照搬過時寫法
- 給的每條結論都要落到具體可照做的步驟或示例,不停留在「建議」「考慮一下」這類沒法直接執行的空泛表述工具是 Agent Mode 從“會說話”變成“會行動”的關鍵。VS Code 官方 Tools 文件說得很直接:沒有工具,language model(語言模型)只能生成文本;有了工具,agent 能讀檔案、寫程式碼、執行終端命令、搜尋程式碼庫並連線外部服務。
所以工具不是裝飾項,而是許可權邊界。你給 agent 什麼工具,它就可能圍繞這些工具規劃下一步。
閱讀目標:讀完本章,你應該能判斷哪些工具該開、哪些工具要關、什麼時候必須人工批准。
1. 三類工具
VS Code 官方文件列出三類工具:
- Built-in tools:VS Code 自帶的開發任務工具,例如讀寫檔案、執行終端命令、搜尋程式碼庫、導航編輯器。
- MCP tools:由 Model Context Protocol server 提供,可以連線資料庫、API 和外部服務。
- Extension tools:由 VS Code extension 透過 Language Model Tools API 提供,和編輯器深度整合。
flowchart TD
Agent["Agent loop"] --> Select["模型選擇工具"]
Select --> BuiltIn["Built-in tools"]
Select --> MCP["MCP tools"]
Select --> Extension["Extension tools"]
BuiltIn --> Output["工具輸出進入下一輪上下文"]
MCP --> Output
Extension --> Output
Output --> Next["下一步決策"]
Next --> Approval{"有副作用?"}
Approval -->|是| Human["人工批准"]
Approval -->|否| Continue["繼續執行"]
style MCP fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Human fill:#fee2e2,stroke:#dc2626,stroke-width:2px
style Output fill:#dbeafe,stroke:#2563eb,stroke-width:2px
2. Agent 如何使用工具
官方文件說明,agent 處理任務時會檢視可用工具,並自主決定呼叫哪些工具。每個工具呼叫的輸出會進入下一輪上下文,影響後續決策。
這帶來兩個現實後果:
- 工具越多,agent 可做的事越多,也越容易呼叫無關工具。
- 工具輸出會消耗 context window,過多無關呼叫會降低後續回答質量。
你也可以在 prompt 裡用 # 加工具名顯式引用某個工具,確保它被使用。
3. 控制工具可用性
VS Code 官方頁面說明,可以透過 chat input 裡的 Configure Tools 按鈕為目前請求啟用或停用工具。
限制工具有三個價值:
- 保留上下文:少呼叫無關工具,減少上下文浪費。
- 提高相關性:工具少時,agent 更集中。
- 提升速度:減少模型在工具之間選擇的空間。
還可以透過 prompt files 和 custom agents 固定某類任務可用的工具集。
4. 批准與信任
工具可能修改檔案、訪問環境或連線外部服務。VS Code 官方文件列出幾類安全控制:
- Approval prompts:有副作用的工具執行前會出現確認。
- URL approval:訪問 URL 時有請求和響應內容的雙重確認流程。
- Permission levels:控制 agent 自主程度,從人工批准到完全自動。
團隊預設策略建議:
- 讀檔案、搜尋程式碼庫可以低門檻開放。
- 寫檔案要看目錄和任務範圍。
- 終端命令必須能解釋目的。
- MCP 連線資料庫、工單、雲服務時預設需要人工確認。
- 不給生產憑據和 destructive command 自動許可權。
5. 工具使用 prompt
使用 agent 修復測試。
工具邊界:
可以讀取 src 和 tests。
可以修改 tests/auth。
執行命令前先說明原因。
不要訪問外部服務。關鍵不是讓 prompt 變複雜,而是讓 agent 的行動範圍可審查。
深讀:為什麼工具越多不一定越好
Agent 會根據可用工具規劃下一步。工具太多時,它可能花上下文去探索不相關資訊,也可能把外部系統接入一個原本只需要本地 diff 的任務。
商業專案要按任務授權,而不是按最大能力授權。工具許可權應該像生產許可權一樣最小化。
本章自檢
完成本章後,用這 4 個問題檢查:
- 目前任務真正需要哪些工具?
- 哪些工具有檔案、終端、網路或外部服務副作用?
- 是否透過 Configure Tools、prompt file 或 custom agent 限定工具集?
- 是否禁止了生產資源、金鑰和 destructive command 的自動呼叫?
透過標準:agent 的工具範圍能被 reviewer 看懂,並且和任務風險匹配。
官方來源
- Tools —— VS Code 官方工具機制文件,覆蓋工具型別、選擇、控制和批准。
- Using agents in Visual Studio Code —— VS Code 官方 agents 總覽,覆蓋 permission levels。
- About Model Context Protocol —— GitHub 官方 MCP 概念頁,用於理解外部工具接入邊界。