AI个人学习
和实操指南

一小时内将Cursor和Windsurf改造成价值500美元/月的Devin

在上一篇文章中,我们讨论了 Devin,这是一种能够实现全自动化编程的 Agentic AI。与其他 Agentic AI 工具(如 Cursor 和 Windsurf)相比,它在流程规划、自我进化、工具扩展和全自动化操作方面具有显著优势。这使 Devin 成为新一代工具,与现有的 Agentic AI 工具区分开来。

然而,在使用 Devin 一段时间后,我的“构建者心态”又开始萌动,驱使我对 Windsurf 和 Cursor 进行修改,以实现 Devin 90% 的功能。我还开源了这些修改,使您能够在一分钟内将 Cursor 或 Windsurf 转变为 Devin。本文主要介绍这些修改的具体方法,并通过这个例子展示 Agentic AI 时代如何高效地构建和扩展。为了简化讨论,我们将使用 Cursor 作为这种工具的代称,最后会讨论如果想使用 Windsurf,需进行哪些小调整。

工具 流程规划 自我进化 工具扩展 自动化执行 价格
Devin 是(自动,完整) 是(自学习) 多种 支持 $500/月
Cursor(修改前) 有限 工具集有限 需要手动确认 $20/月
Cursor(修改后) 接近 Devin 接近 Devin,可扩展 仍需确认或解决方法 $20/月
Windsurf(修改后) 接近 Devin 是,但间接 接近 Devin,可扩展 支持 Docker 容器中的全自动化 $15/月

 

流程规划与自我进化

如前文所述,Devin 的一个有趣方面是它更像一名有条理的实习生。在执行任务前会先创建计划,并在执行过程中持续更新计划的进度。这使得 AI 管理者能够更容易地跟踪当前进展,同时防止 AI 偏离原计划,从而实现更深的思考和任务完成质量。


虽然这种功能看似令人印象深刻,但实际上在 Cursor 上实现起来非常简单。

对于 Cursor,打开文件夹根目录下有一个名为 .cursorrules 的特殊文件。这个文件的特别之处在于,它允许您修改 Cursor 提示词以传递给后端的大语言模型(如 GPT 或 Claude)。换句话说,该文件中的所有内容都会成为发送给后端 AI 的提示词的一部分,从而为定制化提供了极大的灵活性。

例如,我们可以将计划内容放入这个文件中,这样每次与 Cursor 交互时,它都会接收到计划的最新版本。我们还可以在这个文件中提供更详细的指令,例如要求 Cursor 在任务开始时先进行思考并创建计划,在完成每一步后更新计划。由于 Cursor 可以使用 Agent 修改文件,而 .cursorrules 本身就是一个文件,这就形成了一个闭环。它每次自动读取文件内容,理解最新更新,并在思考后将更新后的进度和下一步写入此文件,确保我们始终拥有最新的更新。

类似地,自我进化功能也可以用相同的方法实现。在 .cursorrules 文件中,我们添加提示词,让 Cursor 在用户纠正错误时反思并考虑是否有可记录的可重用经验。如果有,它会更新 .cursorrules 文件的相关部分,从而积累项目特定的知识。

一个典型例子是,当前的大语言模型由于知识截止日期较早,许多模型不知道 GPT-4o 的存在。如果您告诉它:“这个模型确实存在,只是你不了解它”,它会将这一经验记录到 .cursorrules 文件中,以后不会再犯同样的错误,从而实现学习和改进。然而,这仍然取决于提示词是否有效——有时它可能会遗漏要点,无法记录我们认为应该注意的知识。在这种情况下,我们还可以用自然语言直接提示它记录下来。这种更直接的方法也可以实现 AI 的经验积累和成长。

因此,仅通过 .cursorrules 文件及一些提示技巧,我们就可以为现有的 Agentic AI 编程工具添加 Devin 的流程规划与自我进化功能。

如果使用 Windsurf,则有一个不同之处:可能出于安全原因,它不允许 AI 直接修改 .windsurfrules 文件。因此,我们需要将其拆分为两部分,使用另一个文件(如 scratchpad.md)。在 .windsurfrules 文件中注明:在每次思考过程前,您应检查 Scratchpad 并在那里更新计划。这种间接方法可能不如直接放在 .cursorrules 中有效,因为它仍需 AI 调用 Agent 并根据反馈结果进行思考,但实际上可行。

 

工具扩展

与 Cursor 相比,Devin 的一个主要优势是它能够使用更多工具。例如,它可以调用浏览器进行搜索、浏览网页,甚至使用 LLM 智能分析内容。虽然 Cursor 默认不支持这些功能,但幸运的是,由于我们可以通过 .cursorrules 直接控制 Cursor 的提示词,并且它具备命令执行能力,这就形成了另一个闭环。我们可以准备预写好的程序(如 Python 库或命令行工具),然后在 .cursorrules 中介绍这些工具的使用方法,使 Cursor 能够现学现用,完成任务。

