你想了解的是 VS Code Copilot Agents 体系中 Built-in agent(内置智能体:Agent、Plan、Ask) 与 Custom agent(自定义智能体) 的核心区别------前者是 Copilot 预置的、开箱即用的"通用能力模块",后者是你基于业务需求定制的、可复用的"行为规则模板",两者的定位、使用方式、灵活性差异显著,以下严格贴合 VS Code 官方文档定义拆解:
一、核心概念先明确(官方定义)
- Built-in agent:Copilot 内置的三类基础智能体(Agent、Plan、Ask),是无需配置、直接可用的核心能力入口,对应不同的任务处理逻辑;
- Custom agent :通过
.agent.md文件定义的"智能体配置模板",可指定角色、工具权限、运行规则,能复用在 Local/CLI/Cloud Agent 中,是对内置智能体的个性化扩展。
二、Built-in agent(Agent、Plan、Ask)核心解析
官方将这三类内置智能体作为 Copilot Agents 的"基础能力底座",各自聚焦不同的任务类型,开箱即用无配置成本:
| 内置智能体类型 | 核心定位(官方) | 核心能力 | 适用场景 | 典型使用方式 |
|---|---|---|---|---|
| Agent | 全功能通用智能体,端到端完成复杂编码任务 | 支持跨文件修改、终端命令执行、自校正、任务移交,可调用所有内置工具,适配完整开发流程 | 实现功能、修复BUG、重构代码等"落地执行类"复杂任务 | VS Code Chat 输入 @agent 实现用户登录接口 |
| Plan | 任务规划智能体,专注拆解需求、生成执行方案 | 不直接执行代码,仅分析需求→拆解步骤→生成结构化开发计划(Markdown/JSON),可对接 Agent 执行 | 需求梳理、方案设计、任务拆解等"规划类"任务 | VS Code Chat 输入 @plan 梳理电商下单功能的开发步骤 |
| Ask | 知识问答智能体,专注解答技术问题、提供参考 | 仅返回文本/代码片段参考,不修改文件/执行命令,无写操作权限,适配咨询类需求 | 语法查询、API用法、技术方案咨询等"问答类"任务 | VS Code Chat 输入 @ask Python 装饰器的使用示例 |
内置智能体的核心特征
- 预置逻辑,不可修改:三类智能体的任务处理逻辑、工具权限、响应规则均由 Copilot 官方固化,用户无法调整(如 Ask 智能体默认无文件修改权限);
- 全局可用 :无论 Local/CLI/Cloud Agent 场景,均可直接调用
@agent/@plan/@ask触发对应能力; - 无复用性:每次调用需重新描述需求,无法固化角色/规则(如"仅处理 Python 代码的 Agent"需每次手动限制)。
三、Custom agent(自定义智能体)核心解析
官方定义的 Custom agent 是"基于 .agent.md 文件的可复用配置模板",核心是将"角色、工具权限、运行规则"固化,解决内置智能体"通用但不聚焦"的问题:
核心特征(官方文档重点)
- 可定制化规则 :通过
.agent.md文件定义- 角色/人设:如"Python 代码评审员""前端格式化专家";
- 工具权限:指定允许/禁止的工具(如仅允许
fileEdit、禁止terminal); - 运行范围:限定文件类型/目录(如仅处理
.vue文件); - 任务交接规则:如评审完成后自动移交
@agent执行修改。
- 可复用性:配置文件可保存到项目中,提交至 Git 仓库,团队成员共享使用,无需重复描述规则;
- 跨Agent类型适配:可绑定到 Local/CLI/Cloud Agent 中使用(如将"Python 重构专家"自定义智能体应用到 CLI Agent,实现本地隔离环境的重构);
- 基于内置智能体扩展 :自定义智能体并非替代内置智能体,而是"封装内置智能体的能力+自定义规则"(如定制"安全评审Agent":基于
@ask的问答能力,仅返回安全合规相关的评审意见)。
典型自定义 agent 配置示例(.agent.md)
markdown
---
name: Python Code Reviewer
description: 仅评审Python代码的合规性,无文件修改权限
role: Python安全评审专家
tools:
allowed: [search, readFile] # 仅允许搜索、读取文件
blocked: [fileEdit, terminal] # 禁止修改文件、执行终端命令
scope:
file_types: [.py]
directories: [/root/project/backend]
when_to_use: "替代默认@agent,仅用于Python代码安全评审"
---
## 评审规则
1. 仅检查PEP8规范、SQL注入风险、敏感数据泄露问题
2. 输出结构化评审报告,不提供代码修改建议
3. 评审完成后提示用户手动调用@agent执行修复
markdown
---
name: create-agent
description: 'Create a custom agent (.agent.md) for a specific job.'
argument-hint: What job should this agent do and how?
agent: agent
---
Related skill: `agent-customization`. Load and follow **agents.md** for template and principles.
Guide the user to create an `.agent.md`.
## Extract from Conversation
First, review the conversation history. If the user has been using the agent in a specialized way (e.g., restricting tools, following a specific persona, focusing on certain file types), generalize that into a custom agent. Extract:
- The specialized role or persona being assumed
- Tool preferences (which to use, which to avoid)
- The domain or job scope
## Clarify if Needed
If no clear specialization emerges from the conversation, clarify:
- What job should this agent do?
- When should it be picked over the default agent?
- Which tools should it use (or avoid)?
## Iterate
1. Draft the agent file and save it.
2. Identify the most ambiguous or weak parts and ask about those.
3. Once finalized, summarize what the agent does, suggest example prompts to try it, and propose related customizations to create next.
Remember to follow the `agent-customization` guidelines to create highly effective agents.
四、Built-in agent vs Custom agent 核心对比
| 对比维度 | Built-in agent(Agent/Plan/Ask) | Custom agent(自定义智能体) |
|---|---|---|
| 本质 | 预置的能力模块,直接触发对应逻辑 | 可复用的配置模板,封装角色/规则/权限 |
| 配置成本 | 零配置,开箱即用 | 需编写 .agent.md 文件,自定义规则 |
| 灵活性 | 低,逻辑/权限固定,无法修改 | 高,可自定义角色、工具、范围、交接规则 |
| 复用性 | 无,每次调用需重新描述需求 | 高,配置文件可保存/共享,一键调用 |
| 权限管控 | 固定权限(如Ask无写权限) | 可精细化控制工具/文件/目录权限 |
| 团队协作 | 无,仅个人使用 | 高,配置文件可提交Git,团队统一规则 |
| 核心关系 | 自定义智能体的"能力底座" | 对内置智能体的"个性化封装/扩展" |
五、官方推荐使用场景
优先用 Built-in agent 当你需要:
- 快速完成简单任务,无定制化需求(如
@ask查语法、@plan拆需求、@agent写代码); - 探索性开发,需求不明确,需灵活调整任务类型;
- 临时任务,无需复用规则(如一次性修复某个BUG)。
优先用 Custom agent 当你需要:
- 处理细分领域任务,需固化规则(如仅处理前端代码的Agent、仅做安全评审的Agent);
- 团队协作,需统一Agent的使用规则(如统一代码评审标准、权限管控);
- 高风险操作,需精细化权限控制(如禁止Agent执行终端命令、仅允许修改测试目录);
- 重复执行同类任务,避免重复描述规则(如每周批量评审Python代码)。
六、核心总结
- Built-in agent 是基础:Agent/Plan/Ask 是 Copilot Agents 的核心能力入口,满足通用、无定制化的开发需求,开箱即用;
- Custom agent 是扩展 :通过
.agent.md封装内置智能体的能力,添加角色、权限、范围约束,解决"通用智能体不聚焦"的问题,提升复用性和团队协作效率; - 官方最佳实践:先用
@plan规划需求,再基于规划定制 Custom agent,最后调用@agent执行,兼顾规划性、定制化和执行效率。