Skip to main content

关于 GitHub Copilot 编码代理

可以要求 Copilot 打开新的拉取请求或对现有拉取请求进行更改。 Copilot 在后台运行,然后请求您进行审查。

谁可以使用此功能?

Copilot编程助理 可用于 GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot业务 和 GitHub Copilot Enterprise 计划。 该代理在 GitHub 上存储的所有仓库中均可用,但以下情况除外:由 托管用户帐户 拥有的仓库,以及已显式禁用该代理的仓库。
Sign up for Copilot

概述 Copilot编程助理

借助 Copilot编程助理, GitHub Copilot 可以在后台独立工作来完成任务,就像人类开发人员一样。

          Copilot编程助理 可以:
  • 修复 Bug
  • 实现增量新功能
  • 改进测试覆盖率
  • 更新文档
  • 处理技术债务
  • 解决合并冲突

若要将任务委托给 Copilot编程助理,可以:

  • 让 Copilot 从许多地方打开一个新的拉取请求,包括 GitHub Issues、Visual Studio Code 以及在每个页面上可用的 GitHub 代理面板。 请参阅“要求 GitHub Copilot 创建拉取请求”。

  • 在对现有拉取请求的注释中提及 @copilot ,要求其进行更改。 请参阅“要求GitHub Copilot对现有拉取请求进行更改”。

            * 将安全警报分配给 Copilot 从安全活动。 请参阅 [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot-coding-agent)。
    
            Copilot编程助理 将根据您提供的提示来评估其被分配的任务,无论是问题描述还是聊天消息。 然后 Copilot编程助理 进行所需的更改并打开拉取请求。 完成后 Copilot编程助理 将请求你进行审核,你可以提交评论以请求 Copilot编程助理 迭代。
    

在处理编码任务时,Copilot编程助理 可以访问由 GitHub Actions 提供支持的临时开发环境,在其中可以浏览代码、进行更改、执行自动化测试和代码检查等。

优于传统 AI 工作流的优势

有效使用时,Copilot编程助理 比传统的 IDE AI 助手更具生产力优势。

  • 借助 IDE 中的 AI 助手,可在本地进行编码。******** 单个开发人员使用 AI 助手在同步会话中进行协作。**** 在会话期间做出的决策未被跟踪,除非提交,否则会随着时间的推移而丢失。**** 虽然助手帮助编写代码,但开发人员仍有很多人工步骤要做:创建分支、编写提交信息、推送更改、打开 PR、编写 PR 说明、进行评审、在 IDE 中迭代和重复。 对于简单或常规问题而言,这些步骤耗费的时间和精力可能难以证明其合理性。

  • 使用Copilot编程助理 时,所有代码编写和迭代开发都会在拉取请求工作流中进行GitHub。 可以创建专门处理不同类型任务的多个 自定义代理。 Copilot 实现自动化 创建分支、编写和推送提交消息、打开 PR 以及编写 PR 说明。 开发人员允许代理 在后台工作 ,然后使用 PR 评审引导 Copilot 到最终解决方案。 在 GitHub 上工作可以提高 透明度,因为每一步都在提交中记录,且可在日志中查看,同时也为整个团队提供 协作 的机会。

          Copilot编程助理 对比代理模式

          Copilot编程助理 不同于 IDE 中提供的“代理模式”功能。 
          Copilot编程助理 在 GitHub Actions提供支持的环境中自主工作,以完成通过 GitHub 问题或 GitHub Copilot 聊天 提示分配的开发任务,并使用结果创建拉取请求。 相比之下,IDE 中的代理模式直接在本地开发环境中进行自治编辑。 有关代理模式的详细信息,请参阅 [AUTOTITLE](/copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-your-ide)。

使用 Copilot编程助理 简化软件开发

将任务分配给 Copilot编程助理 将有助于提升您的软件开发工作流。

例如,可以通过选择“Copilot”作为负责人,将Copilot编程助理分配给积压工作中的直接问题。 这样,你就可以花更少的时间处理这些问题,花更多的时间处理更复杂的或有趣的工作,或者需要高度创造性思维的工作。 Copilot编程助理 可以处理“锦上添花” 的问题,以提高代码库或产品的质量,但这些问题通常会留在积压工作清单上,而你则专注于更紧迫的工作。

通过 Copilot编程助理 附加编码资源,还可以启动由于缺少资源而可能尚未启动的任务。 例如,可以创建任务来重构代码或添加更多日志记录,然后立即将这些任务分配给Copilot。

          Copilot编程助理 可以启动一个任务,然后你接手并继续亲自完成。 通过将初始工作分配给Copilot,可以释放出本来要花在执行重复性任务上的时间,例如为新项目搭建脚手架。

可以为不同的任务创建专用自定义代理。 例如,可以创建一个 自定义智能体 专用于前端开发,侧重于 React 组件和样式、擅长编写和更新技术文档的文档代理,或专门生成综合单元测试的测试代理。 每个 自定义智能体 都可以根据适合其特定任务的特定提示和工具进行定制。

衡量拉取请求的结果 Copilot编程助理

企业管理员和组织所有者可以使用Copilot使用度量来分析由Copilot编程助理创建的拉取请求的结果。

          Copilot使用情况指标 API 包括拉取请求生命周期指标,例如:
  • 创建和合并的拉取请求总数
  •         Copilot编程助理 创建并已合并的拉取请求数
    
  • 合并拉取请求的中值时间,包括Copilot编程助理创建的拉取请求

这些指标可帮助你跟踪Copilot编程助理的采用情况,并监视随时间变化的拉取请求吞吐量以及合并时间的变化。 请参阅“GitHub Copilot使用情况指标”。

          Copilot编程助理与第三方工具集成

