> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 自动化

> 设置事件驱动的工作流程，自动触发 Devin 会话

自动化功能可将外部事件——如 Slack 消息、GitHub webhook、Linear 工单更新、计划任务以及自定义 webhook——接入会自动启动的 Devin 会话。这样一来，你不必在每次报告 bug 或 CI check 失败时都手动 @ Devin；只需定义一次触发条件，Devin 就会在每次事件发生时自动处理。

<div id="core-concepts">
  ## 核心概念
</div>

一个自动化由三个部分组成：

| 部分         | 作用                                                                    |
| ---------- | --------------------------------------------------------------------- |
| **触发器**    | 触发自动化运行的事件 (例如 `#bugs` 中的一条 Slack 消息、一次 GitHub CI 失败，或一次 Linear 标签变更) |
| **条件**     | 用于收窄触发范围的可选筛选条件 (例如仅当标签为 `bug` 时触发，或仅针对特定仓库)                          |
| **action** | 触发后 Devin 要执行的内容——启动新会话、向现有会话发送消息，或充当分流监控器                            |

<div id="action-types">
  ### 操作类型
</div>

| 操作                     | 说明                                                                                                                |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Start session**      | 使用你定义的提示创建一个新的 Devin 会话。事件负载会自动作为上下文包含其中。                                                                         |
| **Message session**    | 向现有的长期运行的 Devin 会话发送消息——适合将事件发送到可保持状态的会话中。                                                                        |
| **Triage Devin**       | 一个持续运行的 Devin，用于监控 Slack 频道。它会查看每一条传入消息，判断哪些需要处理，并为需要调查的事项启动子 Devin。详情请参阅 [自动分流](/zh/product-guides/auto-triage)。 |
| **Email notification** | 自动化运行时向你发送电子邮件——可设置为每次运行都发送、仅在失败时发送，或仅在成功时发送。                                                                     |

<div id="trigger-sources">
  ### 触发源
</div>

| 来源          | 事件类型                                  | 示例用例                                                             |
| ----------- | ------------------------------------- | ---------------------------------------------------------------- |
| **Slack**   | 新消息、添加表情回应                            | 在 `#incidents` 中对 bug 报告进行分流，通过添加 🚨 表情回应来启动调查                   |
| **GitHub**  | Issue 评论、PR 打开/更新、PR 审查、检查运行 (CI) 、推送 | 自动修复 CI 失败，响应 issue 中的 `/devin` 评论                               |
| **Linear**  | Issue 已创建、已添加标签、状态已更改、优先级已更改、已分配      | 在添加标签时对 bugs 进行分流，在工单分配给 Devin 时进行处理                             |
| **计划**      | 周期性 (基于 cron)                         | 每日 Sentry 错误扫描、每周依赖更新、夜间冒烟测试                                     |
| **Webhook** | 传入 HTTP 请求                            | 通过 webhook URL 将任何外部系统 (PagerDuty、Datadog、Sentry、自定义工具) 接入 Devin |

单个自动化可以有**多个触发器**——它们按 OR 逻辑生效，因此当任一触发器匹配时，自动化就会触发。例如，你可以创建一个同时在 GitHub CI 失败和 Slack 表情回应时触发的自动化。

<div id="creating-an-automation">
  ## 创建自动化
</div>

<div id="from-the-automations-page">
  ### 在 **自动化** 页面中
</div>

1. 在侧边栏中打开 **自动化**
2. 点击 **Create automation** (或在聊天输入框中用自然语言描述你的需求——Devin 会为你生成自动化配置)
3. 配置触发器、条件和 action
4. 点击 **Save**

<div id="from-a-template">
  ### 从模板开始
</div>

1. 在侧边栏中前往 **自动化**
2. 点击 **Featured automations** 框右上角的 **查看所有示例**
3. 浏览模板库——每个模板都是针对常见工作流程预先配置的自动化
4. 点击某个模板，即可用其触发器、action 和建议值预填充编辑器
5. 自定义配置 (例如选择你的 Slack 频道或 repo) 并保存

