Skip to main content
不想手动设置?将此页面的链接粘贴到 Devin 会话中,并让它为你完成所有设置。
本指南介绍如何通过 v3 API 管理计划自动化,适用于基础设施即代码工作流。您也可以直接在 Automations 页面中创建和管理它们,无需任何 API 配置。
1

为 API 访问设置服务账号

通过 API 创建的自动化需要具备相应权限的服务用户。你只需一次性完成设置,然后在下面的所有调用中使用该用户的 API key。
  1. 访问 app.devin.ai > Settings > Devin API,打开 Service users 选项卡,然后点击 Provision service user
  2. 分配包含 ManageOrgAutomations 权限的角色
  3. 保存预配后显示的 API key——它只会显示一次,之后你将使用它作为你的 Bearer token
你的 organization ID 显示在 Settings > Devin API 页面顶部。角色中包含 ViewOrganizations 的 Enterprise 服务用户也可以使用其 token 调用 List Organizations 端点:
导出这两个值,以便本指南中的命令可以按原样运行:
有关服务用户和权限的更多信息,请参阅API 身份验证文档。
2

为本次测试运行编写 playbook

在创建自动化之前,先编写一个playbook,明确告诉 Devin 如何运行你的 E2E 测试套件,以及如何处理结果。前往 Settings > Playbooks 并创建一个新的 playbook——或者让 Devin 根据你的测试工作流程描述为你生成一个。下面是一个适用于 Playwright 套件的示例:保存后记下该 playbook 的 ID——你将在自动化的提示中引用它。在查看该 playbook 时,你可以在 URL 中找到它 (app.devin.ai/.../playbooks/{playbook_id}) 。
安装 Linear integration,这样 Devin 就可以在 playbook 中创建工单。在自动化页面编辑该自动化时,你还可以添加一个 Post to Slack 通知 (例如 #qa-results) ,让你的团队自动收到通知。如果测试需要,可通过 organization secrets 为 Devin 提供对预发布环境机密 (数据库 URL、API key) 的只读访问权限。
3

通过 API 创建夜间自动化

现在使用 POST /v3/organizations/{org_id}/automations 端点来注册一个带有 schedule:recurring trigger 和 start_session action 的自动化。在提示中通过 @playbook:{id} 令牌引用该 playbook。由自动化启动的会话只会获得你授予的工具,因此 tools 块会启用 Linear 工具,并允许 Devin 向你的 #qa-results 频道发送消息 (请将 Slack workspace 和 channel ID 替换为你自己的) 。此示例会在每天的 UTC 时间凌晨 2 点运行:
响应中包含一个用于后续管理该自动化的 automation_id。请先将其保存:
rrule 条件接受一个按 UTC 求值的 iCalendar RRULE。以下是一些常用示例:为什么是凌晨 2 点?你希望测试在当天最后一次部署在预发环境稳定之后再运行,但又要足够早,这样工程师开始工作时就能看到失败结果。请根据你团队的时区和部署节奏进行调整。完整字段列表请参见 Create automation 端点文档。
4

验证首次运行并优化提示词

在自动化首次触发后,检查该会话,确保 Devin 正确运行了测试,且输出结果符合你的预期。
  1. 在自动化页面打开该自动化,并在其 Activity 选项卡中点击会话链接
  2. Playwright 测试套件是否已执行?是否只为真实失败 (而非不稳定测试) 创建了 Linear 工单?
  3. 在 #qa-results Slack 频道中查看汇总消息
首次运行时的常见问题及其解决方法:
  • Devin 无法访问预发布环境:将你的预发布环境变量 (例如 STAGING_API_KEY 或 DATABASE_URL) 添加为组织密钥,以便它们在该自动化启动的每个会话中都可用
  • 由不稳定测试产生了过多工单:在运行手册中添加重试逻辑:“在创建工单前,先对任何失败的测试重新运行一次。只有在连续失败两次时才创建工单。”
  • 测试耗时过长:收窄测试范围——例如:“只运行 tests/critical/ 和 tests/smoke/ 中的测试”——或增加会话超时时间
5

以代码方式管理自动化

一旦你的每晚任务运行稳定下来,你就会希望像管理其他自动化一样管理它:在部署冻结期间将其暂停,在测试套件发生变化时更新提示词,或者为不同环境再创建一个自动化。在部署冻结或维护窗口期间暂停该自动化:
在冻结结束后重新启用:
列出所有自动化,以审查当前正在运行的任务:
对于需要管理多个自动化的团队,可以让 Devin 构建一个 CLI,将自动化定义从 YAML 配置文件中同步到系统中——这样你就可以像管理测试配置一样,对这些自动化进行版本控制: