Devin第一手使用体验:完成度很高,开始编码就停不下来,但要替代程序员还很远
由10枚IOI金牌在手的创业团队Cognition AI开发的全球首个AI程序员智能体Devin,一发布就让科技圈坐立不安。
在演示中,Devin几乎已经可以独立完成许多需要普通程序员花费大量时间才能完成的任务,而且表现一点也不逊色于普通程序员。
但是,产品能力的边界在哪里,实际体验和演示时候有差距,还的看上手实测之后的效果。
这位斯坦福的小哥在Devin发布的第一时间就联系了团队,获得了第一手体验的资格。
他让Devin帮它做了几个难度不一的项目,录制了一个视频,在推上写下了自己的使用感受。
下一个任务是让Devin做一个可以让普通用户直接与大模型下棋的网站。
需求复杂的编程任务还搞不定
用户每走一步棋,系统会将其转换成提示词传递给GPT-4,GPT-4会做出回应,这个回应再被转化为具体的下棋步骤展现在棋盘上。
按照小哥的要求,系统需要由相当多的部件组成。
他个人最为关注在这个系统的开发过程中,Devin能不能做到以下几点:
- 知道如何准确地使用GPT-4 API,因为大多数LLM实际上并不知道如何使用,并且API的调用存在版本冲突。
- 正确地请求API密钥并安全地处理。
- 处理包错误。
- 了解如何提示LLM下棋并能精确地返回提示词。
令小哥想不到的是,Devin不仅要求小哥提供API密钥,而且在试用过程中还可以正确地保护它。
不过,Devin目前反馈速度还相当慢,小哥推测是因为后台发生的代理提示远远比要看到的要多得多。
从小哥发起请求开始,它花了大约19分钟才询问API密钥。
小哥猜测,如果延迟是由于他们在后台运行大量提示造成的,那么延迟应该会随着时间的推移而加快。
因为他们以后可以访问专用GPU或与Claude或OpenAI合作降低延迟(估计是GPT-4或Claude Opus)。
Devin首先制定了一个规划。
在右上角,用户可以切换「跟随」状态,这样用户可以将屏幕自动移动到#Devin当前激活了的选项卡上。
小哥没有打开跟随状态,因为他希望随时观察各个位置的变化。
规划器会随时保持针对当前任务的更新状态。
Shell看起来和普通的Shell没什么区别,但用起来真的很有趣!
Devin在工作过程中会打开多个shell,在shell的底部,用户可以拖动蓝色滑块来往前查看Devin编写的命令。
下图是它当在尝试调试棋盘未渲染的内容。
与此同时,小哥要求它再执行一个数据分析的任务。
小哥让Devin去「创建一张过去五十年南极洲海水温度的地图」。
对于这个请求,小哥觉得有两个方面可能很具有挑战性:
- 处理空间数据绘图/可视化。
- 知道在哪里下载数据,而且了解如何使用数据源,因为地理空间数据处理起来很麻烦。
Devin能像一个优秀的程序员一样聪明地阅读自述文件,并且还执行一些基本的EDA来理解数据结构。
数据居然是一个ascii文件,小哥觉得有点奇怪。
小哥单击对话「调试Python脚本...」中的其中一个步骤时,它会打开与该步骤相关的代码库部分,因此可以跟踪某一个具体时间点发生的情况。
小哥比较担心的是,如果不是必须要询问API密钥,Devin似乎会不停地编码停不下来。
所以他试了试是否可以更改他之前提出的请求或指定其他内容,中断Devin的编码过程。
因为对于大部分用户在编码时,都有可能会改变主意或者有一些新的东西想要添加进系统之中,能够处理这种情况是很有必要的。
这是编码过程中的截图:
浏览器界面的呈现方式如下:
然后小哥又提了针对数据可视化的任务又提了一个要求,让系统将高温设置为蓝色,低温设置为红色。
为了不中断编码的过程,似乎Devin又开启了一个工作线程来记录小哥的临时要求。
最终,Devin将APP部署到了Netlify上了,一个应用已经上线了。
网页的链接:https://t.co/wTbtz2waDn
就像人类写的程序一样,第一个版本肯定是有Bug的。
因为小哥要求的是南极洲的温度记录,似乎对于Devin来说它理解起来有些障碍。
于是小哥把要求显示的位置改为了北美。
总结
小哥没有给出Devin修改了Bug的结果,只是初步总结了用Devin开发的第一个网站的使用体验。
先说优点:
Devin产品化做得很好,他给人的使用体验是一个完整的产品而不是只是一个简单的对话框。
AI是系统最关键的部分,但支撑AI功能的产品化的结构是Devin的亮点。
Devin能够完成自动部署,API密钥保护,随时修改和添加需求等等非常好的各种功能。
产品的完成度已经非常高了,远远超过了一般的演示Demo。
再说缺点:
Devin的反应还很慢,当然小哥也说,因为他用的是1M的Starlink来上网,所以反应慢很有可能是他自己的原因。
其次就是还不能允许用户直接自己编辑代码,而且也没法协作完成。
当然,最初那个下棋的应用,难住了Devin,最终没有完成部署。而那个数据可视化的任务,似乎也有些Bug。
最终,小哥用Devin做了一个chrom插件,可以帮助用户把Github repo转化成Claude prompt。
插件下载地址:https://t.co/k3l8JTWK7Z
网友评价
网友看了这个实测之后还是感觉有点失望,毕竟这个任务一个初级程序员是能做到的,但是Devin的可视化项目的结果只做出了一个有Bug的网页。
看样子Devin本质上还只是一个可以上网的大模型,现在要让他解决实际问题还有难度。
以上是Devin第一手使用体验:完成度很高,开始编码就停不下来,但要替代程序员还很远的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用C 中的chrono库可以让你更加精确地控制时间和时间间隔,让我们来探讨一下这个库的魅力所在吧。C 的chrono库是标准库的一部分,它提供了一种现代化的方式来处理时间和时间间隔。对于那些曾经饱受time.h和ctime折磨的程序员来说,chrono无疑是一个福音。它不仅提高了代码的可读性和可维护性,还提供了更高的精度和灵活性。让我们从基础开始,chrono库主要包括以下几个关键组件:std::chrono::system_clock:表示系统时钟,用于获取当前时间。std::chron

