Skip to main content
Skip to content

Copilot自动化

Automations 让您可以按计划自动运行 Copilot cloud agent、响应存储库中的事件运行它,或通过 API 以编程方式运行它。

谁可以使用此功能?

Automations可用于GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Max、GitHub Copilot Business和GitHub Copilot Enterprise计划。 Automations 仅在专用存储库和内部存储库中可用。 在已被存储库管理员禁用、由 托管用户帐户 拥有的存储库中,或在未启用 Copilot cloud agent 的存储库中,它们不可用。
Sign up for Copilot

Overview

使用 automations,可以设置 Copilot cloud agent 自动运行,可按计划执行、响应存储库中的事件,或通过 API 触发。 Automations 可以在其配置所在的仓库中执行操作,例如发起拉取请求或为议题添加标签。

定义提示一次,选择触发器并决定 Copilot 可以使用哪些工具。 Copilot 每当 automation 的触发器被触发时,都会自动运行自动化。

例如,您可以使用 automations 来:

  • 重现 bug:尝试在问题创建时重现已报告的 bug。
  • 捕获用于审阅的屏幕截图:捕获更改的屏幕截图,并在拉取请求被标记为可供审阅时将其附加到拉取请求。
  • 调查生产事故:在监视工具检测到事故时开始调查事故。

还可以通过以下方法创建和管理 automations :

  • GitHub 上某个仓库的“代理”选项卡
  • 位于 GitHub Copilot app 中的 Automations 选项卡
  • VS Code 中的 “代理” 窗口
  • REST API

创建 automation时,定义:

  • 用于标识 **** 的automation。
  • 一种类型,可为个人或共享,用于确定谁可以查看和编辑automation、向谁计费以及使用谁的身份。 请参阅 个人和共享 automations。
  • 描述你希望**** 执行的任务的Copilot。
  • 用于确定automation**** 何时运行。
  • 这些工具Copilot可以使用,用于控制可在存储库中执行的操作。
  • (可选)使用 模型 和 推理级别Copilot。
  • (可选)AI credits限制,用于控制automation可消耗的AI credits数量。

可以将automations添加到automation groups,它们共享上下文,并可根据结果提出自我改进建议。

有关创建和管理 automations的说明,请参阅 使用 Copilot 云代理创建自动化。

可用性和权限

若要 automations 在存储库中可用,以下所有内容都必须为 true:

  • 存储库必须是 专用存储库或内部存储库。 Automations 在公共存储库中不可用。
  • 必须为该存储库启用 Copilot cloud agent。 如果您拥有 Copilot Business 或 Copilot Enterprise,则管理员必须启用 Copilot cloud agent 策略。 请参阅“为企业或组织管理云中的GitHub Copilot”。
  • 组织必须在存储库中同时允许 Copilot cloud agent 和 automations(二者默认均处于启用状态)。 请参阅“在云中管理组织的GitHub Copilot”。

Automations可用于GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Max、GitHub Copilot Business和GitHub Copilot Enterprise计划。

对存储库具有 写入访问权限 的任何用户都可以在该存储库中创建 automations 。

可以从以下方法创建和管理 automations :

  • 在 **** 上某个仓库的 GitHub 选项卡中,位于 Automations 窗格内。
  • Automations中的GitHub Copilot app选项卡。
  • VS Code中Agents窗口里的Automations 选项卡。

VS Code 中的云 automations 需要 1.144 或更高版本,并且必须启用 chat.automations.cloud.enabled 设置。

个人和共享 automations

创建 automation 时,可以选择其类型,但之后无法更改。

  • 个人代理 automations 对于为自己自动化处理工作非常有用,例如准备你的站会更新。
  • 共享 automations 让团队一起构建和维护 automations,以自动执行整个团队的工作流。
个人共享
谁可以看到automation内容只有你对存储库具有读取访问权限的每个人
谁可以查看automation的运行记录对存储库具有读取访问权限的每个人对存储库具有读取访问权限的每个人
谁可以编辑 automation?只有你对存储库具有写入访问权限的每个人
谁会被收费 AI credits你拥有存储库的组织或用户
用于在GitHub上执行操作的标识你的身份Copilot的身份

由于共享 automation 属于存储库,而不是创建它的人员,因此如果该人员离开团队或失去对存储库的访问权限,则它将继续工作。

若要在组织拥有的存储库中运行共享 automation,组织必须允许将 Copilot cloud agent 的使用量计费给该组织。 管理员可以使用“允许使用由组织计费的 Copilot cloud agent”策略启用此功能。

触发器

当其某个触发器被触发时,automation 就会执行。 可以使用各种触发器,包括:

  • 按计划:按 automation 定期间隔(每小时、每天或每周)运行。
  • 创建问题时:automation 会在每次在仓库中创建问题时运行。
  • 创建拉取请求时:automation 会在存储库中每次创建拉取请求时运行。
  • 当拉取请求同步时:每次在存储库中将新提交推送到拉取请求时,automation 都会运行。

可以选择为基于事件的触发器配置筛选器,例如:

  • 对于 何时创建问题,请添加搜索查询筛选器。
  • 对于 打开拉取请求时 以及 同步拉取请求时 这两种情况,请添加搜索查询筛选条件,以及针对拉取请求中已更改文件的筛选条件。

若要降低提示注入的风险,automations 默认情况下忽略由没有存储库写入权限的用户触发的事件。 这有助于防止不受信任的用户导致Copilot采取措施,例如,当外部参与者创建议题时。 如果需要,您可以选择允许这些事件。 有关详细信息,请参阅 安全和安全。