<div id="using-natural-language">
  ### 使用自然语言
</div>

在自动化页面上，你可以在底部的聊天输入框中描述你的需求——例如：“当 my-org/my-repo 上的某个 CI 检查失败时，让 Devin 修复它并推送到同一分支。”Devin 会为你生成自动化配置，你可以查看并保存。

<div id="configuring-triggers">
  ## 配置触发器
</div>

<div id="slack-triggers">
  ### Slack 触发器
</div>

当在已邀请 Devin 加入的频道中发布消息，或在其中添加表情回应时，Slack 触发器就会触发。

* **Slack 消息**：在特定频道中有新消息时触发。配置触发器时，你必须选择该频道。
* **Slack 表情回应**：当消息被添加特定的 emoji 表情回应时触发 (例如，用于事件的 🚨) 。你可以按表情回应名称和频道进行筛选。

<Note>要使触发器生效，必须先邀请 Devin 加入相应的 Slack 频道。你还必须在 **Settings > 连接 > Slack** 中连接你的个人 Slack 账户。</Note>

<div id="github-triggers">
  ### GitHub 触发器
</div>

GitHub 触发器会在代码仓库事件发生时触发。你必须为每个触发器选择一个特定的代码仓库。

* **Issue comment**：当有人在 GitHub issue 中发表评论时触发。通常会搭配 `starts_with "/devin"` 条件使用，这样用户就可以在任意 issue 中输入 `/devin` 来触发 Devin。
* **Pull request**：在 PR 事件 (如打开、同步等) 发生时触发。
* **Pull request review**：当有人在 PR 上提交评审时触发。
* **Pull request review comment**：在单条评审评论产生时触发。
* **Check run (CI)**：当 CI 检查完成时触发。可按 `conclusion = failure` 筛选，以自动修复失败的构建。
* **Push**：当代码被推送到某个分支时触发。

<Note>出于安全原因，GitHub 自动化仅适用于私有代码仓库。</Note>

<div id="linear-triggers">
  ### Linear 触发器
</div>

Linear 触发器会在你已连接的 Linear 工作区中发生问题事件时触发。你必须为每个触发器选择一个团队。

* **问题已创建**：在所选团队中创建新问题时触发。
* **标签已添加**：当某个标签被添加到问题时触发 (例如 `bug`、`devin`) 。
* **状态已更改**：当问题的状态发生变化时触发 (例如移至“进行中”) 。
* **优先级已更改**：当问题的优先级发生变化时触发。
* **已分配**：当问题被分配给某人时触发。

<div id="schedule-triggers">
  ### 计划触发器
</div>

计划触发器会按照标准的重复规则定期触发。

* **周期性**：设置频率 (每小时、每天、每周) 和时间。计划在底层采用 iCalendar RRULE 格式。

<Tip>时间会按你的本地时区显示，但内部以 UTC 存储。</Tip>

<div id="webhook-triggers">
  ### Webhook 触发器
</div>

Webhook 触发器可让你通过唯一的 HTTPS 端点将任何外部系统连接到 Devin。

1. 创建一个使用 **Webhook** 触发器的自动化
2. 保存后，从自动化详情页复制 webhook URL 和密钥
3. 配置你的外部系统 (PagerDuty、Datadog、Sentry 或任何自定义工具) ，使其向该 URL 发送 HTTP POST 请求
4. 可选添加 **payload filter**——即一个正则表达式模式；只有当请求正文匹配该模式时，自动化才会触发

Webhook payload 会作为上下文包含在 Devin 会话的提示中。超过 200 KB 的 payload 会被自动截断。

<div id="configuring-actions">
  ## 配置 actions
</div>

<div id="start-session">
  ### 启动会话
</div>

这是最常见的action。触发器触发时，Devin 会根据你的提示启动一个新会话。事件负载 (例如 Slack 消息文本、GitHub webhook 请求体，或 Linear 工单详情) 会自动附加到提示中，以便 Devin 获得完整上下文。

