Skip to Content
四. 高级特性19 · Automations 自动化

19 · Automations 自动化

把 AI 从”等你发指令才做事”升级为”问题发生就自动处理”——事件驱动的永不停机 Agent。


01 Automations 是什么

Automations 是 Cursor v2.6+ 引入的事件驱动、始终在线的 Agent 系统。它和 Hooks 的本质区别在于:

  • Hooks 是”反应式”的——在 AI 操作的前后触发简短脚本
  • Automations 是”主动式”的——绑定到外部事件(GitHub PR、Slack 消息、PagerDuty 告警、Cron 定时),自动启动一个完整的 Agent 会话,像工程师一样独立完成任务

通俗理解:Hooks 像门口的警卫——事件来了就喊一声或做个小动作;Automations 像值班工程师——看到警报就坐下排查问题、修代码、提交 PR、通知团队。

维度HooksAutomations
触发源Cursor 内部事件(工具调用前后)外部事件(GitHub/Slack/Linear/PagerDuty/Cron)
运行模式脚本执行,毫秒级完成Agent 会话,秒到分钟级
能力边界执行预写脚本,逻辑固定完整的 AI Agent,可推理、可决策、可写代码
是否需要人类不需要部分场景需要人工审批
会话时长单次脚本完整的 Agent 对话周期

02 核心概念与心智模型

心智模型:自动化值班员

把你的本地 Cursor 想象成一个值班室。Automations 就是值班工程师——他们不是坐在那里等你打电话,而是在各个渠道巡视:

  • GitHub PR 开了 → 自动去看代码、写 review
  • CI 挂了 → 自动排查日志、尝试修复、提交 fix PR
  • 每天上午 10 点 → 自动生成项目状态报告
  • 收到 Slack 消息 → 识别意图并执行对应操作

Three Musketeers:Automations 的三角色

Automations 由三个核心角色构成:

  1. Trigger(触发器):确定”何时启动”——事件来了、时间到了、Webhook 收到了
  2. Agent(执行 Agent):确定”做什么”——一个完整的 Cursor Agent,有上下文、有工具、能推理
  3. Review(审批/校验):确定”是否放行”——安全闸门,防止自动化操作造成破坏

这三个角色组合在一起,就构成了一个完整的 Automation。


03 支持的触发器(Triggers)

Automations 支持以下触发器类型:

GitHub PR 触发器

当仓库中的 PR 发生指定事件时触发:

Trigger: GitHub PR Events: opened, synchronize (新提交), labeled, review_requested, merged, closed

典型场景:有新 PR → 自动 Code Review。

Slack Webhook 触发器

通过 Slack 发送消息到指定频道触发:

Trigger: Slack Webhook 格式: /cursor trigger <automation-name> [参数]

典型场景:在 Slack 中 @cursor 让它执行某个自动化任务。

Linear 触发器

当 Linear 问题(Issue)状态变更时触发:

Trigger: Linear Issue Events: created, status_changed, assigned, commented

典型场景:Bug 状态变为 “In Progress” → 自动拉到本地分析源码。

PagerDuty 触发器

当 PagerDuty 产生告警时触发:

Trigger: PagerDuty Incident Events: triggered, acknowledged, resolved

典型场景:线上服务告警 → 自动拉取相关日志和代码进行分析。

Cron 定时触发器

按 Cron 表达式定时执行:

Trigger: Cron Schedule: "0 10 * * 1-5" (工作日上午10点)

典型场景:每天早上生成前一天的代码变更报告。

触发器比较

触发器最佳场景实时性配置复杂度
GitHub PRCode Review、CI 修复低(OAuth 授权)
Slack Webhook按需执行、团队协作低(Bot Token)
Linear项目管理联动中(API Key)
PagerDuty线上事故处理中(API Key)
Cron定时任务、报告生成定时

04 配置 Automations

配置文件

Automations 在 .cursor/automations.yaml 中定义:

