最近openclaw的热度非常高,就连一向高傲的腾讯也开始给龙虾写插件,这可是前所未有的事。
在了解了openclaw的使用后,给我的感觉就是这东西应用场景不会太大,因为全网都在教你怎么部署龙虾,确没人告诉你这东西具体有什么用,足以说明它的局限性很大了。
这篇文章我们来聊聊openclaw是什么和它能给你带来什么,当然,我不是AI领域的从业者,很多都是我从互联网总结的个人见解,如果你觉得有问题可以在评论里指出。
步入正题
在解释这个话题之前,需要先了解一些概念性的东西
大模型(AI)
从OpenAI开放ChatGPT3开始,大家才开始关注大模型,因为那时候才觉得AI似乎已经开始有了智能,不过当时的智能还仅限于博学而非聪明。它能帮你解答很多领域的问题,是一个庞大的知识库,当然对于一些简单的逻辑问题回答的也还可以。一直发展到现在,AI已经可以说是聪明了,它已经有一定的思考能力。
MCP
AI再怎么聪明始终都有一个致命的弱点,无法操作(干活),只能局限语言交流(教你怎么做)。function call的出现才让它有了一些操作能力,然后MCP统一了操作规范,不再依赖大模型厂商也能自己扩展大模型的能力。就好像一个大脑突然有了手脚,能使用工具干活了。
以前它只能告诉你怎么做,现在它可以直接帮你操作,帮你写代码,当然还仅限于操作接口,因为它还没有具象化,无法操作实体的工具(当然你也可以给工具开发接口,例如智能家居)。
openclaw
龙虾又做了什么呢?它引入了几个重要的概念:channels(聊天渠道)、skills(技能)和memory(记忆)。channels其实很好理解,只是将跟AI聊天的场地移到了一些聊天工具里,不需要再去大模型官网跟AI打字,通过大模型接口对接聊天工具其实很早就已经有了。
skills是一个markdown文件,它更像是说明书用来告诉AI如何使用工具,可以看成是mcp的扩展。memory则是给大模型实现类似记忆的功能,其中又分短期和长期记忆,短期记忆就是将所有的聊天记录一起打包给大模型,长期记忆我不太理解怎么实现的,可能是通过对聊天记录做摘要保存到md文件里。
然后你就可以在聊天软件里指挥大模型去做指定的事(调用指定的技能)。
openclaw的弊端
单从技能和记忆这两个组件就能看出一些问题:无论是短期还是长期记忆,你都需要将已经说过的话作为上下文发给AI,因为大模型本身是没有记忆的,而这会带来两个问题:大模型上下文长度有限无法处理过长的任务(可以想象一个没有记忆的人他的脑容量还很有限),重复的对话内容会导致大量的token消耗,聊的越多token消耗越快。
我们以nanobot操作GitHub的技能为例,实际的内容很简单,就是下面这个markdown
加起来也才四十几行,作为说明书它明显不合格,你看完这个能知道如何获取全部的仓库列表不?要是更复杂的功能呢,你知道说明你之前就掌握了gh这个工具的使用。同理,大模型要想熟练使用它,也需要提前掌握了,这个文件更像是给它一个提示。
这就对大模型的要求是很高,本地模型几乎很难满足大部分技能的使用。要想让小模型也懂的话,需要给这个文件写上工具的所有使用说明,单这一个技能token消耗量会非常夸张。
其实说来说去好像都是在说token消耗量大,费钱呗。那如果我不缺钱,它能不能帮我完成需求呢?
这就要说另一个问题了,skills技能都是用的一些现有的工具,然后配上说明书来使用。那是不是我们要给大模型先做好工具,然后才能做相应的事,比如要扫地我得先做好扫把再写明如何使用扫把扫地,大模型才能帮我扫地。
也就是说普通人想使用openclaw,只能看现有的技能能不能满足你的需求,因为你大概率不会写一个skill。然后你兴高采烈的去clawhub逛一圈发现,这些技能好像都用不上的感觉,如果强行用的话也能玩玩,例如每天早上让他查下天气发给你,但这除了浪费token其实软用没有。
那能不能让大模型自己去写一个技能呢?可以的。openclaw的作者说:他从未给openclaw写过识别语音的功能,但是某天给它发了一条语音,大模型自己找工具解析了这条语音并回复了他。不过复杂一点的技能就很难让大模型自主开发,可能在迭代几次后上下文就已经到限制了,目前还只能作为辅助来使用。
说到底还是因为现在大模型无法像人一样,基于视觉去解决问题,只能基于现有的接口。即使能也只是做些非常简单的功能,你让他使用浏览器去GitHub帮我修个bug提个pr,那效率想想就无法接受。
我们再举一个简单的需求:我希望在微信上做一个记账系统,当我把付款或收款的截图发给模型时,模型能识别里面的信息并保存,然后我想知道我这个月或者这周花了多少钱直接问模型就可以。这个其实用openclaw很好实现,很多模型都有视觉识图的功能,但这个需求我写代码实现其实也用不了多久。
所以目前openclaw的最主要的功能还是:借助大模型的自然语言理解能力去实现一些简单的需求,做一个零代码编程。 我觉得openclaw的发展趋势不是要让大模型多智能,而是让每个小模型去做自己专业的事(对技能专门微调模型),整个流程不应该只是一个模型既用来调度又用来任务,我们应该给调度安排一个大学生,给任务安排一群小学生,分工明确才能提高效率降低成本。
例如记账系统里,可以分为三个任务:识图、总结和保存,识图和保存都可以用小模型来做,因为这两个任务不需要多智能,可以避免占用大模型太多上下文。
总结
你现在知道openclaw的一些基础概念,我们回到标题:你真的需要养一只龙虾吗?大部分都不需要,除非你有用不完的token或者有很多重复且简单的工作,又或是想在女朋友面前装个逼。