AB
AiBoss
Tutorials

Devin

Tutorials

用 Devin 委派完整工程任务并拿到可合并 PR

Devin 是一个自带 Shell、IDE 与浏览器的云端自主软件工程师。本文说明它适合接什么任务、四种接入方式怎么选、任务描述怎么写、如何并行与闭环,以及从派单到 merge-ready PR 的完整流程与常见坑。

Devin 的定位是「自主软件工程师」:它不在你的编辑器里补全代码,也不是终端里的对话助手,而是一个独立的云端工作环境,里面装着完整的开发工具链。你给它一段任务描述,它自己规划、自己写代码、自己跑测试、自己提 PR,你负责审阅与批准。这篇教程要教会的是:判断哪些任务适合交给 Devin、用哪种方式把任务派出去、任务描述怎么写才跑得通,以及如何让它一路闭环到可合并的 PR。如果你更想先了解这类工具在站内的整体归类,可以看 Devin 这一条目。

它和补全型、IDE 型、CLI 型工具的根本差别不在技术,而在产品形态:那些工具都需要你在场,AI 辅助你写;Devin 允许你不在场,派完任务去干别的,它干完通知你。这是从「人机协作」到「人委派机」的跳跃。因此本文的重点不是「怎么让 AI 写得更快」,而是「怎么把一个完整任务描述清楚并交出去」。

准备工作

Devin 是云端服务,使用前需要把账号、接入渠道和代码库访问权限准备好。以下各项的具体套餐、席位与配额以官网当前信息为准,本文不给出数字。

账号与组织

  • 一个可登录 Devin Web App 的账号,通常由组织管理员邀请加入。
  • 确认你在组织中的角色:部分设置(例如浏览器 profile 的 blueprint 更新)需要组织级权限,普通成员发起请求后要由管理员确认。
  • 如果团队打算从 Slack 或 Teams 里直接派单,需要先在对应工作区完成应用安装与授权。

代码库与环境接入

  • 把目标仓库授权给 Devin,使它能克隆代码、读文件、开分支和提 PR。
  • 确认仓库里有可运行的测试命令与 CI 配置。这是后面判断「成功标准」的基础,没有测试套件的仓库很难让 Devin 自证完成。
  • 检查 workspace 配置:依赖安装方式、运行时版本、环境变量、启动命令。环境本身有问题时,Devin 会在同一个坑里反复失败,这类失败不是模型能力问题。
  • 如果任务需要访问外部系统(监控、日志、数据库、设计稿、工单),提前准备对应的 MCP 集成,让 Devin 能在 session 内直接查数据。

选择接入方式

Devin 提供多种入口,覆盖不同粒度的任务。开工前先想清楚这次用哪一条,比事后补救省事得多。

接入方式适用场景特点
Slack / Teams 中 @Devinbug 讨论、功能讨论、技术问题线程门槛最低,在自然对话里直接派单,进展回帖在线程里
Web App 创建 session较复杂、需要详细描述的任务可实时看它改代码,需要精修时接管,完成后再交回
CLI 本地运行快速修复、代码探索本地起步,遇到长任务用 /handoff 交给云端继续
API 编排批量任务、自动化工作流程序化创建 session,适合批量分配工单
Devin Desktop偏好本地编辑器的开发者本地 AI 编辑器,可导入 VS Code 或 Cursor 的设置

CLI 的安装方式是在终端执行安装脚本,具体命令与最新版本以官网当前信息为准。安装完成后即可在本地终端里发起任务;当任务规模超出本地快速修复的范围时,用 /handoff 把它移交给云端 session 继续执行。

操作步骤

第一步:判断任务是否落在甜区

Devin 能处理大多数工程任务,包括中等到高复杂度的工作,但成功率高度依赖指令的清晰度和具体性。官方给过一条很实用的判断标准:如果你自己能在三小时内做完,Devin 大概率也能做完。围绕这条准则,可以从几个维度评估任务:

  • 有明确的成功标准:有测试套件、CI 检查,或任何可验证的结果。
  • 规模在三小时以内:超出这个量级的任务先拆分。
  • 上下文足够:相关文件、既有 pattern、文档、示例都能指出来。
  • 可拆分:大任务能拆成并行或顺序的子任务。
  • 有现成 pattern:代码库里存在可参考的类似实现。
  • 可自动化:错误分诊、依赖更新、报告生成这类重复工作。