automations: # 自动化 1: PR Code Review - name: auto-review-pr description: 自动 Review 新提交的 PR trigger: type: github_pr events: [opened, synchronize] agent: model: claude-sonnet-4-20250514 instructions: | 你是一个代码审查者。当收到 PR 时: 1. 阅读 PR 描述和 diff 2. 检查:逻辑正确性、边界情况、安全漏洞、性能问题 3. 对每处问题给出具体修改建议 4. 使用 GitHub API 以 review 评论形式提交反馈 tools: [read, edit, bash] review: require_approval: false # review 评论不需要人工审批 # 自动化 2: CI 自动修复 - name: auto-fix-ci description: CI 失败时自动分析和修复 trigger: type: github_pr events: [opened, synchronize] conditions: - check: 'check_run.conclusion == "failure"' agent: model: claude-sonnet-4-20250514 instructions: | 当 CI 检查失败时: 1. 读取 CI 日志,找到失败原因 2. 定位到相关的源码文件 3. 尝试修复问题(修改代码或配置) 4. 提交 fix commit 到 PR 分支 5. 在 PR 上留言说明修复了什么 tools: [read, edit, bash, gh] review: require_approval: true # 修改代码需要人工审批 timeout: 30m # 30分钟内未审批则过期 # 自动化 3: 每日报告 - name: daily-report description: 每天生成项目报告并发送到 Slack trigger: type: cron schedule: "0 9 * * 1-5" # 工作日早9点 agent: model: claude-sonnet-4-20250514 instructions: | 每天早上生成一份项目状态报告: 1. 检查 Git 最近的 commit 和分支状态 2. 查看 CI 最新运行状态 3. 查看待处理的 PR 4. 汇总为简洁的 Markdown 报告 5. 通过 Slack Webhook 发送到团队频道 tools: [read, bash, gh]

Automation 配置字段详解

字段说明必填
nameAutomations 的唯一标识名
description描述此自动化做什么推荐
trigger.type触发器类型(github_pr / slack / linear / pagerduty / cron)
trigger.events监听的事件列表各类型不同
trigger.scheduleCron 表达式(type 为 cron 时)cron 时必填
agent.model使用的 AI 模型推荐
agent.instructions告诉 Agent 做什么的具体指令
agent.tools允许 Agent 使用的工具推荐
review.require_approval是否需人工审批后再执行写操作默认 false
review.timeout审批超时时间可选

授权设置

首次使用 GitHub、Slack、Linear 或 PagerDuty 触发器时,需要在 Cursor Settings > Automations 中进行 OAuth 授权:

  1. GitHub:授权 Cursor 访问你的仓库(建议只授权需要的仓库)
  2. Slack:添加 Cursor Bot 到你的工作区
  3. Linear:提供 Linear API Key
  4. PagerDuty:提供 PagerDuty API Key

权限可以后续随时撤销。


05 实战案例一:自动 PR Code Review

场景

团队使用 GitHub Flow,每次有 PR 提交流需要 Code Review。人工 Review 耗时且容易遗漏。

自动化方案

automations: - name: pr-reviewer description: 自动审查所有新 PR trigger: type: github_pr events: [opened, synchronize] repos: ["my-org/my-repo"] # 限定仓库 agent: model: claude-sonnet-4-20250514 instructions: | 你是一个严格的代码审查者。 ## 每次 PR Review 必须检查 1. **逻辑正确性**:代码逻辑是否符合 PR 描述的目标?有无隐藏 bug? 2. **边界情况**:空值、越界、并发、网络错误等是否处理? 3. **安全性**:有无 SQL 注入、XSS、敏感信息泄露、权限绕过? 4. **性能**:有无 N+1 查询、不必要的循环、内存泄漏? 5. **代码风格**:是否遵循项目规范? 6. **测试覆盖**:新代码是否有对应的测试? ## Review 格式 每条评论包含: - 文件路径和行号 - 问题的严重级别(🔴 必须修 / 🟡 建议修 / 💡 仅供参考) - 具体的问题描述 - 建议的修改方案(代码片段) ## 操作 使用 `gh pr review` 提交 review 评论。 如果发现了🔴级别的问题,reject PR。 如果只有🟡或💡级别问题,approve 但加上注释。 ## 约束 - 不要修改 PR 的代码——这个自动化只做 review,不改代码 - 不要关闭 PR - review 评论要简洁专业,用中文 tools: [read, bash, gh]

效果

每次有人提交 PR 或推送新 commit,Cursor 自动执行 Code Review,在 PR 上留下 review 评论。开发者在几分钟内就能获得详细反馈,而不需要等待同事有空。


06 实战案例二:自动修复 CI 失败

场景