所有 automations 都可以通过 API 触发,使你能够将 automations 连接到外部系统和工具。 通过 API 启动 automation 时,可以包含会传入提示词的额外上下文。

工具和操作

你在创建**** 时选择的automation,决定了Copilot运行时automation可以执行哪些操作。

例如,可以允许 Copilot 推送更改、更新问题标签或创建拉取请求。

可以从两种类型的工具中进行选择:

  • GitHub 工具,可让 Copilot 在 GitHub 上处理您的存储库。 例如,GitHub 工具可让 Copilot 执行以下操作:

    • 上传附件
    • 隐藏和取消隐藏批注和审阅
    • 添加和删除回应
    • 阅读讨论及其评论,并评论讨论
  • 来自 MCP 服务器的工具,使 Copilot 能够与外部系统交互。 automation 可以使用存储库的 MCP 设置中配置的 MCP 服务器中的工具。 选择 automation 可以使用的每个服务器中的哪个工具。 请参阅“为存储库配置 MCP 服务器”。

选择工具是控制 automation 范围的主要方式。 仅授予任务所需的工具,以便 Copilot 无法执行你不打算执行的操作。

可以手动选择要启用的工具,也可以使用 **** 上的 GitHub 按钮,让 Copilot 根据你的提示建议工具。

GitHub 工具只能在 automation 所限定的单个存储库中执行操作。 MCP 服务器中的工具不限于该存储库:这些工具可以访问服务器配置和凭据允许的任何内容,其中可能包括其他存储库和外部系统。 在选择其工具之前,请查看每个 MCP 服务器可以访问的内容。

从存储库继承的配置

Automations 使用其作用域所属存储库的 Copilot cloud agent 配置,包括:

Automations 与存储库的内容分开存储。 它们不会提交到 Git 仓库,因此既不会与你的代码一同进行版本控制,也不会通过拉取请求来管理。

Billing

每次 automation 运行时,它都会启动一个使用 GitHub AI Credits 和 GitHub Actions 分钟的 Copilot cloud agent 会话。

对于个人 automation, AI credits 使用情况将按创建 automation的用户计费。

对于共享的 automation,AI credits 使用情况将向拥有存储库的组织计费,或者,如果个人帐户拥有该存储库,则向存储库所有者的 Copilot 订阅计费。 有关详细信息,请参阅 GitHub Copilot许可证 和 GitHub Actions计费。

GitHub Actions 分钟将单独向存储库所有者计费。

使用 AI credits 限制控制成本

可以设置automation可消耗的AI credits数量限制。 这样,便可以在控制使用情况的同时自动执行重复性工作。

可以在 AI credits 中设置以下可选限制。 如果不想设置限制,请将限制留空。

  • 每次运行:一旦达到限制,就会停止此次运行。 最小值为 30 AI credits。
  • 每日:防止在达到限制后启动新的运行。 每天在 00:00 UTC 重置。
  • 每周:阻止新运行在达到限制后启动。 每周一 00:00 UTC 重置一次。
  • 每月:防止新运行在达到限制后启动。 于每月第一天 00:00 UTC 重置。

每日、每周和每月限制不会停止正在进行的运行。 若要限制每个运行的成本,请设置每次运行上限。

创建或更新 automation时,可以设置限制。 请参阅“使用 Copilot 云代理创建自动化”。

建议的改进

Automations 可以建议对其自己的工具、触发器和提示以及其他 automations工具、触发器和提示进行改进。

Automations 在工作时遇到问题(例如缺少工具)时,可能会建议改进。

当你使用Copilot创建automations时,automation groups可以帮助你创建能够自我改进的Copilot,其中一些automations负责执行工作,另一些则评估结果,并持续提出改进建议。

automation提出改进后,你将收到一条通知,并在查看automation时看到该建议。

你将看到建议改进的说明以及将应用到 automation group 的更改。 你可以决定是应用建议的改进,还是不采纳该建议。

安全和安全

Automations 无需由人工发起每项任务即可运行 Copilot,因此会带来一些额外的风险。 GitHub 提供内置保护来帮助缓解这些风险。

  • 归 因。
    • 在GitHub上由共享automation执行的操作归因于Copilot。 如果存储库至少需要一个拉取请求审批,则默认情况下,由共享 automation 创建的拉取请求需要额外的审批。 管理员可以在规则集中禁用此额外要求,但不能在分支保护规则中禁用此额外要求。
    • 个人 automation 执行的操作归因于创建该 automation 的用户。 与用户自行创建的拉取请求一样,他们无法批准这些拉取请求,从而保留了预期的评审控制机制。
  • 最小权限工具。 你可以准确选择可以使用的工具 automation ,因此你可以将其限制为仅任务所需的操作。
  • 不受信任的输入。 默认情况下, automations 忽略不具有存储库写入访问权限的用户触发的事件,以减少不受信任的用户出现提示注入的风险。
  • 工作流运行情况。 默认情况下,与所有 Copilot cloud agent 工作一样,在具有写入访问权限的用户批准这些工作流之前,GitHub Actions 工作流不会在拉取请求上运行。 这可降低由 automation 发起的拉取请求自动触发工作流的风险。
  • 透明运行过程。 Copilot cloud agent由任何automation(个人或共享)启动的会话对具有存储库读取权限的所有人都可见。 任何可以查看这些会话的人都可以看到提示内容、会话日志,以及 Copilot 创建的任何拉取请求或其他更改。

有关如何GitHub缓解Copilot cloud agent风险的详细信息,请参阅GitHub Copilot 云代理的风险和缓解措施。

延伸阅读