文档

自动化任务

无需每次人工触发即可启动的工作,可按照预设时间或事件触发,并可在对应位置查看相关记录。

每次无需人工触发,自动化任务即可自动开始运行。它会按照预定时间执行,或在特定事件发生时启动:比如 pull request 被打开、工单被提交、检查或部署失败。

所有自动化任务都会列在工厂的“自动化任务”栏目下,标注其触发条件和执行内容。可在“新任务”中创建自动化任务:选择“自动化”,然后设定其运行时间。

  • 定时执行时间
  • 事件自动化某事件发生时

普通任务

规格说明、计划、构建、验证、评审。它会占用一个代理槽位;请为其设定较低的优先级。

P2P3

一份 pull request

它无法自行合并或提交到您的基础分支。

由您审批

自动化仅在于触发方式不同。它开启的仍是常规路径上的普通任务,因此会占用实际产能,最终生成您可审批的pull request。

两种触发类型

触发条件运行记录示例
定时执行在指定时间、按固定间隔执行,或立即运行一次。每小时向Sentry请求新错误,并为每个错误创建对应工单。
特定事件触发当 GitHub 或 Coroid 发送对应事件时触发。审核项目中打开的每个 pull request。

如果触发条件确实与时间相关,或者需要监控的对象位于无法发送 Coroid 事件的外部系统(如Sentry或Jira),则应选择定时执行方式。此时需通过你的MCP服务器向该系统发起请求。MCP服务器并针对找到的内容创建相应工作项。详见日程安排。

如果 Coroid 能在事件发生时即时通知,则应选择事件触发方式。这种方式比持续轮询的定时任务更不会做无用功。

在“新任务”中可选择的事件类型

来自 GitHub,需要安装GitHub 应用:

  • pull request 被打开、更新或合并时。
  • 工单被打开时。
  • 评论中提及 Coroid;仅当评论作者对该代码库有写入权限时才生效。

来自 Coroid:

  • 任务、计划、质量检查、部署或部署健康检查失败时。
  • 版本被回滚时。

Slack和Telegram消息、新的Jira工单以及自有系统触发的事件,都需要通过过滤器或服务账号来处理。可从“设置”中的“自动化任务”模板开始创建,或在编辑器内修改自动化任务的事件类型。详见钩子。

自动化任务的执行内容

事件触发后,自动化任务会执行以下三种操作之一:

  • 审核对应的 pull request。Coroid Check会对其进行审核,并将审核结果发布到 GitHub 上,同时附上发现问题的代码行注释,以及名为 Coroid Review 的检查任务。该功能适用于已打开或更新的拉取请求。
  • 将其转换为工作任务。该事件会被记录为请求。一旦通过资格审核,Coroid 就会创建对应任务或计划。该功能适用于工单以及提及 Coroid 的评论。
  • 按照指令执行。智能体将按照你撰写的指令执行,仅拥有只读权限,可创建任务。该功能适用于所有类型的事件。

这些操作均不会直接修改你的代码。自动化任务创建的工作内容,会与其他任务一样经历相同的规格制定、规划、构建、验证和审核流程,最终由你批准生成 pull request。

审核每个 pull request

若要让 Coroid 审核他人提交的拉取请求,而非仅审核自身生成的请求:

  1. 打开“新任务”并选择“自动化”。
  2. 选择对应项目,若留空则覆盖所有项目。
  3. 在“触发条件”下选择“特定事件触发”,在“事件”栏中选择“拉取请求被打开”,然后选择“审核对应的 pull request”。
  4. 为其设定标题和简要说明,然后继续操作。

该自动化任务会审核该项目下每个新创建的 pull request 及其更新内容。对应的代码库需安装 GitHub 应用,且项目不能设置为仅本地使用。来自 Coroid 自身任务的拉取请求不会被重复审核:其审核流程已包含在任务中。

你也可以在“质量检查”中为该项目开启拉取请求审核功能。如此一来,该项目的所有 pull request 也会执行对应检查,Coroid Check会作为同一流程的一部分对其审核。

查看自动化任务运行情况

在工厂中打开对应自动化任务,即可查看每次运行的时间、消耗资源、创建的内容以及运行中断的原因。所有者和管理员可在此暂停、测试、编辑或删除该任务。组织内的所有人员都能查看自动化任务及其运行记录。

保持自动化任务的实用性

自动化任务创建的工作内容,会与其它任务共享相同的智能体资源。频繁触发的自动化任务可能会悄悄耗尽你的系统容量。

  1. 应将其优先级设为低于人工提交的任务。 P2或P3。
  2. 细化触发条件。“某检查失败”会在繁忙的代码库中频繁触发,而“该检查在基准分支上失败”则仅在确实存在问题时才会触发。
  3. 查看其产出结果。如果某自动化任务创建了二十个任务,但你仅合并了两个,那么它产生的只是噪音和资源浪费,而非实际价值。

衡量自动化任务实效的可靠标准,是其创建的任务中被合并的比例,而非其触发频率。

Sentinel

早期版本的文档中曾提到Sentinel,它是一种用于监控特定条件的工具。它并非独立功能。所谓条件,要么是自动化任务可响应的事件,要么是定时任务会检查的内容。