选项：

* **提示**：Devin 会遵循的指示。像编写普通的 Devin 提示一样编写即可。
* **Playbook** (可选) ：在你的提示中使用 `@playbook-name`，即可包含一个 [playbook](/zh/product-guides/using-playbooks) 来提供额外指示。
* **标签** (可选) ：为此自动化创建的会话添加标签，便于筛选。

<div id="message-session">
  ### 向会话发送消息
</div>

向现有的长期运行的 Devin 会话发送消息。当你希望使用同一个持久会话持续处理事件，而不是为每个事件都创建新会话时，这一方式很有用。

配置此 action 时，你必须选择目标会话。

<div id="triage-devin-monitor">
  ### 分流 Devin (监控)
</div>

创建一个持续运行的 Devin 会话，用于监控 Slack 频道。有关此action类型的完整说明，请参阅[自动分流指南](/zh/product-guides/auto-triage)。

<div id="email-notification">
  ### 电子邮件通知
</div>

在自动化运行时发送电子邮件通知。选择接收通知的时机：

* **始终** — 每次触发时
* **失败时** — 仅当会话失败或出错时
* **成功时** — 仅当会话成功完成时

<div id="limits-and-safeguards">
  ## 限制与防护措施
</div>

自动化功能内置了控制机制，可防止用量失控：

<div id="acu-limit">
  ### ACU 限制
</div>

为此自动化启动的每个会话设置最高 ACU (Agent Compute Unit) 预算。如果 Devin 达到该限制，会话将停止。这可以防止单次调用消耗过多资源。

<div id="invocation-limit">
  ### 触发次数限制
</div>

设置自动化在一定时间窗口内可触发的次数上限。例如，“每小时最多触发 10 次”可防止嘈杂的 Slack 频道 或接连出现的 CI 失败引发数十个会话。

这两个字段均为可选项——如果不设置，自动化将不受限制地运行。

<div id="network-policy">
  ### 网络策略
</div>

你可以启用网络策略，以限制自动化会话可访问的外部主机。这对于处理不可信用户输入 (例如 Slack 消息、webhook 请求负载) 的自动化尤为重要。如果 Devin 需要访问外部服务，你可以将特定域名添加到允许列表中。

<div id="mcp-integrations">
  ## MCP 集成
</div>

<Tip>强烈建议连接 MCP 集成——它们能让 Devin 访问日志、指标和错误详情等运行时数据，从而显著提升自动化的效果。</Tip>

自动化会与 [MCP 集成](/zh/work-with-devin/mcp) 配合使用，让 Devin 能够访问外部工具。创建自动化时，**连接** 部分会显示推荐的 MCP 服务器及其连接状态。

例如，"Daily Sentry Error Fixes" 模板会推荐 Sentry MCP，以便 Devin 查询 Sentry 中尚未解决的错误。"Datadog Alert Investigation" 模板会推荐 Datadog MCP，用于提取指标和追踪数据。

在创建需要这些 MCP 服务器的自动化之前，请先在 **设置 > 连接 > MCP 服务器** 中启用它们。

<div id="slack-tool-access">
  ## Slack 工具访问权限
</div>

默认情况下，自动化会话可以读取和写入触发条件中涉及的 Slack 频道。你可以在自动化编辑器的 **Slack 工具** 部分为其他 Slack 频道授予访问权限。当 Devin 需要读取触发自动化的频道之外的多个频道时，这一设置会很有帮助。

<div id="activity-and-monitoring">
  ## 活动与监控
</div>

每个自动化都会记录其调用历史。在自动化详情页面中，**Activity** 选项卡会显示：

* 最近的调用及其时间戳
* 每次调用是成功还是被跳过
* 已创建的 Devin 会话链接
* 调用失败时的错误消息

自动化列表页面会为每个自动化显示一条迷你趋势图，让你直观了解过去 30 天的活动情况。

<div id="enabling-and-disabling">
  ## 启用和禁用
