每次无需人工触发,自动化任务即可自动开始运行。它会按照预定时间执行,或在特定事件发生时启动:比如 pull request 被打开、工单被提交、检查或部署失败。
所有自动化任务都会列在工厂的“自动化任务”栏目下,标注其触发条件和执行内容。可在“新任务”中创建自动化任务:选择“自动化”,然后设定其运行时间。
- 定时执行时间
- 事件自动化某事件发生时
普通任务
规格说明、计划、构建、验证、评审。它会占用一个代理槽位;请为其设定较低的优先级。
P2P3一份 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 审核他人提交的拉取请求,而非仅审核自身生成的请求:
- 打开“新任务”并选择“自动化”。
- 选择对应项目,若留空则覆盖所有项目。
- 在“触发条件”下选择“特定事件触发”,在“事件”栏中选择“拉取请求被打开”,然后选择“审核对应的 pull request”。
- 为其设定标题和简要说明,然后继续操作。
该自动化任务会审核该项目下每个新创建的 pull request 及其更新内容。对应的代码库需安装 GitHub 应用,且项目不能设置为仅本地使用。来自 Coroid 自身任务的拉取请求不会被重复审核:其审核流程已包含在任务中。
你也可以在“质量检查”中为该项目开启拉取请求审核功能。如此一来,该项目的所有 pull request 也会执行对应检查,Coroid Check会作为同一流程的一部分对其审核。
查看自动化任务运行情况
在工厂中打开对应自动化任务,即可查看每次运行的时间、消耗资源、创建的内容以及运行中断的原因。所有者和管理员可在此暂停、测试、编辑或删除该任务。组织内的所有人员都能查看自动化任务及其运行记录。
保持自动化任务的实用性
自动化任务创建的工作内容,会与其它任务共享相同的智能体资源。频繁触发的自动化任务可能会悄悄耗尽你的系统容量。
- 应将其优先级设为低于人工提交的任务。
P2或P3。 - 细化触发条件。“某检查失败”会在繁忙的代码库中频繁触发,而“该检查在基准分支上失败”则仅在确实存在问题时才会触发。
- 查看其产出结果。如果某自动化任务创建了二十个任务,但你仅合并了两个,那么它产生的只是噪音和资源浪费,而非实际价值。
衡量自动化任务实效的可靠标准,是其创建的任务中被合并的比例,而非其触发频率。
Sentinel
早期版本的文档中曾提到Sentinel,它是一种用于监控特定条件的工具。它并非独立功能。所谓条件,要么是自动化任务可响应的事件,要么是定时任务会检查的内容。