在应用中逐项点击,验证自己的工作成果

3 个月前,我加入了 Cognition,帮助打造软件工程的未来。任务:3 个月前,我加入了 Cognition,帮助打造软件工程的未来。自作为首位 AI 软件工程师发布以来,Devin 已经取得了长足进步。看到背后的团队每天都在实际使用 Devin,我感到非常震撼。其中一点尤其引人注目:Devin 会使用自己的计算机,在云端自主验证工作成果。从验证我们的 Slack 集成,到测试复杂的 Windsurf 功能,团队始终有一大批 Devin 实例处于测试模式。在这篇文章中,我会分享我们为何如此重视云端智能体的端到端验证,以及我们如何着手构建这项能力。 向异步软件工程转变在 Cognition,我们最近达成了一个新的里程碑:由事件、自动化流程、定时任务和其他 Devin 实例异步触发的 Devin,数量首次超过了通过交互方式触发的 Devin。随着我们最近推出 Auto-Triage,我们预计这一趋势还会继续加速。在向异步工作模式转变的过程中,确保开发者回来时能够拿到已经验证、可直接合并的成果至关重要。 今年早些时候,我们推出了 Devin Review,这是一款帮助人们更高效地理解复杂代码差异的代码审查工具。它不只是标记缺陷;Devin 还会修复每一项发现的问题,形成闭环,直到代码差异通过审查、不再发现问题。但仅仅通过代码审查往往还不够,工程师希望看到改动经过端到端测试,就像他们亲自测试那样。 当你还没来得及看到缺陷反馈频道里的消息,Devin 就已经提交了一个修复用户投诉问题的 PR,这种感觉很棒。如果这个 PR 还附带了修复确实有效的证据,那就更神奇了。而这种神奇体验可能很快就会变成必需品:随着主动式智能体兴起、产生越来越多的 PR,未经验证的改动很快就会变得难以管理。 异步触发的 Devin 会话数量首次超过了交互式触发的会话数量。 从一开始就具备的能力自发布以来,Devin 就一直能够在云端虚拟机上演示自己的工作成果。大约 6 个月前,我们扩展了 Devin 的计算机操作能力。具体来说,我们在 Devin 的智能体运行框架中加入了截图、移动鼠标、点击、拖拽、输入文字、按键、滚动、等待、缩放以及开始和停止录屏等工具。计算机操作能力出现已有一段时间,但我们认为,前沿模型实验室最新推出的这一批模型,已经开始真正擅长使用这些工具。 计算机操作能力为 Devin 解锁了一些有趣的新功能,例如制作并试玩桌面游戏,或使用浏览器在 Amazon 上订购商品。但我们发现,真正关键的突破是 Devin 能够测试自己的工作成果。Devin 会启动应用,在其中逐项点击操作,确认自己的改动确实有效,就像工程师会做的那样。所有操作都在云端运行,而且可以并行扩展。 当我看到工程师同时运行 10 到 20 个 Devin 实例,每个实例都有自己的开发服务器,并行处理改动时,我对此有了非常直观的认识——这根本不是一台笔记本电脑能做到的。云端自动化测试开始为我们节省大量时间,因为我们不再需要在本地运行和验证代码。 坦白说,走到这一步并不顺利。我们一路遇到了很多种失败情况,每一种都让我们进一步了解,要让这套系统更可靠,需要做好哪些事情。 提升可靠性在早期版本中,Devin 在测试过程中偏离目标的情况非常常见。表现形式多种多样:过度测试产品中不相关的部分,在进入目标功能之前就困在环境配置中,或者直接遗漏了 PR 真正要改变的核心行为。 为了解决这些问题,我们让 Devin 在进入测试模式时,先写出一份测试计划,明确说明要测试什么。这份计划必须以源代码为依据,而不是基于假设。我们发现,如果不以代码为依据,模型就容易假定应用中存在一些实际上并不存在的操作路径。 此外,测试计划还大幅提升了 Devin 能够成功测试的改动复杂度。我们提出过的一些最具挑战性的需求涉及这样的功能:必须同时运行多个服务、配置特定的管理员设置,并启用正确的功能标志,才能触发目标行为。通过提前阅读代码,Devin 更有可能正确配置环境,而不是在测试进行到一半时才发现缺少某项条件。测试计划起到了预先对齐目标的作用,让 Devin 在实际测试时更不容易偏离方向。;工具:Devin。人工角色:原文未说明人类如何持续参与其中。;局限:需要访问 Devin 的云环境以及目标应用的特定权限。早期版本存在偏离目标和设置失败的问题,通过严格的测试计划得以缓解。通常需要人工干预来处理密钥、OTP 或复杂的初始设置。测试模式目前享有折扣计费,但并行运行和令牌使用的成本仍是考量因素。。

工具

Devin

Agent Work Atlas 发布日期:

概述

3 个月前,我加入了 Cognition,帮助打造软件工程的未来。

工作流程

