概述 Copilot 云代理 (前 Copilot 编码代理)
借助 Copilot 云代理, GitHub Copilot 可以在后台独立工作来完成任务,就像人类开发人员一样。
Copilot 云代理 可以:
- 研究存储库
- 创建实现计划
- 修复 Bug
- 实现增量新功能
- 改进测试覆盖率
- 更新文档
- 处理技术债务
- 解决合并冲突
将任务委托给 Copilot 云代理时,可以:
-
使用代理面板或其他代理入口点 GitHub.com 来让 Copilot 在一个分支上进行研究、规划和代码更改,然后在创建拉取请求前进行迭代。 还可以在提示中指定希望立即创建拉取请求。 请参阅“使用 Copilot 云代理研究、计划和迭代代码更改”。
-
要求 Copilot 从其他入口点(包括 GitHub Issues 和 Visual Studio Code)打开新的拉取请求。 请参阅“要求 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 云代理 可以访问由 GitHub Actions 提供支持的临时开发环境,在其中可以浏览代码、进行更改、执行自动化测试和代码检查等。
注意
在创建拉取请求之前,对代码更改进行深入的研究、规划和迭代,仅适用于 Copilot 云代理 该请求 GitHub.com。 云代理 集成(如 Azure Boards、JIRA、Linear、Slack 或 Teams)仅支持直接创建拉取请求。
优于传统 AI 工作流的优势
有效使用时,Copilot 云代理 比传统的 IDE AI 助手更具生产力优势。
-
借助 IDE 中的 AI 助手,可在本地进行编码。******** 单个开发人员使用 AI 助手在同步会话中进行协作。**** 在会话期间做出的决策未被跟踪,除非提交,否则会随着时间的推移而丢失。**** 虽然助手帮助编写代码,但开发人员仍有很多人工步骤要做:创建分支、编写提交信息、推送更改、打开 PR、编写 PR 说明、进行评审、在 IDE 中迭代和重复。 对于简单或常规问题而言,这些步骤耗费的时间和精力可能难以证明其合理性。
-
通过 Copilot 云代理,所有编码与迭代均在 GitHub 上进行。 在打开拉取请求之前,可以要求Copilot研究存储库、创建计划并在分支上进行更改代码。 可以创建专门处理不同类型任务的多个 自定义代理。 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 云代理研究、计划和迭代代码更改”。
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 不会忽略这些文件,并且将能够查看和更新这些文件。 请参阅“从 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)