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 配置,包括:
- 自定义说明。 请参阅“为GitHub Copilot添加存储库自定义说明”。
- 代理技能。 请参阅“为 GitHub Copilot 添加代理技能”。
- 防火墙规则。 请参阅“自定义或禁用GitHub Copilot的防火墙”。
- 机密和变量。 请参阅“为 Copilot 云代理配置机密和变量”。
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 云代理的风险和缓解措施。
延伸阅读
- 使用 Copilot 云代理创建自动化
- GitHub.com 和 GitHub Mobile 上的GitHub Copilot
- 若要了解如何将自动化存储为代码、通过拉取请求查看或使用不同的编码代理运行它,请参阅 GitHub代理工作流