Skip to main content

为 GitHub Copilot 命令行界面 创建和使用自定义代理

为特定开发任务创建具有定制专业知识的专用代理。

介绍

自定义智能体 允许你为特定任务定制 Copilot 的专业知识。

当你提示 Copilot 执行任务时,如果 Copilot 确定智能体的专业知识非常适合执行该任务,则它可能会选择使用你的一个 自定义代理。

由 自定义智能体 执行的工作是使用子智能体完成的,子智能体是为完成任务而启动的临时智能体。 子代理有自己的上下文窗口,可以通过与主代理无关的信息来填充该窗口。 这样,特别是对于较大的任务,可以将部分工作卸载到 自定义代理,而不会使主智能体的上下文窗口变得混乱。 然后,主代理可以专注于更高级别的规划和协调。

有关详细信息,请参阅“关于自定义代理”。

创建 自定义智能体

每个 自定义智能体 都由一个扩展名为 .agent.md 的 Markdown 文件来定义。 可以自行创建这些文件,也可以从 CLI 中添加这些文件,如以下步骤中所述。

  1. 在交互模式下,输入 /agent

  2. 从选项列表中选择 “创建新代理 ”。

  3. 你可以选择在存储库或主目录中创建 自定义智能体:

    •      **项目** (`.github/agents/`)
      
    •      **用户** (`~/.config/copilot/agents/`)
      

    注意

    如果两个位置都有同名的 自定义代理,则将使用主目录中的文件,而不是使用存储库中的文件。

  4. 选择是获取 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:手动创建代理配置文件**
    

    选择自行创建代理文件时,将引导你完成一系列提示,以填写创建代理配置文件所需的信息。

    1. 输入代理的名称。 输入的名称是列出可用代理时显示的名称。 此版本的版本将用作代理文件的名称,例如,如果输入“安全专家”,代理文件将命名 security-expert.agent.md

      提示

      为方便以编程方式使用 自定义智能体,建议选择一个仅包含小写字母和连字符的名称。

    2. 输入说明,说明此代理具有哪些专业知识,以及何时应使用它。

    3. 输入代理的操作说明,包括任何特定的准则、应执行的操作或应遵循的约束。

  5. 选择 自定义智能体 应有权访问的工具。

    默认情况下,自定义代理 有权访问所有工具。 如果限制代理的访问,代理文件中将添加一个tools规范。

  6. 重启 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.go
    

    Copilot 将自动推断要使用的智能体。

  •         **通过编程**
    

    与命令行选项一起指定你要使用的 自定义智能体。 例如:

    copilot --agent security-auditor --prompt "Check /src/app/validator.go"
    

    其中 security-auditor 是 自定义智能体 配置文件的文件名,但没有 .agent.md 扩展名。 通常(但不一定)这与 name 代理配置文件中的值相同。

延伸阅读

  •         [AUTOTITLE](/copilot/concepts/agents/copilot-cli/comparing-cli-features)
    
  •         [AUTOTITLE](/copilot/reference/custom-agents-configuration)
    
  •         [AUTOTITLE](/copilot/tutorials/customization-library/custom-agents) — 精选的示例集合