Windsurf 是
codeium的产品,有点像 cursor + bolt.new 的结合。按照他们官网自己的解释,就是 flow=agent+copilot 。
我结合 bolt.new 和 windsurf 做了一个尝试,开发了一个 Lisp 风格的 Prompt 生成器。以下是大概的过程。通过这样的过程,我想搞清楚,这些产品面向什么用户、未来会怎么发展,是不是可以 Agent 主导?
Lisp 风格 Prompt 生成
在即刻上挺流行的Prompt写法,但需要懂一点 Lisp 。对于普通用户来说,略麻烦,于是我就做了一个简单的工具,用户输入想要的 prompt,例如:吐槽大会、营销文案,自动产生最终的 Lisp 风格的 Prompt 。
UI 见后面的图
Prompt结果类似:
背景补充,我并不懂 Web 前端开发,前两周,借助 cursor 算是了解了一些 next.js 全栈。
尝试 bolt.new
我给 blot.new 输入的需求是:
创建一个AI 工具:帮助用户生成 Prompt。主要操作:用户输入需求,点击生成,在 prompt 区域展示结果,通过 markdown 渲染。注意界面设计的美观。
这里有一个普通用户可能不理解的 markdown,但这个不重要。bolt.new 在默认的模版驱动之下,工作的很好,大概一分钟后。
默认使用的技术栈我并不熟悉,于是我进一步提出了要求,比如使用 next.js,version 15 来开发这个 demo 。这时,bolt.new 做得不好:
-
next.js 的版本是 14
-
额外生成了大量冗余的组件,来自 shadcn
这一个小细节,反映了 bolt.new 的问题,它内置了很多模版,但是超过这些模版的内容效果并不好。而且模版是固定的,无论用户是否需要。
这是 next.js 的版本,似乎是默认的好看:
这里我感受到了 bolt.new 的产品设计的挣扎,不如 cursor纯粹简单。cursor 就面向工程师。而 bolt.new 希望可以面向普通用户,做了大量的模版,但这些模版却一定程度成为工程师的障碍。
这种挣扎在 windsurf 上也能看到,在 windsurf 上还有一点困惑,最后总结。
细节调整
在进一步开发之前,我使用 windsurf 把上面的提示词给了Cascade(类似 cursor 的 chat),就是这里:
我试了三次,三次 windsurf 都失败了。不如 v0.chat,不如bolt.new,也不如 cursor 的 composer,还有待进步。
细节上,我做了两个小点:
-
实现 next.js api,通过 openai 的 sdk 调用 OpenRouter 的 API
-
增加了 markdown 渲染代码,拷贝代码
整体感受不如 cursor 。
对比起来,cursor 是以人为中心,而 windsurf 试图以 AI 为中心。这是一个巨大的差异。
对 cursor 的对比:
-
windsurf 的上下文感知是自动的,这个比 cursor 先进一些,代价是废 token 。但这个对工程师而言,必要性不大。
-
tab提示都挺强,也都挺快。
-
在debug 上,cursor 体验更好,效果更好。
-
因为 cascade 的核心是 agent,不管做啥都有一个 workflow,这个有点过犹不及,并不是每次都需要,而且,这样真的很慢。
-
windsurf 可以直接执行命令,这个很方便,会有更多的玩儿法。不过也有一定的风险,今天就提示了一个 rm -rf,让人一惊。所以,最好是每个项目单独一个虚拟环境。