客户

Amplitude 借助 Cursor 交付了 3 倍更多的生产代码

Amplitude 使用 Cursor 构建了一条自主开发流水线,只需极少开发者干预,就能将软件从想法推进到生产环境。

5 分钟阅读

Amplitude 的工程团队希望构建一条完全自主的开发流水线,只需极少开发者干预,就能将软件从想法推进到生产环境。借助 Cursor,Amplitude 现已建立起一套系统,能够整合整个软件生命周期中的上下文——从客户反馈到可观测性工具,再到代码审查——并将其交给智能体执行。

现在,当客户在 Slack 中报告缺陷或功能需求时,云端智能体会自动启动,着手排查、创建工单并编写修复方案。Cursor 自动化会持续在后台运行,迁移遗留代码,并为每个新增或更新的 PR 进行风险分级。Bugbot 充当第一道代码审查防线,自动合并低风险变更,同时将高风险 PR 路由给合适的审查者。

大多数 AI 编程工具带来的是更多代码。Cursor 带来的是更多真正有用、可投入生产的软件。能够运行智能体来高效并行处理工作、自己测试改动,并把一个功能从想法推进到生产环境,这就是区别所在。

Curtis Liu
CTO,Amplitude

仅限本地运行的智能体会限制并行能力和自主性

Amplitude 在采用编程智能体的早期,就遇到了其资深软件工程师 Adam Lohner 所说的工程生产力“虚假平台期”。

真正能显著提升开发效率的,是智能体产出真正实用、可用于生产的软件,而不只是生成大量代码。要做到前者,我们需要智能体具备更强的并行能力和自主性,而受限于本地开发者工作站的智能体无法做到这一点。

Adam Lohner
资深软件工程师,Amplitude

本地智能体会争用同一组有限资源,很快就会发生冲突。即使同时运行两三个智能体,也可能导致性能下降。Amplitude 的代码库足够庞大,以至于本地开发者机器即便配备高端硬件和大容量 RAM,也会触及内存上限。

本地智能体也无法像工程师那样访问完整的开发环境。没有这样的环境,智能体就无法测试或确认自己的工作成果。开发者仍然必须配置环境、运行端到端测试,并在任何变更发布前手动进行确认。

云端让智能体突破本地上限

为了获得更好的并行能力和自主性,Amplitude 转向了 Cursor 的云端智能体。其中有几项功能尤为突出:

  • **大规模并行执行:**云端智能体运行在隔离、可扩展的虚拟机中,消除了限制本地并行能力的资源瓶颈。
  • **完整开发环境:**云端智能体可以像工程师一样对自己的工作进行测试、确认和迭代,并可访问完整的开发环境。
  • **长时间运行:**Amplitude 正在把更深入、更有挑战性的任务交给云端智能体端到端处理,而不再局限于短时的同步任务。
  • **常驻运行的智能体:**Cursor 自动化让 Amplitude 能够设置由触发条件或周期性计划驱动的云端智能体,而不必依赖手动提示。

我们在 Cursor 中同时运行许多云端智能体,每个都可以完整访问我们的工具栈。能够快速启动不会受本地资源限制、也不需要持续人工盯控的智能体,带来了质的飞跃。

Adam Lohner
Amplitude 资深软件工程师

Amplitude 的工程师现在会根据工作类型,在云端智能体和本地智能体之间切换。新的创意通常始于云端,在那里,Cursor 的运行机制让智能体能够长时间独立工作。许多工程师会直接从讨论功能创意的 Slack 线程中启动 Cursor。

当开发者准备专注于更可控的迭代,或深入处理更多细节时,他们就会把智能体切换到本地。Cursor 作为统一工作区,贯穿云端与本地两种环境。

Cursor 提供了编排各类并行智能体的最佳界面。您既可以保持高层视角,也可以在需要时深入查看 diff 和文件等细节。

Spencer Pauly
Amplitude AI Feedback 工程负责人

自采用云端智能体以来,Amplitude 的每周生产代码提交量增长了 3 倍。按提交量计算,Cursor 已成为 Amplitude 代码库前三大贡献者之一,每周会在无需任何手动提示或开发者干预的情况下启动超过 1,000 次智能体运行。