具体擅长的场景包括:代码迁移与重构(例如 JavaScript 迁到 TypeScript、框架升级)、Bug 复现与修复、PR review、编写单元测试、维护文档,以及客户工程支持类的集成、demo、原型和内部工具。

反过来,以下情形不适合直接派单:没有明确成功标准的任务;上下文严重不足的任务;大到没有拆分、导致 Devin 反复撞上 session 使用限制的任务;以及环境本身有问题的仓库——最后一种情况应该先回去修 workspace 配置,而不是继续换 prompt 重试。

第二步:用 Ask Devin 先框定范围

在正式编码前,先用 Ask Devin 做一次高级代码搜索,探索代码库结构、找到相关实现、确认改动会波及哪些文件。它的价值在于把「我以为的相关文件」变成「实际的相关文件」,并据此生成一份带上下文的 prompt。磨刀不误砍柴工,这一步能显著减少后续来回。

第三步:按三问写任务描述

写 prompt 前先自问三个问题,任何一个答不上来,就先补信息再派单。

第一问:我能描述清楚成功标准吗?有测试套件、CI 检查或可验证结果的任务效果最好。「改完测试都过」比「把这个功能做好」明确得多。

第二问:有足够上下文吗?给出相关文件、pattern、文档和示例。Devin 不是在猜谜,你给的信息越多,它越靠谱。

第三问:拆分有帮助吗?大项目拆成聚焦的、顺序的子 session,每个建立在前一个的成果之上;彼此独立的部分则拆成并行子任务同时跑。

一个可用的任务描述模板如下:

任务:把 payment-service 从 JavaScript 迁移到 TypeScript

成功标准:
- tsc --noEmit 通过
- 现有测试套件全部通过
- 无 any 类型
- 遵循 src/auth-service/ 的迁移 pattern

上下文:
- 参考文件:src/auth-service/tsconfig.json
- 测试命令:npm test
- 相关文件列表:[附上]

注意事项:
- 不要改 public API 签名
- 优先处理 src/payment/ 目录

这个模板的结构值得记住:任务一句话、成功标准可验证、上下文可定位、约束条件明确。四块缺一块,Devin 就得多花时间猜。

第四步:发起 session 并监控进度

在 Web App 里创建 session 并粘贴任务描述,或在 Slack / Teams 的相关线程里 @Devin。标准工作流是:起 session,看 Progress Tab 监控进度,查 shell 命令的执行记录,review code diff,需要时接管。

Devin 的工作环境由三件套组成,每一件都是完整可交互的:

  • Shell:完整的命令行访问。所有命令都有历史记录,你能看到每条命令的输出、复制文本、跳到会话时间线的不同节点。灰色的命令表示 Devin 计划在未来某个时间点执行的动作。你接管机器后,可以打开 VSCode 终端,从只读切到可写,跑自己的调试命令。
  • IDE:Devin 在一个交互式 VSCode 环境里工作,你能实时看它改代码,用熟悉的快捷键导航文件。想接管就停掉 session。IDE 支持 Cmd/Ctrl+K 做自然语言终端命令、Tab 做代码补全。
  • Browser:完整桌面环境,在 Desktop tab 下。它不只是查文档,还能过 CAPTCHA、处理 2FA、视觉验证 UI 变更、测试本地应用。cookie 和 session 数据在整个 session 期间持久化,只需登录一次。

三件套可以并行工作:Devin 能同时看浏览器、跑 shell 命令、读代码文件。这解释了为什么它能自己启动应用、点击 UI、截图验证,再决定是否开 PR。

第五步:用 Side Chat 提问而不打断

想在不打断主工作的情况下问问题,开一个 Side Chat:可以通过悬停菜单、添加 tab,或直接输入 /btw 你的问题。Side Chat 是只读的,Devin 不能在里面改文件或影响 session 进度,只回答问题。这解决了「想问但不想打断」的痛点,适合在它长跑时确认思路。

第六步:接管与交回

需要精修时停掉 session 自己动手,改完再交回去。这里有一个关键细节:如果你手动改了代码,必须明确告诉 Devin 你改了什么,否则它可能覆盖你的修改。交回时把改动点、改动原因、以及哪些部分不要再动说清楚,比只说「我改了一点」安全得多。

第七步:开启闭环,让它处理评审与 CI