CI 偶尔因为 flaky test、配置错误、或简单的引入问题而失败。等待人工修复浪费时间。

自动化方案

automations: - name: ci-fixer description: CI 失败自动分析和修复 trigger: type: github_pr events: [synchronize] conditions: - check: | # 仅当至少一个 CI check 失败时触发 any(check_run.conclusion == "failure" for check_run in payload.check_runs) agent: model: claude-sonnet-4-20250514 instructions: | 你是 CI 修复专家。 ## 工作流程 1. 读取失败的 CI 日志(使用 `gh run view --log`) 2. 理解失败原因: - 是测试失败?读失败测试的代码 - 是编译错误?看错误信息定位到文件 - 是 lint/style 问题?看具体违规 - 是环境/配置问题?检查配置文件变更 3. 定位到源码问题所在 4. 提出修复方案并在 PR 上留言(需审批模式) 5. 如果 require_approval 为 true,等审批通过后再提交 commit 6. 提交后确认 CI 重新运行并通过 ## 规则 - 每次只修一个问题,commit message 写清楚修了什么 - 如果不能确定修复方案,在 PR 上详细说明分析和建议,不要盲目改代码 - 对于 flaky test,建议加 retry 或标记,而不是修改测试逻辑 - 修完一个后等待 CI 结果,如果还有失败的再继续修 tools: [read, edit, bash, gh] review: require_approval: true timeout: 60m

安全机制

这里设置了 require_approval: true,因为自动化修改代码有风险——你可以在 PR 页面审查 AI 提出的修改,批准后 AI 才真正提交 commit。


07 实战案例三:每日报告

场景

技术负责人需要每天了解项目进展:谁提交了什么、CI 状态如何、有没有待处理的 PR。手动整理很麻烦。

自动化方案

automations: - name: daily-standup-report description: 每天早上生成项目报告 trigger: type: cron schedule: "0 9 * * 1-5" # 工作日9:00 agent: model: claude-sonnet-4-20250514 instructions: | 生成一份简洁的每日项目报告。 ## 报告内容 ### 1. 昨日代码活动 - 昨天 main 分支的 commit 统计(数量、主要作者) - 主要变更摘要(每个 commit 的一句话总结) ### 2. 活跃 PR - 待 Review 的 PR(列出 PR 号、标题、作者、创建时间) - 等待合并的 PR(已批准但未合并的) - PR 合并率趋势 ### 3. CI 状态 - 主分支 CI 是否通过 - 最近失败的 CI run(如果有)及其原因 ### 4. 健康检查 - 依赖是否有安全漏洞(通过 `npm audit` 或等效工具) - 代码库中是否有大的技术债务指标变化 ## 输出 - 以整洁的 Markdown 格式输出 - 通过 Slack Webhook 发送到 #engineering-standup 频道 - 同时保存到项目 `.reports/` 目录 tools: [read, bash, gh]

效果

每天早上 9 点,Slack 上自动收到项目报告。不再需要手动浏览 GitHub、Jenkins 等多个工具去拼凑状态。


08 Security 安全考量

Automations 的能力非常强大——它能写代码、提 PR、访问 GitHub API、发送 Slack 消息。滥用或配置不当可能造成严重后果。

最小权限原则

❌ 错误:给 Automation 所有仓库的完整权限 ✅ 正确:只授权需要操作的仓库,用 repos 字段限定 ❌ 错误:所有工具无条件开放 ✅ 正确:tools 只列出必要工具,不要在不需要时给 gh

审批机制

对于高风险操作,一定要开启 require_approval

操作类型建议审批说明
提交 Code Review 评论不需要只读分析,不修改代码
创建 Issue / 发送消息不需要只增不删改
修改 PR 代码/提交 commit✅ 需要可能引入新问题
合并 PR✅ 需要自动化合并风险大
操作生产环境(部署等)✅ 需要极危险
发送通知/报告不需要只读取不写入

超时控制

设置 review.timeout 防止审批请求一直挂起。超时后自动化会自动取消后续写操作。

审计日志

Automations 的每次运行都有完整日志:

  • 何时触发、谁触发的
  • Agent 做了哪些操作、读了哪些文件
  • 是否被批准或拒绝
  • 最终结果(成功/失败/超时)

日志可以在 Cursor Settings > Automations > History 中查看。


