简介
自定义代理让您能够为特定任务定制 Copilot 的专业技能。
当您提示 Copilot 执行任务时,如果 Copilot 判断某个自定义代理的专业知识与任务匹配,它可能会选择使用该代理。
自定义代理执行的工作是通过子代理完成的,子代理是为完成任务而临时启动的代理。子代理拥有自己的上下文窗口,可填入对主代理不相关的信息。这样,尤其是对于大型任务,部分工作可以交给自定义代理处理,而不会使主代理的上下文窗口变得杂乱。主代理随后可以专注于更高层次的规划与协调。
有关更多信息,请参阅 关于自定义代理。
创建自定义代理
每个自定义代理由一个扩展名为 .agent.md 的 Markdown 文件定义。您可以自行创建这些文件,也可以按照以下步骤在 CLI 中添加它们。
-
在交互模式下,输入
/agent。 -
从选项列表中选择 创建新代理。
-
在以下选项中选择在仓库或在您的主目录中创建自定义代理
-
项目 (
.github/agents/) -
用户 (
~/.copilot/agents/)
注意
如果同名的自定义代理同时存在于两个位置,系统将使用您主目录中的代理,而不是仓库中的代理。
-
-
选择让 Copilot 创建自定义代理文件,还是自行创建。
选项 1:使用 Copilot
输入您想创建的代理的详细信息。描述该代理的专业领域以及何时使用该代理。Copilot 将根据您输入的描述为您编写代理配置文件。
例如,你可以输入以下内容:
I am a security expert. I check code files thoroughly for potential security issues. Use me whenever a security review/check/audit is requested for one or more code files, or when the word "seccheck" is used in a prompt in reference to code files. I will identify potential problems, such as code that: - Exposes secrets or credentials - Allows cross-site scripting - Allows SQL injection - Contains vulnerable dependencies - Allows authentication to be bypassed If any problems are identified, create a single GitHub issue in this repository on GitHub.com with details of problems, giving full details of each issue, including, but not limited to, risk level and recommended fix.Copilot 完成初始代理配置文件的生成后,会显示以下选项
- 继续
- 审查内容
- 重试
- 退出
如果您选择审查内容,代理文件将会在默认编辑器中打开。您可以在继续 CLI 中的代理创建流程之前审查并根据需要进行修改。
要完成创建流程,请选择 继续。
选项 2:手动创建代理配置文件
当您选择自行创建代理文件时,系统会引导您通过一系列提示填写创建代理配置文件所需的信息。
-
为代理输入名称。您输入的名称将在列出可用代理时显示。系统会使用该名称的一个变体作为代理文件名——例如,如果您输入 “Security expert”,则代理文件将命名为
security-expert.agent.md。提示
为了在程序化使用自定义代理时更方便,建议您选择仅包含小写字母和连字符的名称。
-
输入描述,说明该代理具备什么专业技能以及何时使用。
-
输入该代理的行为指令,包括任何具体指南、应执行的操作或需遵守的约束。
-
选择自定义代理应拥有访问权限的工具。
默认情况下,自定义代理可以访问所有工具。如果您限制代理的访问权限,系统会在代理文件中添加
tools规范。 -
重启 CLI 以加载新的自定义代理。
使用自定义代理
自定义代理可通过以下方式使用
-
斜杠命令
在交互模式下输入
/agent,从可用自定义代理列表中选择,然后输入将传递给所选代理的提示。注意
CLI 的默认代理不在此列表中。有关默认代理的更多信息,请参阅 使用 GitHub Copilot CLI。
-
显式指令
指示 Copilot 使用特定代理。例如
Use the security-auditor agent on all files in the /src/app directory -
通过推断
使用能够根据代理文件中的描述触发特定代理的提示。例如
Check all TypeScript files in or under the src directory for potential security problems或(其中“seccheck”在代理配置文件中被定义为触发词)
seccheck /src/app/validator.goCopilot 将自动推断您想使用的代理。
-
以编程方式
使用命令行选项指定要使用的自定义代理。例如
copilot --agent security-auditor --prompt "Check /src/app/validator.go"其中
security-auditor为自定义代理配置文件的文件名(不含.agent.md扩展名)。通常(但不一定)它与配置文件中的name值相同。