我尝试了 cline 3.0.0,结果如下
现在我已经引起了您的注意,我为这个标题道歉。我试图让它值得您阅读。正如标题所说,我在真实场景中测试了 cline 3.0.0。我已经在 2.X 版本中使用了 cline,结果令人满意。两周前,新版本发布了一些漂亮的新功能,如 MCP 服务器、.clinerules 和自主模式。我想测试一下。
我构建了一个任务管理平台(todo 应用程序的更花哨的说法),我想带您了解一下它的某个特定部分,因为它有一个小细节,我不能在最后透露。这个任务管理平台(我们暂时称之为“任务”)提供了您对任务管理平台的所有期望。我可能也会在未来写关于它的文章。它缺少的是登录页面。
之前的着陆页

您可能已经猜到了,我使用 cline 为我创建了一个登录页面。它运行良好,看起来也不错。它还添加了一个推荐部分,而我并没有特别指示它这样做。但是,推荐的个人资料图片只是占位符。这时我突然想到了这一点。对于 MCP 服务器来说,这是一个非常酷的用例。
登陆页面由 cline 制作

MCP 服务器
MCP 服务器(模型上下文协议)就像是您的 AI 助手的私人助手,充当 MCP 客户端。它是一个在后台运行或可调用的小程序,可在调用时执行某些任务。
例如,假设您需要从 Web 检索数据、将文件提交到存储库或只是获取当前时间以供 AI 使用 - 这时 MCP 服务器就可以发挥作用。它会监听、等待指令并完成任务,而您无需每次都编写额外的代码。AI 了解每个 MCP 服务器的功能,并在需要时自动调用它。
在这个项目中,我需要一个 MCP 服务器来从 ThisPersonDoesNotExist.com 提取面部图像,以生成推荐信。ThisPersonDoesNotExist.com 网站前段时间非常火爆,因为每次访问该网站时,都会生成一张逼真的人像。
人脸生成器
于是我转向克莱恩说
为自己添加一个用于生成人脸图像的工具。这真的很简单。只需访问 https://thispersondoesnotexist.com。这将生成这样的图像。你只需下载它并将其存储在某个地方。给自己一些选项/参数(即保存图像的位置)。并以某种方式编写该工具,以便它可以轻松集成到编码工作流程中。例如,我们刚刚为一个网站创建了推荐。这个工具可以方便地为推荐人生成一张脸。所以我希望你能得到我想要的。”
正如您所见,我不太确定自己是否表达得足够清楚,是否能够让它工作。但可以肯定的是,服务器的初稿就是这样的。它还询问我是否应该运行。它第一次运行就没有任何问题,这很可怕。并不是说它可以生成第一次就能运行的代码。而是说,在不到一分钟的时间内,从“我真的可以使用这样的工具让我的生活更轻松”到“它就在那里,而且可以工作”是如此容易。以下是生成的一些图像。





初稿的迭代
初稿很简单,但实现了我的意图。之后,我对如何改进它有了更多的想法,并不断迭代。以下是一些提示,我利用这些提示让这个工具更加有用。
请记住,有时您需要一次生成多个图像:不确定是否最好多次调用该工具,或者是否最好使用新参数和脚本内的循环调用一次。还添加一个选项以将图像大小调整为给定大小。这应该有一个默认值,因此此参数是可选的。
我们可以添加一个选项来生成不同形状的面吗?圆形和圆角矩形会很有用。允许圆角形状使用 borderRadius 参数。
我注意到输出图像默认为 .jpg。让我们确保所有图像都保存为 .png,无论输入文件名是什么。更新文件名逻辑以强制执行此操作。
添加选项以在生成过程中调整图像大小。默认值应为 256x256,但我希望在需要时将宽度和高度作为参数传递。
正如您所见,我试图描述我想要什么,而不说如何去做,因为人工智能本身就能做到这一点。免责声明:我没有过多地审查生成的代码。从我看到的情况来看,它看起来还不错。我更专注于获得结果。最终,我得到了一个适用于不同场景的工具,并且在每次迭代中都有效,这令人印象深刻。经过一些测试后,我认为是时候对它进行测试了。
测试工具
现在我想用 Face Generator mcp 工具中的真实面孔替换占位符图像。我还忘了提到 cline 自己构建并安装了 mcp 服务器。我几乎认为这是理所当然的。8) 这部分比其他部分更难懂,我将尝试以一种来回的方式来解释它。请耐心听我说,这里有一个重要的教训。
现在调用此工具并将面孔添加到推荐中。不要使用 temp-faces 目录。使用实际为该 React 应用程序提供图像的目录。
我创建了“temp-faces”目录来测试 mcp 工具。cline 正确调用了该工具,但参数错误(3 张图像)。所以我不得不再次提示:
检查登录页面,了解您需要多少条推荐。
瞧,它生成了图像并在现有代码中正确替换了它们。但样式不正确。因此再次提示纠正此问题。
图像已正确提取。但是样式不对。请查看屏幕截图。

截图功能实际上不起作用,但这是由于我使用的模型。我只是描述了它,它正确地调整了图像大小。所以这个工具即使在真实场景中也能正常工作。现在是时候发布它了,这样 cline 就不会使用它的本地副本。也许这个工具对其他人也有用?

