用了一个月后发现,Devin是真不好用

B站影视 2025-01-18 17:09 2

摘要:与 Devin 合作一个月后,这些研究者给出了不太乐观的反馈。在 AI 编程领域,你可能听说过 Devin,它是由初创公司 Cognition 发布的一项成果。Devin 就像一个超级智能助手,能帮助工程师更快更好地完成工作,发布之初,很多人都称赞 Devin

与 Devin 合作一个月后,这些研究者给出了不太乐观的反馈。 在 AI 编程领域,你可能听说过 Devin,它是由初创公司 Cognition 发布的一项成果。Devin 就像一个超级智能助手,能帮助工程师更快更好地完成工作,发布之初,很多人都称赞 Devin 是全球首位 AI 软件工程师。它似乎具备从学习新技术、调试成熟代码库,到部署完整应用程序,甚至训练 AI 模型的全方位能力。 然而,事实真的如此吗?答案是:未必。近日,来自新型 AI 研发实验室 Answer.AI 的研究者就记录了他们使用 Devin 翻车的情况。 他们还为此写了一篇博客《与 Devin 共度一个月的感想》,文章详细记录了他们在给 Devin 超过 20 项任务之后获得的感受。 博客链接:https://www.answer.ai/posts/2025-01-08-devin.html 以下是博客内容: 简单任务表现尚可 第一个任务很简单但真实:将数据从 Notion 数据库拉取到 Google Sheet。Devin 以令人惊讶的能力完成了这项任务。它浏览了 Notion API 文档,了解需要什么,并指导我在 Google Cloud Console 中设置必要的凭证。它没有只是转储 API 说明,而是带领我完成每个菜单和按钮点击 —— 这通常会节省繁琐的文档搜索时间。整个过程大约花了一个小时(但只有几分钟人工交互)。最后,Devin 分享了一个链接,链接到一个格式完美的 Google Sheet,其中包含我们的数据。 它生成的代码有点冗长,但可以运行。这感觉像是一个展望未来的场景 —— 一个可以处理消耗大量开发人员时间的「胶水代码」任务的 AI。Johno 使用 Devin 创建了一个行星跟踪器,用于揭穿有关木星和土星历史位置的错误说法,也取得了类似的成功。令人印象深刻的是,他完全通过手机就做到了这一点,Devin 处理了设置环境和编写代码的所有繁重工作。 致命问题:在不可能完成的任务上浪费时间 在早期的成功基础上,我们依赖 Devin 的异步能力。我们想象让 Devin 在会议期间编写文档,或者在我们专注于设计工作时调试问题。但随着我们扩大测试范围,问题出现了。 看似简单的任务往往需要几天而不是几个小时,Devin 会陷入技术死胡同或产生过于复杂、无法使用的解决方案 。 更令人担忧的是,Devin 倾向于推进实际上不可能完成的任务。当被要求将多个应用程序部署到单个 Railway 部署中(Railway 不支持这一点时),Devin 没有识别到这个限制,而是花了一天多的时间尝试各种方法,并幻想不存在的功能。 最令人沮丧的不是失败本身 —— 所有的工具都有局限性 —— 而是我们花了多少时间试图挽救这些尝试。 深入了解哪里出了问题 在探索过程中让我们感到困惑的是,Devin 能够熟练地处理 API 集成并构建功能性的应用程序,但却在一些看似更简单的任务上遇到了困难。 我们开始怀疑是自己的运气不好,还是使用方法有误。为了回答这一问题,在接近一个月的时间里,我们系统地记录了对以下几类任务的尝试: 从零开始创建新项目 执行研究任务 分析和修改现有项目 结果令人震惊, 在 20 项任务中,Devin 有 14 次失败,3 次成功,3 次结果不确定。 更令人担忧的是,我们无法找出任何规律来预测哪些任务会成功,甚至那些与早期成功案例相似的任务,Devin 都会以意想不到的方式失败。 下面是我们在几类任务上的一些经验总结。 从零开始创建新项目 从零开始创建新项目是 Devin 的强项。毕竟,Devin 最初的演示视频就展示了其能自主完成 Upwork 任务的场景。然而,现实却更加复杂。 这里,我们尝试了一个可观测性平台集成的项目。任务很明确:生成合成数据并上传。然而,Devin 并没有提供一个简洁的解决方案,而是生成了一堆代码 soup—— 层层抽象使得简单的操作变得不必要的复杂。 我们 最终放弃了 Devin,转而使用 Cursor 进行逐步构建集成,结果证明效率要比 Devin 高得多。 类似地,我们还进行了其他尝试,比如当要求 Devin 在 AI 笔记工具和 Spiral.computer 之间创建集成时,Devin 生成的代码被我们其中的一员形容为「意大利面条式的代码,阅读起来比从头开始编写更令人困惑。」。测试后我们发现,尽管 Devin 可以访问两个系统的文档,但它似乎让集成的每个方面都变得过于复杂。 不过,最能说明问题的是让 Devin 进行网页抓取。我们要求 Devin 跟踪 Google Scholar 的链接并抓取某位作者最近的 25 篇论文 —— 这一任务使用 Playwright 等工具应该是非常简单的。 考虑到 Devin 具备浏览网页和编写代码的能力,这应该是特别容易实现的。然而,它却陷入了一个无休止的 HTML 解析循环中,无法从自己的混乱中解脱出来。 研究任务 如果 Devin 在具体的编码任务上表现不佳,或许它在研究任务上会表现得更好? 然而,结果充其量也只能说是喜忧参半。虽然它能够处理基本的文档查找,但对于更复杂的研究任务却颇具挑战性。 比如,当我们要求 Devin 完成带有准确时间戳的转录摘要时 ——Devin 只是重复了一些与核心问题无关的信息,而没有真正解决问题。具体而言,Devin 没有探索潜在的解决方案或识别关键的技术挑战,而是提供了一些不涉及根本问题的通用代码示例。 即使 Devin 看起来在取得进展,结果往往也不尽如人意。例如,当要求 Devin 创建一个最小化的 DaisyUI 主题时,它生成了一个看似可行的解决方案。然而,经过仔细检查,我们发现这个主题实际上并没有起到任何作用 —— 我们所看到的颜色来自默认主题,而不是我们的自定义设置。 分析和修改现有代码 Devin 最令人担忧的失败可能出现在处理现有代码库时。这些任务需要理解上下文并与现有模式保持一致 —— 这些技能本应是 AI 软件工程师的核心能力。 我们尝试让 Devin 处理 nbdev 项目的经历尤其具有启发性。当要求将一个 Python 项目迁移到 nbdev 时,Devin 甚至无法掌握基本的 nbdev 设置,尽管我们为其提供了全面的文档访问权限。更令人困惑的是它处理 notebook 的方式 —— 它没有直接编辑 notebook,而是创建了 Python 脚本来修改它们,为简单的任务增加了不必要的复杂性。虽然它偶尔会提供一些有用的注释或想法,但它生成的代码却始终存在问题。 安全审查也暴露了类似的问题。当我们要求 Devin 评估一个 GitHub 仓库(不到 700 行代码)的安全漏洞时,它反应过度,标记了大量误报,甚至虚构了一些不存在的问题。这种分析可能更适合通过一次简单的、有针对性的 LLM 调用来完成,而不是 Devin 这种更复杂的方式。 在调试任务中,这种模式依然存在。当调查 SSH 密钥转发在设置脚本中为何不起作用时,Devin 只专注于脚本本身,从未考虑问题可能出在其他地方。类似地,当要求添加用户输入与数据库值之间的冲突检查时,一位团队成员花了几个小时研究 Devin 的尝试,最终放弃,并在大约 90 分钟内自己完成了该功能的编写。 团队感受:没有什么场景让人真正想用 Devin 经过一个月的密集测试,我们的队员说出了以下感受: 「它可以完成的任务是那些非常小且定义明确的任务,我用自己的方式可能能更快完成。那些有望节省时间的复杂任务,它又很有可能失败。所以没有什么特定场景让我感觉真的想用它。」——Johno Whitaker 「一开始,我对它如此接近我想要的样子感到很兴奋,因为我感觉我只需要调整一些小地方。然后,随着我不得不改动越来越多的地方,我逐渐变得沮丧,最终发现我还不如从头开始,一步一步来得更妥当。」——Isaac Flath 「Devin 在使用 AnswerAI 的关键内部工具时遇到了困难,此外还有其他一些问题,使得这个工具很难使用。尽管我们为 Devin 提供了大量的文档和示例,但它仍然遇到了这样的问题。而在使用像 Cursor 这样的工具时,我就没有发现这种问题。在使用 Cursor 时,有更多机会可以逐步地、一点一点地引导事情朝着正确的方向发展。」——Hamel Husain 与 Devin 的情况相对比,我们发现那些更多由开发者主导的工作流程(比如像 Cursor 这样的工具所采用的流程)能够避开我们与 Devin 合作时所遇到的大部分问题。 结论 与 Devin 合作展示了自主 AI 开发渴望成为什么样子。用户体验很精致 —— 通过 Slack 聊天,观察它异步工作,看到它设置环境和处理依赖关系。 但问题是,它很多时候并不好用。在我们尝试的 20 个任务中,我们看到 14 次失败,3 个结果不确定,只有 3 次成功。更令人担忧的是,我们无法预测哪些任务会成功。 即使是与我们早期成功案例相似的任务也会以复杂、耗时的方式失败。看似前景光明的自主性成为了负担 ——Devin 会花几天时间追求不可能的解决方案,而不是认识到根本性的障碍。 这反映了我们在 AI 工具中反复观察到的一种模式。社交媒体的兴奋和公司估值与现实世界的实用性几乎没有关系。最可靠的信号来自用户交付产品和服务的详细故事。 One More Thing:新版本来了,能解决问题吗? Answer.AI 团队一篇洋洋洒洒的博客暴露了 Devin 遇到的问题。原博客最后的附录还展示了几位研究者与 Devin 合作的具体任务。 可能大家都在期待新版本的到来,或许这些问题就解决了呢。 遗憾的是,新版本是发布了,但只是一个小版本的更新。最新发布的 Devin 1.2 在存储库中根据上下文进行推理的能力有了重大升级。 新版本更新可总结为以下几点: 1:更新后的 Devin 更有可能找到需要编辑的相关文件,重用现有的代码和模式,并且整体上会生成更准确的 Pull Request。这些改进将逐步向所有用户推出。 2:Devin 现在可以回应音频消息。试着口头向 Devin 解释你的任务和反馈,就能得到回复。 3:推出企业账户。企业账户的管理员可以: 管理所有组织的成员和访问权限; 集中管理所有组织的账单。 目前,企业账户功能仅对 Devin 企业客户开放。 4:推出按使用量计费。从本月开始,用户可以按需付费,直至达到你设置的额外使用预算。 用户可以在 「Settings > Plans > Manage Plan Limits 」或者「 Settings > Usage and Limits > Manage Additional Usage Budget」中设置自己的额外使用预算。 这么看下来,虽然 Devin 已经进化到 1.2 版本,但并不能覆盖用户在使用过程中遇到的各种问题,比如上文中 Answer.AI 遇到的一系列问题。

来源:晚晚的星河日记

相关推荐