小龙虾(openclaw)安装skill时可能遇到的几个坑
上一篇文章,大家学会了怎么通过安装skill来扩展小龙虾的各种能力。本文,仍以百度搜索为例,一起来看看在安装技能(skill)时,可能会踩到的一些坑以及解决办法。
1.执行技能安装命令“clawhub install baidu-search”失败,这个大概率是因为没有先安装clawhub(上面有各种各样的小龙虾技能)导致的。可以执行下面代码进行安装:
npm install -g clawhub或yarn global add clawhub
安装完成后,在终端执行以下命令,若返回版本号则说明安装成功:
2.虽然baidu-search技能正确安装配置了,但小龙虾就是不用它。如笔者下面遇到的情况,小龙虾会调用内置工具web_search,就是不调用baidu-search。
这是因为tools.profile的设置不对,默认的 messaging 模式只允许发送消息,无法调用工具或执行命令。coding模式也只能执行内置工具(tool),无法执行外部技能。只有 full 模式才会开放所有工具执行权限,让 Agent 能够根据 Skill 的定义去调用底层 Tool。因此,调整tools.profile为full模式。同时,禁用内置tool:web_search和web_fetch。
3.小龙虾执行技能时,老要授权怎么办?这个往往是因为“exec”工具的安全配置“exec ask”选择了“always”导致的,可以把这个配置项关闭(选择“off”)就行了。
4.小龙虾调用baidu-search技能的路径特别长,一次搜索耗费大量的tokens流量:
小龙虾调用了8次工具,才给出搜索结果。这是因为小龙虾会按照内部的路由规则进行工具的尝试调用,这个路由路径比较长。要解决这个问题,一方面是可以修改小龙虾的灵魂文件SOUL.md,缩短路由路径。当然,更简单的方案,是在对话中要求它记住这个动作:
这样,再遇到搜索问题时,它就可以直接调用baidu-search技能了。
整体上,如果技能安装正确了(可以通过“openclaw skills list” 命令)看到相应技能而且状态是ready状态),而小龙虾不应用该技能的话,主要调查方向就是看tools配置项(特别是安全相关配置项)权限是否够、技能需求的API_KEY(如果需要)是否配置而且正确、技能触发词是否正确等几个方面。