开启 Devin Review with Auto-Fix 后,它会自动回应代码评审意见、修复被标记的 bug、迭代处理 CI 失败,最终产出 merge-ready PR。理想情况下,人只需要做两件事:确认 CI 通过、批准 PR。

要让这个闭环真正跑起来,还需要两件事配合:一是让 Devin 自测——它有完整桌面环境,能启动应用、点击 UI、截图、录制 session,在开 PR 前自己完成一轮 QA;二是接上 MCP 集成,通过 MCP Marketplace 接入 Datadog、Sentry、数据库、Figma、Notion、Stripe 等,让它在 session 内直接调查和访问数据,而不是靠你转述日志。

一个完整示例

下面把上面的步骤串成一次端到端的派单。假设要修一个线上报错,并顺手补上回归测试。

1. 在 Slack 的 bug 线程里 @Devin。线程里已经有报错堆栈和复现步骤,直接在线程中标记它,进展会回到同一个线程,团队其他人也能看到。

2. 用 Ask Devin 定位相关代码。让它搜索报错涉及的调用链,确认入口文件、相关测试文件,以及代码库里已有的类似修复 pattern。

3. 按模板写任务描述。

任务:修复 checkout 流程中 coupon 为空时抛出的 TypeError,并补回归测试

成功标准:
- 新增一个覆盖 coupon 为空的单元测试,且该测试在修复前失败、修复后通过
- 现有测试套件全部通过
- CI 全绿

上下文:
- 报错堆栈:[粘贴]
- 复现步骤:[粘贴]
- 相关文件:src/checkout/coupon.ts、src/checkout/__tests__/coupon.test.ts
- 参考 pattern:src/cart/__tests__/discount.test.ts
- 测试命令:npm test

注意事项:
- 不要改 public API 签名
- 不要顺手重构无关模块
- 修复后请启动本地应用,走一遍 checkout 流程并截图

4. 在 Progress Tab 里盯进度。看它读了哪些文件、跑了哪些命令。如果发现它去改一个明显无关的模块,及时在 session 里纠正,别等它跑完。

5. 用 Side Chat 确认思路。例如输入 /btw 你打算怎么处理 coupon 为 null 和 undefined 两种情况,确认它的方案与你的预期一致,同时不打断主流程。

6. review diff。重点看三处:修复是否只动了必要的地方、测试是否真的能复现原问题、有没有引入新的空值分支未覆盖。

7. 让它自测并开 PR。它启动应用、走一遍 checkout、截图留证,然后开 PR。开启 Auto-Fix 后,评审意见和 CI 失败由它自己迭代处理。

8. 你确认 CI 通过并批准 PR。整个流程里人的动作只有审阅、必要的接管、以及最后的批准。

注意事项

关于任务规模

Devin 反复撞上 session 使用限制,通常不是它「不行」,而是任务太复杂、没有拆分。遇到这种情况应该回去拆任务,而不是加大 prompt 篇幅硬顶。同理,环境本身有问题时,先修 workspace 配置。

关于接管后的覆盖风险

恢复 session 时,如果你手动改过代码却没有告知 Devin,它可能覆盖你的修改。这是实际使用中最容易踩的坑之一,交回前务必说明改动内容。

关于浏览器状态

cookie 和 session 数据只在单个 session 期间持久化。如果希望浏览器登录状态跨 session 保留,需要让 Devin 执行「save the browser profile」,它会提议对组织的 blueprint 做一次性更新,这一步涉及组织级配置,需要相应权限。

关于并行与批量

独立任务可以拆开同时启动多个 session,也可以委派给 managed Devins,或用 API 程序化编排。一天开始时批量分配任务是效率较高的一种模式。但并行度受账号配额约束,具体上限以官网当前信息为准。

关于工具选型

Devin 并不比补全型或 IDE 型工具「更好」,它们解决不同问题。判断标准很简单:你想加速编码,还是想委派任务?需要快速补全代码时,编辑器内补全仍然最高效;需要把一个完整任务交出去、自己去做别的事时,才轮到 Devin。另外,Devin 不开源,如果团队的核心诉求是自建与自托管 Agent 基础设施,那是另一个方向的问题。

关于信息时效

Devin 的产品形态、接入方式、集成清单与套餐配额都在持续变化,本文涉及的功能范围与可用性请以官网当前信息为准,不要以本文作为采购或容量规划的依据。