昨晚将Devin的所有演示视频(www.cognition-labs.com/blog)都看了一遍,大概有一种感觉:这个Devin不就是我吗?一个精通开源大法的半吊子程序员。
首页的第一个视频(Introducing Devin, the first AI software engineer)
Devin按照提示列出了工作清单,然后自己去学习了三份线上的api文档,再写出一个后端(类似one-api的东西),运行了测试并把测试结果做成了前端页面。看着像是高级版带RAG的大模型 + gpt-engineer + open-Interpreter 的组合。前者通过prompt将你的需求分解成一个合理的执行清单,后者可以调用你机器上的工具去帮你完成各项任务。devin.ai使用了一个还不错的IDE,有点像是开发者的分屏策略:右上命令行,右下代码框,左上AI对话框,左下浏览器——开发者平时与AI搭档做开发也基本是这些窗口了。
第二个视频(Devin can learn how to use unfamiliar technologies)
Devin复现了一篇附带开源仓库地址的文章(blog post)。除了第一个视频已经看到的能力,还可以看到自主修复bug,还有一些文章没提到过的问题解决。整个过程模拟了开发人员常规在折腾踩坑时的各种操作。
第三个视频(Devin can build and deploy apps end to end)
展示了Devin的本地部署能力,这个倒没什么,而且似乎固化了步骤是到netify上面去发布部署应用。Game of Life是一个最初级的元胞自动机,基本算法应该GPT-4都能轻松写出来。而视频中展示的各种调优过程,跟我平时用嘴写代码的过程很接近,只不过有Devin的话,似乎可以更省事一些。
第四个视频(Devin can autonomously find and fix bugs in codebases)
还是展示强大的调bug能力。这里不得不说我连视频这个小伙子给Devin提的什么问题和指示都看不懂(c++不熟),所以意味着Devin的能力更适合给工程师使用,而不是给不懂编程的小白去用。
第五个视频(Devin can train and fine tune its own AI models)
跟前面的能力没有太大区别,让Devin去读一个github ReadMe的可操作性甚至比Blog post还要高。如果微调的步骤都在ReadMe里面有,修复个别包版本或安装上的问题没有什么很亮点的地方。
第六个视频(Devin can address bugs and feature requests in open source repositories)
是一个全自动issue fix,而且用了Rust。这可能就真有点厉害了,因为据我所知,Rust也不是大模型特别擅长的编程语言。整个过程完全AutoPilot,这是比较让人震惊的地方,但我其实还想看一下什么情况下Devin会翻车。比如说遇到两个解决方案来回往复搞来搞去都得不到正确方式的。
第七个视频(Devin can contribute to mature production repositories)
录得比较随意,也是看不懂的算法问题,反正就是全自动地帮你fix bugs了吧。
第八个视频(We even tried giving Devin real jobs on Upwork and it could do those too)
展示了Devin完成了某个Upwork上的程序工作,而这个工作本身的要求就是希望你可以将某个开源仓库在AWS的EC2实例上玩一遍,并且给出完整的操作指引。过程上令人感到震撼的依旧是“全自动”,如果你也曾经和AI一起玩过开源大法,那大概会明白我在说什么。
总的来说,Devin就是一个精通开源大法工程师,他能得出正确结果的前提在于已经有了开源仓库,而且最好有相应的ReadMe或者干脆就是api文档。当然无文档的情况似乎在最后一个视频有出现,估计那个仓库的ReadMe不太完善,但Devin依靠源码也能把活儿给干好。
尝试归纳在多个Demo中Devin的输入、处理和输出:
输入基本都是开源仓库+文档,这个文档可能是ReadMe,也可能是博客文章,又或者是文档不多的一个开源仓库或者是API文档,也就说基本上都是专业材料。
输出有什么?完整的API测试报告,修复bug/issue,做个最简单的元胞自动机(Game of Life),解决各种日常“踩坑”问题等等。
处理过程应该是其中被各大自媒体宣传为“震撼”的东西,即AutoPilot,而非Copilot。其实相应的自动流程在Auto-GPT里面也有看到过,但当时的Auto-GPT完成任务的情况依然差强人意,而目前从现有Demo里面能看到Devin确实能够直接解决实际问题。
回到开头,为什么说这是个半吊子程序员呢?因为在多个Demo中依然还没有看到Devin具备完全从0到1构建一个庞大复杂项目的能力,不过如果他还可以在类似的工作流程里面不断进化的话。未来很可能就会变成一个完全可以自主编码的super agent了。