自定义智能体允许你配置 AI 以适应不同的开发角色和任务,从而采用不同的个性。例如,你可以为安全审查员、规划师、解决方案架构师或其他专业角色创建智能体。每个个性都可以拥有自己的行为、可用工具和指令。
你还可以使用交接(handoffs)来创建在智能体之间引导的工作流。通过单次选择,无缝地从一个专业智能体切换到另一个智能体。例如,从规划智能体直接切换到实现智能体,或者将相关上下文传递给代码审查员。
本文介绍了如何在 VS Code 中创建和管理自定义智能体。
自定义智能体自 VS Code 1.106 版本起可用。自定义智能体之前被称为自定义聊天模式。
一、什么是自定义智能体?内置智能体为 VS Code 中的聊天提供了通用配置。为了获得更定制化的聊天体验,你可以创建自己的自定义智能体。
自定义智能体由一组指令和工具组成,当你切换到该智能体时会应用这些工具。例如,“规划”智能体可以包含生成实现计划的指令,并且仅使用只读工具。通过创建自定义智能体,你可以快速切换到该特定配置,而无需每次手动选择相关工具和指令。

自定义智能体定义在一个 .agent.md Markdown 文件中,可以存储在工作区中供他人使用,也可以存储在用户个人资料中,以便在不同工作区中重复使用。
你可以在 后台智能体 和 云智能体 中重复使用自定义智能体,从而使用相同的专门配置运行自主任务。
二、为什么使用自定义智能体?不同的任务需要不同的能力。规划智能体可能只需要用于研究和分析的只读工具,以防止意外更改代码,而实现智能体则需要完整的编辑能力。自定义智能体让你可以指定每个任务可用的确切工具,确保 AI 具备适合工作的能力。
自定义智能体还可以提供专门的指令,定义 AI 的操作方式。例如,规划智能体可以指示 AI 收集项目上下文并生成详细的实现计划,而代码审查智能体则可能专注于识别安全漏洞并提出改进建议。这些专门的指令确保每次切换到该智能体时都能获得一致且适合任务的响应。
三、交接(Handoffs)交接使你能够创建引导的顺序工作流,在智能体之间过渡并提供建议的下一步。聊天响应完成后,会出现交接按钮,用户可以通过这些按钮切换到下一个智能体,并带有相关的上下文和预填充的提示。
交接适用于协调多步骤工作流,让开发人员在进入下一步之前能够控制并审批每一步。例如:
规划 → 实现:在规划智能体中生成计划,然后交接给实现智能体开始编码。实现 → 审查:完成实现后,切换到代码审查智能体以检查质量和安全问题。编写失败测试 → 编写通过测试:生成更容易审查的失败测试,而不是大型实现,然后交接以通过实现所需的代码更改使这些测试通过。要在你的智能体文件中定义交接,请将它们添加到前置元数据中。每个交接指定目标智能体、按钮标签以及一个可选的要发送的提示:

当用户看到交接按钮并选择它时,他们会切换到目标智能体,并且提示已预填充。如果 send: true,则提示会自动提交以开始下一步工作流。
四、自定义智能体文件结构自定义智能体文件是 Markdown 文件,使用 .agent.md 扩展名,具有以下结构。
VS Code 会检测工作区的 .github/agents 文件夹中的任何 .md 文件作为自定义智能体。
头部格式为 YAML 前置元数据,包含name、description等字段。
自定义智能体文件的正文包含自定义智能体的实现,格式为 Markdown。
以下代码片段展示了一个“规划”自定义智能体文件的示例,该文件生成实现计划且不会进行任何代码编辑。

如果你有多个自定义智能体,你可以自定义哪些智能体会出现在智能体下拉菜单中。要显示或隐藏特定的自定义智能体:
1. 智能体下拉菜单中选择 配置自定义智能体。
2. 将鼠标悬停在列表中的自定义智能体上,然后选择眼睛图标以显示或隐藏该智能体。