事实上,这些工具本身可以在几分钟内通过 Cursor 编写。例如,对于网页浏览功能,在 Devin.cursorrules 中提供了参考实现。有一些技术决策需要注意,例如使用浏览器自动化工具(如 playwright)而不是 Python 的 request 库来处理 JavaScript 密集型网站。此外,为了更好地与 LLM 沟通并帮助其理解和爬取后续内容,我们不会简单地使用 beautiful soup 提取网页文本内容,而是遵循某些规则将其转换为 Markdown 格式,从而保留更多详细的基本信息(如类名和超链接),支持 LLM 在更基础层面编写后续爬虫。

类似地,对于搜索工具,有一个小细节:无论是 Bing 还是 Google,它们的 API 搜索质量远不如客户端搜索,这主要是由于 API 和 Web 界面由不同团队维护导致的历史原因。然而,DuckDuckGo 没有这个问题,因此我们的参考实现使用了 DuckDuckGo 的免费 API。

关于 Cursor 使用自身智能进行深度分析,这相对复杂。一方面,Cursor 确实具备一定程度的此能力——在上述两个工具中,当我们将网页内容打印到 stdout 时,它会成为 Cursor 向 LLM 提示的一部分,从而使其能够对这些文本内容进行智能分析。但从另一个角度看,Devin 具有利用 LLM 对相对大量文本进行批处理的独特能力,这是 Cursor 无法实现的。为此,我们实现了一个额外的工具——非常简单,只需预先在系统中设置 API 密钥,然后让该工具调用 GPT、Claude 或本地的 LLM API,从而赋予 Cursor 使用 LLM 进行文本批处理的能力。在我的参考实现中,我使用了自己的本地 vllm 集群,但修改起来非常简单——只需移除 base_url 行。

尽管进行了这些修改,但由于 Cursor 的限制,仍有两个工具无法实现:

  1. Devin 似乎具备图像理解能力,这使得它能够执行前端交互和测试,但由于 Cursor 的限制,我们无法将图像作为输入传递给后端 AI——这需要对其实现进行更改。
  2. Devin 在数据采集期间不会被反爬算法标记为机器人,而我们的网页检索工具却经常遇到 CAPTCHA 或被屏蔽。这可能可以解决,我还在探索中,但这无疑是 Devin 的独特优势之一。

全自动化执行

最后一个有趣的特性是全自动化执行。由于 Devin 运行在完全虚拟化的云环境中,我们可以放心地让它执行各种命令,而无需担心 LLM 攻击或错误运行危险命令。即使删除整个系统,只需启动一个新容器即可恢复。然而,Cursor 在本地主机系统上运行,因此安全问题非常严重。这就是为什么在 Cursor 的 Agent 模式下,我们需要在执行每个命令前手动确认。这在相对简单的任务中是可以接受的,但现在有了复杂的流程规划和自我进化能力,Cursor 也能处理长期复杂任务,这使得这种交互方式显得与其能力不相适应。

为了解决这个问题,目前我还未找到基于 Cursor 的解决方案(更新:2024 年 12 月 17 日 Cursor 也增加了此功能,称为 Yolo 模式,但仍不支持在 Docker 中开发),但 Windsurf 考虑到了这一点。从其设计可以看出,它的目标是 Devin 式的产品形式,目前的代码编辑器只是一个中间形态。更具体地,Windsurf 有一个功能,可以直接连接到 Docker 容器并在那里运行,或者如果我们有一个配置文件,它可以帮助我们启动一个新的 Docker 容器,进行一些初始化,并映射一个本地文件夹。因此,它执行的所有命令(除了对本地文件夹的更改)都在 Docker 容器中进行,对主机系统没有影响,从而大大提高了安全性。[示例配置]

在此基础上,它还引入了黑名单/白名单机制,自动拒绝黑名单中的命令,允许白名单中的命令。对于既不在黑名单也不在白名单的命令,LLM 会智能判断是否存在主机系统风险——例如,如果它想删除文件夹中的文件,会请求用户确认,但诸如 pip install 之类的普通命令则会直接允许。请注意,该功能似乎仅在 Docker 容器中运行时启用。如果我们在主机系统上运行命令,体验仍类似于 Cursor,需要频繁确认。此外,自动化命令执行需要在配置中启用。

 

总结

因此,我们可以看到,尽管 Devin 的产品形式和设计理念确实非常先进,但从技术门槛的角度来看,它与现有 Agentic AI 工具之间的差距并没有我们想象的那么大。使用像 Cursor 和 Windsurf 这样的流行工具(每月仅 $15-20),我们可以在一小时内实现 Devin 90% 的功能,并用其完成修改前无法完成的复杂任务。例如,我给 Cursor 分配了一个任务,分析过去 5 年热门科技股的回报率,进行深入数据分析,它提供了一份非常详细而全面的报告。此外,我让 Windsurf 爬取了我的博客中最受欢迎的 100 篇文章的发布时间,并以 GitHub 贡献图的样式可视化了这些数据,这些任务它可以全自动完成。这类任务使用传统的 Cursor 和 Windsurf 是无法实现的——只有 Devin 能完成,但经过简单修改后,我们可以用 $20/月的工具实现 $500/月工具的效果。我甚至做了一个更深入的实验:作为一个对前端开发完全不熟悉的开发者,我花了一个半小时创建了一个招聘网站,包括前端和后端。这个效率与 Devin 相当,甚至更高。

未经允许不得转载:首席AI分享圈 » 一小时内将Cursor和Windsurf改造成价值500美元/月的Devin

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文