09 Automations vs Hooks vs Skills 对比

这三个机制经常让人混淆,这里用一个表格说清楚:

维度AutomationsHooksSkills
触发方式外部事件 / Cron 定时AI 操作事件(Pre/Post)手动 @激活
运行体完整 Agent 会话轻量脚本AI 对话中的指令模板
运行环境后台独立运行当前会话上下文中当前会话中
能力读/写/执行/Git/API读 stdin、写 stdout、exit code定义 AI 行为流程
使用场景PR Review、CI 修复、报告危险命令拦截、格式化TDD 流程、重构规范
需要人工?可选(审批机制)不需要需要手动激活
可复用性可共享/可团队部署项目级配置可共享给团队
学习成本中高

选择指南

问自己三个问题:

  1. 谁触发?

    • 我想手动触发 → Skills@skill-name
    • 我想让 AI 操作触发 → HooksPreToolUse / PostToolUse
    • 我想让外部事件/时间触发 → Automations
  2. 做什么?

    • 执行一段固定逻辑的脚本 → Hooks
    • 执行一个标准流程(含推理决策)→ Skills
    • 执行一个自主分析任务(含外部交互)→ Automations
  3. 需要多严格?

    • 必须阻止某些操作 → Hooksexit 2
    • 需要有人批准才执行 → Automationsrequire_approval
    • 不需要安全管控 → Skills

可以组合使用

这三种机制不是互斥的。典型组合:

  • Automation + Hooks:Automation 启动 Agent 跑任务,Hooks 在 Agent 的工具调用上做安全拦截
  • Automation + Skills:Automation 触发后,Agent 在运行时可以按 Skill 定义的流程行事
  • Hooks + Skills:Hooks 在事件中激活 Skill(注意 Hooks 不能直接 @ 激活 Skill,但可以输出指令让 AI 遵循 Skill 的逻辑)

10 最佳实践

1. 逐步从简单开始

从最简单的自动化开始——先做一个只读的 PR Review,确认运行正常后,再加修改代码的自动化。

阶段 1: 只读分析(PR Review 评论) 阶段 2: 可写但需要审批(CI 修复) 阶段 3: 全自动(已充分验证的日常任务)

2. 给 Agent 写清晰的 Instructions

Instructions 是 Automation 成功的关键。好的 Instructions 像给新同事的入职指南——交代清楚背景、流程、规范、禁忌。

一定要包含:

  • 任务目标:一句话说清楚”你要干什么”
  • 执行步骤:分步骤列出操作流程
  • 检查清单:需要特别注意的事项
  • 输出格式:报告/评论的格式要求
  • 约束条件:什么不能做

3. 善用条件触发

不是每个 PR 都需要同样的自动化。用 conditions 可以精确控制触发时机:

conditions: - check: 'pr.draft == false' # 跳过 Draft PR - check: 'pr.changed_files < 500' # 跳过超大 PR - check: 'check_run.conclusion != null' # 等 CI 跑完

4. 监控运行成本

每个 Automation 运行都会消耗 Cursor 的配额(如果使用 Pro 计划)。设置合理的触发频率可以避免浪费:

  • PR Review 只在 openedsynchronize 时触发
  • Cron 任务不要设置太频繁(每日报告每天一次就够了)
  • conditions 过滤掉不必要的触发

11 小结

要点说明
本质事件驱动的始终在线 Agent——让 AI 从被动响应变为主动值守
支持的触发器GitHub PR、Slack Webhook、Linear Issue、PagerDuty、Cron
配置位置.cursor/automations.yaml
安全机制require_approval 审批闸门 + 权限最小化 + 超时控制
和 Hooks 的区别Hooks = AI 内部事件的简短脚本;Automations = 外部事件的完整 Agent
和 Skills 的区别Skills = 手动激活的流程模板;Automations = 自动触发的代理任务
最佳起点先做一个只读的 PR Code Review 自动化

Automations 把 Cursor 从”你问我答”的对话式工具,升级成了”自动值守”的开发助手。正确地配置 Automations,你每天可以减少几十分钟到几小时的重复性工作——让 AI 去盯着 CI、审阅 PR、生成报告,你专注于真正需要人类创造力和判断力的工作。


下一篇:20 MCP 集成 —— 用 MCP 协议让 Cursor 连接外部工具和数据源。