发布它
因此,发布意味着清理所有内容,准备发布并实际发布。此外,我必须移动它。当 cline 被指示创建一个工具时,它会使用自己的文件夹,这不是我的项目目录。我没有想太多,而是再次将注意力更多地集中在我希望 AI 做什么,而不是它如何做。以下是提示
将人脸生成器 MCP 服务器移至我的 Nodejs 项目目录。我想从那里发布它。
我省略了实际路径,因为我不想泄露目录结构。指出这一点很重要,这样就没有人会认为人工智能足够聪明,能够猜测/知道正确的目录。可能有一个用于访问文件系统的 MCP 服务器工具,所以它实际上可以弄清楚。但这里没有使用任何这些。
最后再介绍一下这个 MCP 服务器工具。我想在某个地方发布它。请准备好要发布的软件包。添加 README(例如)。不确定我们还需要什么。还请说明我可以在哪里以及如何发布它。
现在 README 和 LICENSE 已经就绪,请将人脸生成器发布到 npm。将其公开。
然后它就坏了。
npm publish –access public。我收到一条错误消息,提示该包是私有的。从 package.json 中删除“private”字段,然后重试。
此时,我意识到已经更清楚的事情。我没有告诉人工智能该做什么,而是简单地向它指出了错误,并想着“自己想办法”。对于你们中那些使用此类系统时间比我长的人来说,这可能不是什么新鲜事,但对我来说,这是一个顿悟。这也是其他系统(尤其是 cline 2.X)与最新版本的区别所在。我实际上可以反击,人工智能解决了剩下的问题。毫不奇怪,它能够克服这个问题并最终发布。如果您想查看结果和/或只需要一个 mcp 服务器工具来生成随机个人资料图片,请访问 https://www.npmjs.com/package/@dasheck0/face-generator。如果您查看 1.0.0 版本,您会在自述文件中发现一个重要的拼写错误。它应该运行“npm install @dasheck0/face-generator”,而不是“npm install @yourname/face-generator”,这会导致安装错误。当它说出这句话时,我没看到,这是另一个重要的教训。永远做飞行员(至少现在),而人工智能是副驾驶。这意味着你必须密切关注它在做什么。对我来说,无论如何,这是测试其自主能力的绝佳机会。以下是提示
我发现安装不正确,应该是“npm install @dasheck0/face-generator”。请修复它,提交它,推送它并在 npm 上重新发布它。
我自动批准了所有操作(MCP 服务器调用、编辑文件、读取文件和安全命令行执行),然后去取水。这项任务在不到一分钟的时间内就完成了,无需我干预。令人印象深刻,尽管它很简单
令人印象深刻的是,我告诉人工智能不仅仅是编码,它还可以从头到尾完成所有工作。
一些统计数据和变化
好吧,让我们直奔主题。我答应过你会有一个转折。cline 独立于 AI 模型,这意味着你可以使用几乎任何模型(甚至是开源模型)。我认为应该使用 Anthropic 的模型。至少到目前为止,我使用过的模型都是这些。而且它们变得非常昂贵。我在几天内就花掉了 50 美元。如果考虑到我手动完成所花费的时间,这仍然要便宜得多。然而,从非货币化的角度来看,它很快就会变得非常昂贵。前几天我看了一个视频,Deepseek 的表现与 Claude Sonnet 3.5 相似,但成本只是后者的一小部分。转折:所以到目前为止,你所看到的一切都是 Deepseek 模型的工作。我还没有看过基准测试,但根据我的经验,它的表现几乎与 Claude Sonnet 3.5 一样好,这对于开源模型来说确实令人印象深刻。主要区别(除了成本)在于它以更小的步骤思考。 Claude Sonnet 3.5 只需一次编辑即可完成复杂任务,而 Deepseek 则需要多次编辑。我更喜欢这种方法,因为它更适合我们的工作方式,这有助于我更好地理解它。归根结底,这只是一种不同的方法。以下是一些关于代币使用和定价的统计数据
Deepseek 和 Claude 之间的价格差异很大(成本只有 6%)。我可以肯定地说,Deepseek 是我与 cline 合作的新选择。我还可以肯定地说,cline 现在比以往任何时候都更像我的副驾驶。
概括
总而言之,这次实验非常成功,我从中学到了很多东西。在介绍我的学习成果之前,我想强调一下,人工智能是一种强大的工具,但不是解决所有问题的答案。我绝不会盲目地信任人工智能,也不会把它当作我们的救世主。我认为,现在处理这种技术很重要,尤其是作为一名开发人员。我从 2004 年开始从事软件开发,这段时间见识了很多。所以我并不是一个人工智能小子,不会因为转向人工智能就突然成为世界上最好的开发人员。我必须提到这一点,以免显得有偏见。否则会妨碍开放的对话。
最后的想法
我与上述任何工具都没有任何关联。但我是这些工具的热心用户,并想分享我的经验。这些只是我根据个人观点和实验得出的结论。您的观点可能有所不同。如果是这样,我也很乐意向您学习。您的经验、成功和失败是什么?让我们谈谈吧。