云端是构建软件的地方,本地是我们测试和迭代的地方。Cursor 对两者之间无缝交接的支持,是释放 Amplitude 产品开发速度的关键。

Spencer Pauly
Amplitude AI Feedback 工程负责人

从 Slack 到工单再到 PR

Amplitude 设有专门的 Slack 频道,一线团队会在这里转达客户提交的缺陷报告和功能需求。在使用 Cursor 之前,他们需要一名专职团队成员监控这些频道、梳理问题优先级、跟进工单,并从积压任务中分派工作。

后来,Pauly 构建了一个 Cursor 自动化,将整条工作流交给智能体接管。当 Slack 中有新消息时,一个云端智能体会检查 Linear,查看该问题是否已经有对应工单。如果有,智能体就会补充新的客户上下文信息。如果没有,智能体会分析代码库、创建新工单,并提交一个已实现解决方案的 PR。

Cursor 自动化正在帮助我们消除客户与工程师之间的隔阂。我们能够更快响应客户需求,并提供更好的解决方案。

Spencer Pauly
Amplitude AI Feedback 工程负责人

您可以使用这个模板开始构建自动化流程,将 Slack 报告转为 PR。

自动化遗留重构

Amplitude 的前端代码库中积累了多年来相互并存、彼此冲突的模式,包括遗留的 CSS 组件、陈旧的 React 布局,以及不统一的样式约定。

我们有太多相互冲突的遗留模式,智能体很难判断正确的演进方向。这就是典型的“垃圾进,垃圾出”问题。

Adam Lohner
Amplitude 资深软件工程师

为了解决这个问题,Lohner 构建了一套基于 cron 的 Cursor 自动化任务,每小时运行一次,逐步推进遗留迁移。其中一个自动化会扫描 CSS 文件,找出可直接替换为 Tailwind 类的样式,完成替换后删除旧文件、创建 PR,并发送 Slack 通知。另一个则处理 Amplitude 中 20,000 多处遗留 React 布局组件实例,将它们替换为 Tailwind 的原生等效实现。

把这些迁移作为云端自动化运行,意味着它们会在后台持续推进,不会影响其他工作,也不会占用开发者的时间。

Adam Lohner
Amplitude 资深软件工程师

智能体主导的代码审查

另一个拖慢 Amplitude 工程效率的瓶颈是人工代码审查。Amplitude 希望建立一套智能体优先的审查流程,以提升产品可靠性,并减少对开发者工作的打断。

Amplitude 将 Bugbot 作为专用的智能体审查层引入。随着开发者看到 Bugbot 能发现那些因 Amplitude 代码库规模庞大、结构复杂而被人工审查者遗漏的问题,采用率也自然增长。

Bugbot 经常能发现非常棘手的缺陷,并针对这些问题提出可靠的修复方案。

Spencer Pauly
工程负责人,AI Feedback,Amplitude

Lohner 还构建了一个 Cursor 自动化,用于判断每个 PR 的风险影响等级。低风险变更可以进入合并流程,由 Bugbot 在无需开发者干预的情况下完成审查并自动修复问题。包含更复杂逻辑变更的高风险 PR 则会被自动分配给合适的工程师。大约 60–70% 的低风险 PR 无需开发者做任何额外工作即可完成合并。您可以通过这个模板开始构建一个将 Slack 报告转化为 PR 的自动化。

Bugbot 经常发现真实且足以威胁生产环境的缺陷,这样的稳定表现使它成为我们代码审查流程中的关键一环。

Adam Lohner
资深软件工程师,Amplitude

接下来,Amplitude 正专注于将自动化推进到开发生命周期的后半段:CI/CD 流水线、构建验证和部署。目标是让智能体在无需开发者干预的情况下,将软件从已审查的 PR 一路推进到生产环境。


如果你有兴趣使用 Cursor 构建自主开发流水线,请联系我们的团队开始 Cursor 试用。

分类: 客户

作者: Cursor Team