还可以从外部工具调用 Copilot编程助理 ,使你可以将 Copilot任务分配给、提供上下文和打开拉取请求,而无需离开工作流。 请参阅“关于 Copilot 集成

使Copilot编程助理可用

在可向 Copilot编程助理 分配任务之前,必须先启用其功能。

          Copilot编程助理可用于GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot业务和GitHub Copilot Enterprise计划。

如果您是GitHub Copilot业务或GitHub Copilot Enterprise订阅者,管理员必须先启用相关策略,然后您才能使用代理程序。

存储库所有者可以选择从 Copilot编程助理中选择退出部分或所有存储库。

有关详细信息,请参阅 管理对 GitHub Copilot 编码代理的访问

适用于 Copilot编程助理 的 AI 模型

根据你启动 Copilot编程助理 任务的方式,你可以选择 Copilot编程助理 所使用的模型。 你可能会发现不同的模型性能更好,或提供更有用的响应,具体取决于你提供 Copilot的任务类型。

有关详细信息,请参阅 更改 GitHub Copilot 编码代理的 AI 模型

增强 Copilot编程助理 对存储库的知识

你对存储库中的代码、所用的工具以及编码标准和做法了解得越多,Copilot编程助理 就会变得越有效。 可通过两种方式增强 Copilot编程助理存储库的知识。

  •         **自定义指令**
    

    这些是以自然语言编写的简短语句,并将其作为一个或多个文件写入和存储于存储库中。 如果你是 GitHub 上组织的所有者,还可以在组织的设置中定义自定义指令。 有关详细信息,请参阅 关于自定义GitHub Copilot 响应

  •         **
            Copilot内存
            ** (公共预览版)
    

    如果你有一个 Copilot Pro 或 Copilot Pro+ 计划,则可以启用 Copilot内存。 这样允许Copilot 自行处理并存储关于存储库的有用详细信息。 在该存储库中工作时,Copilot编程助理 可以使用此信息。 有关详细信息,请参阅 关于GitHub Copilot的自主记忆

          Copilot编程助理 使用成本

          Copilot编程助理 使用 GitHub Actions 分钟数和 Copilot 高级请求。

在包括 GitHub Actions 和高级请求的每月使用津贴中,可以要求 Copilot编程助理 处理编码任务,而不会产生任何额外的费用。

有关详细信息,请参阅 GitHub Copilot许可证

定制 Copilot编程助理

可以通过多种方式自定义 Copilot编程助理。

  •         **自定义说明**:自定义说明允许你在项目上提供 Copilot 其他上下文,以及如何生成、测试和验证其更改。 有关详细信息,请参阅 [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-repository-instructions)。
    
  •         **模型上下文协议(MCP)服务器:MCP** 服务器允许你访问 Copilot 不同的数据源和工具。 有关详细信息,请参阅 [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp)。
    
  •         **
            自定义智能体
            **: 自定义智能体 允许为不同的任务创建不同的专用版本 Copilot 。 例如,可以按照团队的指南自定义 Copilot 为专家前端工程师。 有关详细信息,请参阅 [AUTOTITLE](/copilot/concepts/agents/coding-agent/about-custom-agents)。
    
  •         **挂钩:挂钩**允许在代理执行期间在关键点执行自定义 shell 命令,使你能够添加验证、日志记录、安全扫描或工作流自动化。 有关详细信息,请参阅 [AUTOTITLE](/copilot/concepts/agents/coding-agent/about-hooks)。
    
  •         **技能**:利用技能,可以增强使用说明、脚本和资源执行专用任务的能力 Copilot 。 有关详细信息,请参阅 [AUTOTITLE](/copilot/concepts/agents/about-agent-skills)。
    

局限性Copilot编程助理

          Copilot编程助理 存在某些限制,其软件开发工作流在与其他功能的兼容性方面存在问题。

软件开发工作流中 Copilot编程助理 的限制

  •         **
            Copilot 只能在启动任务时指定的存储库中进行更改**。 
            Copilot 无法在一次运行中跨多个存储库进行更改。
    
  •         **默认情况下, Copilot 只能在启动任务时指定的存储库中访问上下文**。 
            Copilot MCP 服务器默认配置为允许Copilot访问其工作存储库中的上下文(例如问题和历史拉取请求)。 然而,你可以配置更广泛的访问权限。 请参阅“[AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)”。
    
  •         **
            Copilot 一次只能打开一个拉取请求**。 
            Copilot 将只打开一个拉取请求来处理它分配的每个任务。
    

          Copilot编程助理与其他功能的兼容性限制

* ** Copilot 不符合可能为存储库配置的某些规则**。 如果您配置了与 Copilot编程助理 不兼容的规则集或分支保护规则(例如“需要签名提交”规则),将会阻止对代理的访问。 如果规则是使用规则集配置的,则可以添加 Copilot 为旁路执行组件以启用访问。 请参阅“创建存储库的规则集”。 * ** Copilot编程助理 不考虑内容排除**。 内容排除允许管理员配置为 Copilot 忽略某些文件。 使用 Copilot编程助理时, Copilot 不会忽略这些文件,并且将能够查看和更新这些文件。 请参阅“从 GitHub Copilot 中排除内容”。 * ** Copilot编程助理仅适用于托管在GitHub上的存储库**。 如果存储库是使用不同的代码托管平台存储的, Copilot 则无法处理它。

动手练习

尝试Copilot编程助理技能练习以扩展您的团队,获取Copilot编程助理的实际经验。

其他阅读材料

  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent)使用指南文章
    
  •         [AUTOTITLE](/copilot/concepts/agents/coding-agent/about-custom-agents)
    
  •         [AUTOTITLE](/copilot/responsible-use-of-github-copilot-features/responsible-use-of-copilot-coding-agent-on-githubcom)