DMA在C 中是指DirectMemoryAccess,直接内存访问技术,允许硬件设备直接与内存进行数据传输,不需要CPU干预。1)DMA操作高度依赖于硬件设备和驱动程序,实现方式因系统而异。2)直接访问内存可能带来安全风险,需确保代码的正确性和安全性。3)DMA可提高性能,但使用不当可能导致系统性能下降。通过实践和学习,可以掌握DMA的使用技巧,在高速数据传输和实时信号处理等场景中发挥其最大效能。

在C 中处理高DPI显示可以通过以下步骤实现:1)理解DPI和缩放,使用操作系统API获取DPI信息并调整图形输出;2)处理跨平台兼容性,使用如SDL或Qt的跨平台图形库;3)进行性能优化,通过缓存、硬件加速和动态调整细节级别来提升性能;4)解决常见问题,如模糊文本和界面元素过小,通过正确应用DPI缩放来解决。

C 在实时操作系统(RTOS)编程中表现出色,提供了高效的执行效率和精确的时间管理。1)C 通过直接操作硬件资源和高效的内存管理满足RTOS的需求。2)利用面向对象特性,C 可以设计灵活的任务调度系统。3)C 支持高效的中断处理,但需避免动态内存分配和异常处理以保证实时性。4)模板编程和内联函数有助于性能优化。5)实际应用中,C 可用于实现高效的日志系统。

在C 中测量线程性能可以使用标准库中的计时工具、性能分析工具和自定义计时器。1.使用库测量执行时间。2.使用gprof进行性能分析,步骤包括编译时添加-pg选项、运行程序生成gmon.out文件、生成性能报告。3.使用Valgrind的Callgrind模块进行更详细的分析,步骤包括运行程序生成callgrind.out文件、使用kcachegrind查看结果。4.自定义计时器可灵活测量特定代码段的执行时间。这些方法帮助全面了解线程性能,并优化代码。

交易所内置量化工具包括:1. Binance(币安):提供Binance Futures量化模块,低手续费,支持AI辅助交易。2. OKX(欧易):支持多账户管理和智能订单路由,提供机构级风控。独立量化策略平台有:3. 3Commas:拖拽式策略生成器,适用于多平台对冲套利。4. Quadency:专业级算法策略库,支持自定义风险阈值。5. Pionex:内置16 预设策略,低交易手续费。垂直领域工具包括:6. Cryptohopper:云端量化平台,支持150 技术指标。7. Bitsgap:

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,删除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段时,需指定位置以优化查询性能和数据结构;删除字段前需确认操作不可逆;使用在线DDL、备份数据、测试环境和低负载时间段修改表结构是性能优化和最佳实践。

C 中使用字符串流的主要步骤和注意事项如下:1.创建输出字符串流并转换数据,如将整数转换为字符串。2.应用于复杂数据结构的序列化,如将vector转换为字符串。3.注意性能问题,避免在处理大量数据时频繁使用字符串流,可考虑使用std::string的append方法。4.注意内存管理,避免频繁创建和销毁字符串流对象,可以重用或使用std::stringstream。