3 个月前,我加入了 Cognition,帮助打造软件工程的未来。自作为首位 AI 软件工程师发布以来,Devin 已经取得了长足进步。看到背后的团队每天都在实际使用 Devin,我感到非常震撼。其中一点尤其引人注目:Devin 会使用自己的计算机,在云端自主验证工作成果。从验证我们的 Slack 集成,到测试复杂的 Windsurf 功能,团队始终有一大批 Devin 实例处于测试模式。在这篇文章中,我会分享我们为何如此重视云端智能体的端到端验证,以及我们如何着手构建这项能力。 向异步软件工程转变在 Cognition,我们最近达成了一个新的里程碑:由事件、自动化流程、定时任务和其他 Devin 实例异步触发的 Devin,数量首次超过了通过交互方式触发的 Devin。随着我们最近推出 Auto-Triage,我们预计这一趋势还会继续加速。在向异步工作模式转变的过程中,确保开发者回来时能够拿到已经验证、可直接合并的成果至关重要。 今年早些时候,我们推出了 Devin Review,这是一款帮助人们更高效地理解复杂代码差异的代码审查工具。它不只是标记缺陷;Devin 还会修复每一项发现的问题,形成闭环,直到代码差异通过审查、不再发现问题。但仅仅通过代码审查往往还不够,工程师希望看到改动经过端到端测试,就像他们亲自测试那样。 当你还没来得及看到缺陷反馈频道里的消息,Devin 就已经提交了一个修复用户投诉问题的 PR,这种感觉很棒。如果这个 PR 还附带了修复确实有效的证据,那就更神奇了。而这种神奇体验可能很快就会变成必需品:随着主动式智能体兴起、产生越来越多的 PR,未经验证的改动很快就会变得难以管理。 异步触发的 Devin 会话数量首次超过了交互式触发的会话数量。 从一开始就具备的能力自发布以来,Devin 就一直能够在云端虚拟机上演示自己的工作成果。大约 6 个月前,我们扩展了 Devin 的计算机操作能力。具体来说,我们在 Devin 的智能体运行框架中加入了截图、移动鼠标、点击、拖拽、输入文字、按键、滚动、等待、缩放以及开始和停止录屏等工具。计算机操作能力出现已有一段时间,但我们认为,前沿模型实验室最新推出的这一批模型,已经开始真正擅长使用这些工具。 计算机操作能力为 Devin 解锁了一些有趣的新功能,例如制作并试玩桌面游戏,或使用浏览器在 Amazon 上订购商品。但我们发现,真正关键的突破是 Devin 能够测试自己的工作成果。Devin 会启动应用,在其中逐项点击操作,确认自己的改动确实有效,就像工程师会做的那样。所有操作都在云端运行,而且可以并行扩展。 当我看到工程师同时运行 10 到 20 个 Devin 实例,每个实例都有自己的开发服务器,并行处理改动时,我对此有了非常直观的认识——这根本不是一台笔记本电脑能做到的。云端自动化测试开始为我们节省大量时间,因为我们不再需要在本地运行和验证代码。 坦白说,走到这一步并不顺利。我们一路遇到了很多种失败情况,每一种都让我们进一步了解,要让这套系统更可靠,需要做好哪些事情。 提升可靠性在早期版本中,Devin 在测试过程中偏离目标的情况非常常见。表现形式多种多样:过度测试产品中不相关的部分,在进入目标功能之前就困在环境配置中,或者直接遗漏了 PR 真正要改变的核心行为。 为了解决这些问题,我们让 Devin 在进入测试模式时,先写出一份测试计划,明确说明要测试什么。这份计划必须以源代码为依据,而不是基于假设。我们发现,如果不以代码为依据,模型就容易假定应用中存在一些实际上并不存在的操作路径。 此外,测试计划还大幅提升了 Devin 能够成功测试的改动复杂度。我们提出过的一些最具挑战性的需求涉及这样的功能:必须同时运行多个服务、配置特定的管理员设置,并启用正确的功能标志,才能触发目标行为。通过提前阅读代码,Devin 更有可能正确配置环境,而不是在测试进行到一半时才发现缺少某项条件。测试计划起到了预先对齐目标的作用,让 Devin 在实际测试时更不容易偏离方向。

原文报告的结果

来源指出,近期每日批准的测试运行次数增加了一倍以上。工程师表示通过避免本地验证节省了大量时间。然而,未提供关于错误减少或总节省小时数的具体量化指标。系统仍面临时序问题和模型通过 JavaScript 执行“作弊”的挑战。

人工角色

原文未说明人类如何持续参与其中。

局限

需要访问 Devin 的云环境以及目标应用的特定权限。早期版本存在偏离目标和设置失败的问题,通过严格的测试计划得以缓解。通常需要人工干预来处理密钥、OTP 或复杂的初始设置。测试模式目前享有折扣计费,但并行运行和令牌使用的成本仍是考量因素。

试一试

扮演使用 Devin 的 QA 工程师。我在 [replaceable_repo_url] 中有一个代码变更,修复了 [replaceable_bug_description]。1. 针对此 PR 触发 Devin 进入测试模式。2. 指示 Devin 首先生成基于源代码的测试计划,识别所需的服务和功能标志。3. 在云 VM 上执行计划,如有可用则使用确定性脚本处理登录。4. 捕获截图并录制会话。5. 生成包含通过/失败断言的测试报告。6. 停止并向我展示报告以供批准,然后再标记任务完成。未经我明确确认,不要合并 PR。如果 Devin 遇到缺失的凭据,请暂停并向我询问。

原始来源

来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。

更多同类案例 · 编程与开发