</div>

您可以随时在自动化列表或详情页面中启用或禁用自动化。已禁用的自动化将停止处理事件，但会保留其配置。重新启用后，将立即恢复事件处理。

<div id="templates">
  ## 模板
</div>

Devin 包含一个适用于常见工作流程的预构建自动化模板库：

| 模板                                  | 类别    | 功能                                      |
| ----------------------------------- | ----- | --------------------------------------- |
| 在 Slack 上分流 bug 报告                  | 监控    | 监控 Slack 频道，并自动分流传入的 bug 报告             |
| Daily Sentry Error Fixes            | 监控    | 每日拉取排名靠前的未解决 Sentry 错误，并创建修复 PR         |
| Datadog Alert Investigation         | 监控    | 调查发布到 Slack 的 Datadog 告警，并回复根因分析        |
| Daily Health Digest                 | 监控    | 每日扫描 Datadog，并将健康摘要发布到 Slack            |
| Stripe Failed Payment Investigation | 监控    | 通过 Stripe MCP 调查 Slack 中的失败支付告警         |
| 每周分析健康检查                            | 监控    | 每周检查 Metabase 仪表板中的失效查询和异常              |
| CI 失败修复                             | CI/CD | 自动修复 PR 中失败的 CI 检查                      |
| /devin Issue 修复                     | CI/CD | 响应 GitHub issue 中的 `/devin` 评论，并创建修复 PR |
| CircleCI 失败修复                       | CI/CD | 在构建失败时拉取 CircleCI 构建日志并推送修复             |
| 客户支持分流                              | 分流    | 为 Slack 中的支持消息起草回复                      |
| Jira Ticket to PR                   | 分流    | 实现发布在 Slack 中的 Jira 工单并创建 PR            |
| Jam Bug Report Investigation        | 分流    | 调查在 Slack 中分享的 Jam 录制内容                 |
| 夜间 QA 与冒烟测试                         | 维护    | 每晚运行 E2E 测试，并为回归问题创建工单                  |
| Weekly Dependency Updates           | 维护    | 扫描过时的软件包并创建更新 PR                        |
| 每周更新日志                              | 维护    | 将已合并的 PR 汇编为分类变更日志                      |
| 陈旧 PR 清理                            | 维护    | 标记最近无活动的 PR，并检查是否存在合并冲突                 |
| Security Vulnerability Scan         | 维护    | 每周执行 CVE 扫描，并为严重漏洞创建修复 PR               |
| Cloudflare 安全审计                     | 维护    | 每周审查 Cloudflare audit logs，查找可疑活动       |
| 每周状态摘要同步到 Notion                    | 项目管理  | 将每周进展汇编成 Notion 状态更新                    |
| Asana Sprint Progress Report        | 项目管理  | 每日将 Asana 的站会摘要发布到 Slack                |
| PR 上的 Figma 设计审查                    | 代码质量  | 在 PR 中将 UI 变更与 Figma 设计进行对比             |
| SonarQube 质量门禁修复                    | 代码质量  | 修复失败的 CI 检查中的 SonarQube 质量门禁违规          |
| 依赖漏洞扫描器                             | 安全    | 每日执行 CVE 扫描，并按严重程度优先创建修复 PR             |
| 密钥扫描器                               | 安全    | 每日扫描泄露的凭据和硬编码的 secrets，并创建修复 PR         |
| 代码模式规范器                             | 安全    | 将你的 repo 与黄金参考 repo 进行比较，并创建对齐 PR       |
| SRE Health Checker                  | 安全    | 每周扫描已弃用的 API、缺失的错误处理以及可靠性缺口             |
| OWASP 安全加固                          | 安全    | 每周扫描 OWASP Top 10 漏洞，并创建修复 PR           |

要浏览所有模板，请在 Devin 应用中打开 **自动化** 页面，然后点击聊天输入框上方 “Featured automations” 旁边的 **查看所有示例** (或直接前往 `/automations/templates`) 。
