type
status
date
slug
summary
tags
category
icon
password
最近几个月随着各种AI编程工具都推出了Agent模式并且通过一种Agent Rule的模式让用户可以自行规范Agent的行为模式,使用自然语言让Agent帮助程序员们(甚至不会写代码的人们)开发项目的模式,也就是vibe coding正在逐步走向成熟。
我调研并尝试使用了几个目前最热门的AI编程工具,并使用Cursor帮助我在一行代码都没写的情况下完成了一个轻量的前端项目的开发。我把在这个过程积累的经验和思考都在此记录下来,以供参考。
考虑到AI技术还在不断(且快速)的进步,这个Blog的内容可能仅在当前(2025年6月)存在参考的意义。
目录
目录不同工具的探索与调研Cursor和Windsurfv0Devin进一步讨论,以及我的最终选择先说结论核心能力的来源外部工具的集成Agent Rules大模型的自身性能一些总结AI(Vibe)Coding工具的本质工具到底用哪一个?可能未来都差不多当前的局限性对于图像的理解不足对Runtime问题的处理能力有限对项目架构的掌控无法做到动态调整Cursor + Rules → Devin? 如何写好一个Agent Rule展望大量垃圾App应用可能正在被制作个人开发者的理想工作流当前理想的工作流理想的能力树AI会在未来完全替代程序员吗?正如上文说到的,当前AI编程在各个方面都还存在着局限性。在另一方面,我们也会担心AI编程是否真的可靠普通Junior程序员和实习生将何去何从?
不同工具的探索与调研
最初尝试使用AI编程工具时,我主要尝试了Cursor、Windsurf、v0和Devin等工具。
Cursor和Windsurf
Cursor和Windsurf给我的第一印象是:它们赋予了大模型直接读取文档、代码以及访问文件系统的能力。回想一年以前,我还需要使用shell的
tree
命令来手动读取项目架构并粘贴给大模型使其能对我的项目架构有所了解。在我的使用过程中,工具本身也有所进化,比如曾经的Cursor需要
@codebase
来让其对项目架构有所了解(本质是调用多次大模型对每一个文件功能进行总结再汇总给和我们对话的模型),而如今的Agent模式下Cursor已经可以自行读取项目的相关部分了。此外,在Agent模式下大模型被赋予了分析并执行的能力,并且明确定义了成功的标准,也就是说一次Agent询问大模型会自行分析用户的需求,制定行动的具体路径和使用工具,甚至根据每一步的反馈来决定下一步的行动,直至模型判断自己达成了用户的目标——我认为这是所有的AI编程工具目前的核心功能,也是Vibe Coding真正能够被用户成功使用的基础。不过,Agent是否真正能够理解并正确完成用户的指令主要依靠的是其背后大模型的能力以及rule对其的约束(这点稍后再重点讨论)
总体看来,Cursor和Windsurf通过封装网络搜索、文件系统访问、终端访问等多种工具,极大地扩展了LLM的编程能力边界,而Agent模式则进一步强化了需求分析和成功目标设定和自主执行能力。
v0
v0所代表的是一类轻量的AI web开发工具,与之类似的产品还有Figma AI,谷歌家族的Stitch等。我对这类工具的使用算是浅尝辄止,主要还是因为虽然这种工具可以在前期快速将我的草图转化为静态web页面,但是后期的细节功能的增加和优化可控性并不能满足我的需求。
Devin
Devin与前面的工具又有所不同,在使用的时候我能明显感受到开发者的野心:实现完全端到端自动化编程,也就是直接根据用户的需求到生成完整的解决方案,毕竟官方把其直接称为AI软件工程师。
比如我想让Devin开发一个软件,他会从需求分析开始逐步创建开发计划,然后有条不紊的进行各种开发,环境搭建,测试等工作。在这个过程中其每一步的行动都是可视化的,还可以通过进度条回溯其行为记录。我还可以随时打断他,给他建议以及提新的需求。
按照官方的说法,Devin的优异能力是依赖其长期规划和推理能力,让其可以规划执行上千个决策的复杂工程任务并且还能回忆起每一步的细节,据我的观察,这是通过动态修改他的行动规划文档以及更新RAG记忆实现的。而除此之外,Devin对于和浏览器的交互也做的很好,他可以随时调用浏览器查阅资料以及真正看懂浏览器里发生了什么。
总的来说,Devin的能力让我挺惊艳的,他对于外部工具的集成度以及交互界面的设计也是最好的。不过他的价格价格也是吓人,感谢他最近出了按ACU数量出售的模式让我低成本体验,之前500刀一个月是真顶不住。
进一步讨论,以及我的最终选择
先说结论
最终我选择了Cursor作为我的主要Vibe Coding工具。v0这类工具可控性以及开发扩展性目前还达不到需求,所以被放弃。Devin虽然做的不错,但是价格太高,此外,使用合理的MCP工具以及定义一个完备的Cursor Rule我认为可以让Cursor实现Devin大约90%的能力,这样的性价比足够。至于在Cursor和Windsurf之间的抉择,一开始我体感两个工具差不多,而我从AI进化论-花生的视频【Cursor、Windsur终极评测,谁是最强AI编程工具?】 中了解到,agent模式下Windsurf的任务理解和多步骤执行上优于Cursor,但是Cursor对于代码文件读取的完整程度上是优于Windsurf的,结合我的开发需求,我决定重点使用Cursor(任务理解和多步骤执行能力可以通过合适的Rule来弥补)。
需要说明的是,作为程序员,我太不需要Agent直接端到端的为我完成整个软件的开发,而是更倾向于AI的每一步开发都在我的控制之下。换言之,我知道我自己在要求AI做什么,以及我知道AI当前的操作和哪个代码有关,所以我认为AI能完整理解代码以及按照我的指令执行很重要。
在上面这些思考的基础上,我的得出的(以及推荐程序员使用的)工具优先级是: Cursor > Windsurf > Devin 而对于非程序员/没有编程基础但是想通过Vibe Coding来制作软件的人的推荐则为: Devin > Windsurf > Cursor
上面的排序只考虑了Agent模式下的开发。
核心能力的来源
测试这些工具后,我认为其能力差异主要来自以下几个方面(按重要程度递增):
外部工具的集成
目前的Vibe Coding工具基本都集成了网络搜索,文件系统交互,使用命令行,甚至和浏览器交互的能力,这让AI从单纯只能对话的语言模型进化成了可以帮助程序员编程的Agent。在这些工具中,Devin的集成是做的最好的,尤其是其和浏览器的交互以及集成了github等的功能,可以看出Devin团队在AI开发工作流中做了大量的努力。然而,随着MCP协议的兴起,好用的MCP不断被开发出来,各个工具之间的工具集成差异也在被逐渐抹平。
例如我使用Browser-tools MCP使Cursor Agent可以自行操作浏览器以及查看console来debug,这使其在使用浏览器工具上和Devin基本没有了区别。
Agent Rules
我对Rules的理解首先是我发现了一套好用的Cursor Rule可以让Cursor实现Devin大约90%的能力,这套rule的核心就是引导Cursor也像Devin那样在每一步都执行更新文档维持记忆的步骤,且持续使用多轮次决策直到达到目的——这让我发现一套好的全局Prompt仍然极大程度上影响Agent的性能。
之后我的另一个发现也证实了猜想——一个github项目声称其设法获得了完整的官方AI工具的提示词。我不知道这是不是真的(应该是的),但是这个项目的内容的确很值得参考:
概括一下就是这些工具的官方还是通过内部提示词来约束大模型的行为路径,以及提示模型可以调用哪些工具来完成任务。说实话,一些提示词比我想象的要简单,不过官方在这之上应该还做了更多的工作,比如可能在模型运行的外层还封装了任务的轮询或者检查机制,以及连接RAG等。
不过这确实给了我启发:如果官方的内部的提示词内容不够完善,我就在Project Rule级别再封装一层我自己的提示词,例如将Devin内部的一些好的提示词放在Cursor Rule上,这样就可以让Cursor能力更进一步逼近Devin。
大模型的自身性能
无论提示词写的再怎么好,最终AI能否准确实现用户的需求还是要看大模型的自身性能。Cursor在几个月前开始变得流行,主要的原因还是Claude发布的Sonnet3.5模型在编程性能,长文本的记忆性能上有了很大的提升,这使得其思考和编程的输出变得基本稳定可控。
说白了,这波Vibe Coding的浪潮的兴起主要还是来自于LLM自身能力的进化,Vibe Coding软件的底层性能主要还是依赖于LLM。
我从sonnet3.5开始,尝试过许多LLM作为Agent来为我编程:GPT-4.1,GPT-o3,Gemini-2.5-pro,Claude-3.7,Claude-4等等,综合下来还是Claude家族的大模型完成任务更加的稳定可控。其他的大模型或多或少会出现忘记我的要求(rule),偷懒不执行完全部的流程或者乱执行等行为。截止写这个帖子我目前最常用的还是Claude-4-sonnet,遇到一些模型比较难解决的问题我也会尝试用Claude-4-Opus,有一次其帮我解决了一个跨多个文件的,重复调用函数导致出现异常的错误,这个错误我让Claude-4-sonnet炼丹十多次都没找到。
所以总的来说大模型底层性能决定了vibe coding的成功率,在这之中模型的编程工程能力,对问题解决路径的规划能力,对于我们定义的规则的记忆力和遵守程度又显得尤为的重要。
一些总结
AI(Vibe)Coding工具的本质
LLM:底层能力
+
扩展工具(官方工具+MCP等):外部能力
+
官方提示词/Rules/RAG:行为规范
+
任务轮/目标检查机制等(我猜的)
工具到底用哪一个?可能未来都差不多
上面提到的LLM的能力AI coding工具的底层能力的核心,而LLM能力还在快速进化。此外,MCP工具也在逐渐爆发和使用规范化。所以我认为目前花精力对比那个工具好用可能不重要,多给这些工具一点时间,可能几个月后他们的能力和今天相比又会有质的飞跃。
当前的局限性
截止到写这个帖子的今天,我还是不建议没有编程基础(尤其是没有系统性的工程经验,不管是哪个领域的工程)的用户直接尝试使用vibe coding来构建一个完整的软件。
一个简单的小游戏或者是个人网站应该还好,但是一旦涉及到复杂的软件系统,比如需要集成前后段,数据库,甚至涉及到使用云服务的时候,当前的vibe coding工具的能力还是无法做到不要人的介入就能做好的程度,即使Devin也不行。
当前的AI编程在很多场景下还是需要工程师的手动调优,我自己列举一些我在开发时候遇到的点:
对于图像的理解不足
UI界面的一些对齐的小细节,颜色等,我自己可能两分钟解决,而我和Agent对话反复几次可能Agent都无法正确理解要修改哪里,或者无法修改到我满意。目前的模型对于图片的理解能力介于能理解图片的内容,但是无法准确理解UI设计上的一些微小的偏差和不和谐,例如对齐/居中等等。
即使我让agent使用Browser-tools来截图网页查看问题,即使Agent说理解了问题所在,甚至正确复述了问题和解决方案,其修改还是不正确。这本质上还是其无法在图像领域有一个很准确的认知。
对Runtime问题的处理能力有限
一旦涉及Runtime问题,Agent缺乏有效的Debug的手段去解决(目前还是没有很好用的工具来帮助大模型做各种runtime的debug),而其通常的的做法是通篇硬读已有的代码然后死磕。
在web开发领域我目前会要求Agent设计log系统然后让其使用Browser-tools来查看console,从而自己找bug,但是在其他开发上则可以输出log到本地,但是遇到疑难杂症的时候大模型通常又会掉头回去死磕代码。
有时候为了节省时间我还是会自己手动Debug,大致锁定bug可能的源头,然后把我的分析告诉大模型,这在一定程度上可以解决问题。
但是,如果没有工程经验的用户在遇到这类问题的时候,极有可能就束手无策。
对项目架构的掌控无法做到动态调整
我的第一个vibe coding项目,Cursor在我的main.js里写了两千多行代码。后来我让其重构代码架构,他又带来了很多的bug。
这类问题在用户后续频繁增加需求的时候会很常见,但通常结果可能是一堆屎山(有一说一经验不多的人类程序员也会),不过如果遇到没有工程经验的用户在开发,这种情况可能会更糟。
Cursor + Rules → Devin? 如何写好一个Agent Rule
上面提到的这些问题,在一定程度上是可以通过一套完善的Agent rule机制来解决的。例如:
- 模型对于一个大型任务的长期规划,理解,记忆可以通过让其维护一个开发计划文档来实现。
- 模型对于项目架构的控制也可以让其维护一个项目文件结构树,同时要求其在每个文件的开头都用统一格式写明这个项目文件以及内部函数等用途的注释
- 模型对于debug的需求可以通过让其在开发的时候就设计log系统,持续输出log的方式一定程度上帮助其定位bug
- 在大型的任务开发流程中,让Agent通过项目分析 → 页面规划 → 技术选型 → 组件开发的流程执行(并定义每个步骤的执行细节),就能让Agent的行为能力逼近Devin
- ……
对于如何写一个好的Cursor Rule,可以阅读我的另一个帖子【帖子】,在那里我给出了一个模版用于参考。
本质上,这些rule背后代表的都是一些正确的工程开发经验,因此想要写出一个好的Agent rule本身就要求用户对于其想开发的项目有着深刻的理解。
展望
大量垃圾App应用可能正在被制作
结合上面的分析,可以想到,大量不会写代码的人/没有完备工程经验的人们正在用AI写出一个个功能不完善,没有经过合适的安全检查的APP,使用这些APP极有可能造成自己的隐私泄露。同时,另外一群以快速赚钱为目的的人一定会使用AI快速的抄袭那些设计的好的APP。这些行为可能会造成接下来一段时间的市场上app鱼龙混杂,这也给app审查带来了新的挑战。
个人开发者的理想工作流
如果当下的个人开发者想要借助AI开发一个软件产品并将其推广,应该怎么做?下面是我的一些想法
当前理想的工作流
我认为理想的工作流应该是先使用强大LLM的deep research功能进行产品调研,如果发现其商业计划可行,首先制定合理的的AI开发计划——选定合适的前后段,数据库以及云方案,再让LLM生成项目README以及项目开发的定制Project Rules,之后就能开始愉快的vibe coding了。之后再通过AI的视频,图片等生成功能快速制作宣传媒介在媒体平台上推广MVP,投入市场进行测试并收集反馈,周而复始。
在这个过程中最好维护起自己的私人模型数据库以及文档,让模型可以共享记忆,同时未来依托这些文档可以快速进行商业模式的转型和变现。
理想的能力树
- 思维
- 产品思维
- MVP逻辑:快速迭代开发
- 编程基础
- 懂简单的脚步语言
- 了解变量,函数等基础知识
- 拥有简单Debug经验
- 对前后端的基本知识
- 懂基本的前后端框架
- 会建立简单的API路由,会用postman调试
- 数据存储:简单的数据库使用
- 版本控制,代码存储:git
- 云服务:AWS,Azure等
- 部署&运维
- 服务器免管平台:Vercel等
- 平台自带CI自动部署
- 意识
- 安全意识:常见注入,漏洞检查
- 法律意识:隐私,知识版权与合规
- AI使用
- 了解大模型的基本概念,运行原理
- Prompt Engineering,善用deep research
- 使用AI维护记忆/文档
- 商业推广
- 流量思维
- 视频制作能力(利用AI)
AI会在未来完全替代程序员吗?
正如上文说到的,当前AI编程在各个方面都还存在着局限性。
很多很细节的,人类程序员认为是直觉的,抽象的,习以为常的事务,(例如看一眼web的显示效果找到不协调的地方)在AI编程上可能都是挑战。而Agent能否完全在每一个步骤上独立自主,决定了其是否能在未来完全作为一个独立的程序员完成任务。
在另一方面,我们也会担心AI编程是否真的可靠
本质上,大模型还是一个概率模型。我们通过不断的训练和约束模型可能是其可能无限逼近正确答案,甚至无限解决各种能力上的Corner Case,但是最终的结果也许还是不一定可控。因此在一些重要的系统上,有经验可靠的人类程序员一定还是会被保留。
普通Junior程序员和实习生将何去何从?
可以预见的是,AI软件工程师的逐渐成熟一定会导致企业削减其对于Junior程序员以及实习生程序员的需求。当前的CS毕业生就业可能正在面临前所未有的挑战,可以说是后有追兵前有堵截。此外一些普通的程序员可能也在面临被裁员的命运。
我通过LLM的deep research功能做了一些AI是否会替代白领的分析,有兴趣可以看这个【帖子】,但是总的来说,拥抱AI,成为Agent工程师,或是向产品经理,以及拥有复合开发技能的工程师,个人开发者(上文所提到的)转型也与会是这个AI带来剧烈变革时代新就业者的主要出路。
- Author:Jingsheng Chen
- URL:https://jingsheng.dev/article/006cn
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!