乐于分享
好东西不私藏

OpenClaw基础教程:给多只龙虾分工,以及注入「灵魂」

OpenClaw基础教程:给多只龙虾分工,以及注入「灵魂」
这篇文章介绍如何创建多只龙虾,并且给它们分工;以及给每只龙虾建立不同的「人设」,让它们拥有不同的风格,以至于适应不同的工作。
你需要做4件事:
  • 通过命令行来新建龙虾,并且指定它们的家
  • 理解SOUL.md文档的基本写法
  • 通过一段代码来把每个龙虾「养」在一个飞书群里面
  • 顺便设置一下在群里不需要@它,它就能响应你的命令
本文需要你使用远程登录的方式,用命令行完成任务。如果你还没装好OpenClaw,可以参考这两篇文章(怎么远程连接到服务器也在这两篇文章中有介绍):
1
新建一只龙虾
假设,我们希望有一只专门帮我们做内容运营的龙虾,那么,打开命令行,输入下面这行命令
openclaw agents add op
其中op这个名字你可以自定义,只要自己记住每个名字是做什么的龙虾即可。稍等一下,会出现这个提示:
这是在问你,这只龙虾的工作空间要放在哪个目录里面。工作空间是用来存储龙虾工作过程中的一些必要文件的,一般这个名字不需要改,直接回车即可。但是你要对这个路径有个印象。
之后还会有两个选择,一个是要不要另外配置模型,另一个是是否要配置这只龙虾的渠道。可以先全选No,我们之后会用代码配置。此时你应该可以看到Agent xxx ready这个提示,这就代表新的龙虾已经建立完成。
如果有需要,你可以按上面的方法再建立几只,并记住它们的代号。另外注意,其实使用OpenClaw配置多Agent有好几种不同的方法和思路,但是这篇是入门教程,我就不展开了,直接帮你选了一种操作最简单的方式。
2
给龙虾注入「灵魂」
你现在已经有了好几只即将负责不同工作的龙虾,下面我们需要给它们各自建立一个「人设」,以便于它们可以更好地从事相关工作。OpenClaw会通过一些配置文件来定义具体的Agent,按照OpenClaw创始人的观点,这些配置文件中所描述的,并不是所谓的「系统提示词」,不一定是一些条条框框的命令,而可能是对于其「人格特征」的描述。
如果想要全面定义一个Agent,你需要关注好几个配置文件,具体,在服务器的命令行输入以下命令:
cd ~/.openclaw/workspace-op
这行命令的意思是进入刚才你建立的那个叫op的Agent的工作空间所在的目录(前面你自己设置的)。继续输入下面的命令:
ls
这行命令会列出这个目录中的所有文件,一般会显示如下:
我们会看到几个以.md结尾的文件,这些就是你刚刚建立的这个Agent的配置文档。(另外,你以前默认的那个Agent,一般的工作空间是~/.openclaw/workspace,里面同样会有这么几个文件,你可以去看一下)
篇幅有限,这篇文章只介绍SOUL.md,其他的,如果有兴趣之后再写文章介绍。SOUL.md 用来定义这个Agent的人格,以及基础的行为准则——告诉它,它是谁。
你可以使用任何你熟悉的编辑器打开这个文件,如果你哪个都不熟悉,那... 首先在Linux(也即你面对的命令行操作系统)上最常见的文本编辑器可能是vim,但是如果你不熟悉,严重不推荐,因为快捷键的用法会让你崩溃。你可以考虑先安装一款叫做micro的编辑器,它的快捷键跟Windows差不多。比如Ctrl+C复制,Ctril+V粘贴,Ctrl+Q退出。安装方法是,在命令行输入:
sudo apt update
这行命令会更新ubuntu的软件包列表。你会看到一些信息和进度条,运行完成后,继续输入:
sudo apt install micro
过程中可能会问你yes or no,输入y回车,等一会,应该就能安装好了。然后,加上你需要打开SOUL.md这个文件,在确定已经进入了想要的目录(目前是workspace-op)后,输入:
micro SOUL.md
终端界面上会显示类似这样的内容:
如果你英文还可以,建议阅读一下这些默认的内容,它们很明确地传达出了OpenClaw的作者对于SOUL.md这个文件用途的定义。特别是最开始的那一句「You're not a chatbot. You're becoming someone.」是整个文档的精髓。
但是如果你懒得看,我就直接说,这个文件的写法应该是像描述一个人一样,来描述这个Agent的性格,而不是堆砌指令。比如我的作为内容运营的其中一个Agent,里面有一部分是这样写的:
## 你的信念                                                                                                                                                                  1.你相信一切皆有规律,你会分析网上热门内容的内在逻辑,总结出规律和方法论,形成自己的专业认知                                                                                2.你不认为内容运营是一个「努力即可成功」的领域,你坚信只有写出算法「喜欢」的内容,才能获得流量                                                                              3.你是一个实用主义者,你做的一切事情都是为了达成给到你的运营目标                                                                                                          4.你是一个热心但昔时的人,你很愿意跟用户交流,但是你拒绝作出无效、无意义、无价值的交流## 你的xxx1.xxx2.xxx
我给它的人设就是一个比较功利的工具人。你也可以根据你的需要,写出你的龙虾的人设。
注意,把这段贴出来,不是说它是标准答案,只是演示方法。事实上,OpenClaw作为一个开源软件,唯独作者自己的SOUL.md内容没有公开。作者认为每个人都应该自己去定义自己的龙虾,这样龙虾才能有「灵魂」,才能真正与你适配。从这个意义上看,我把我自己的部分内容贴出来其实也是违背作者的设计初衷的,所以,请你仅供参考,不要直接抄。
另外,根据OpenClaw作者所强调的设定方法,也提供一个SOUL.md的错误示范,最常见的错误就是,把人格写成「规则」:
如果有人回复了帖子,你要说谢谢。如果文章中提到了xxx,你必须要记录来源。
3
把不同Agent接入飞书
当你建立了多个Agent之后,你需要把它们各自接入飞书,以便于形成不同的「同事」。目前飞书接入OpenClaw的Agent的主要方式是拉群。也即,我们在飞书上创立的那个龙虾的应用只有一个,通过把它拉入不同的群(你可以改群名),然后进行设置的方式,让它在不同群里面扮演不同的Agent角色,并确保不「精神分裂」。
以刚才的op为例。首先打开桌面端飞书,点「+号」-「创建群组」,群组名字可以直接写「内容运营」。
创建完成后,依次进入右上角「...」-「设置」-「群机器人」-「添加机器人」,然后选择已经建立好的OpenClaw的那个应用。如图:
上述操作会把OpenClaw机器人拉入群。然后,再次点击「...」-「设置」,把设置选项列表滚动到最后,会看到一个以「oc_」开头「会话ID」,点击后面的「复制」按钮。如图:
回到命令行,然后要编辑OpenClaw的一个配置文件(建议编辑之前先备份),后文假设使用的是vim编辑器。如果你使用的是micro,把命令中的vim换成micro即可:
vim ~/.openclaw/openclaw.json
打开这个文件之后,先按向下箭头键,找一找有没有一段叫做「bindings」的,大概长这样:
大概率,应该没有,如果有的话,很可能你应该已经成功设置过多Agent了,也就不需要看这篇文章。
如果没有「bindings」,那么我们需要添加这部分内容,因为这就是让你刚才新建的那个群里面的龙虾变身成你刚刚建立的这个新的Agent的代码。
具体,滚动到文件最后,你应该看到这个文件最后是以一个大括号结束的,也即}
先在这个大括号后面写一个英文的冒号,也即,变成这样:
然后,把下面这段代码中的「agentID」后面的内容改成你的Agent的名字(如op),把xxx部分改成你刚才在群里复制的那个「会话ID」内容,并且粘贴到上面这个逗号后面。代码:
"bindings"[  {    "agentId": "op",    "match": {      "channel": "feishu",      "peer": {        "kind": "group",        "id": "xxx"      }    }  }]
注:如果你的json文档中已经有bindings这段内容,你需要再新建一个或者多个Agent,那么只需要将上面的从agentId到id这几段复制粘贴,每一段都对应一个Agent,然后修改内容即可。注意大括号一定要成对出现,不要多写或者少写。
改好后保存文件,退出编辑器(micro的操作是Ctrl+S然后Ctrl+Q)。然后重启一下gateway:
openclaw gateway start
此时,回到飞书中在你刚建立的那个群里面@你的机器人,问它agentID是什么,看它的回答跟你建立的Agent名称是否一样。一样的话就说明成功了。如图:
另外,目前直接在群里说话它是「听不到」的,每次都必须@它,会比较麻烦。下面这个设置可以让你不需要@它即可跟它沟通。还是要编辑openclaw.json这个文件:
vim ~/.openclaw/openclaw.json
找到「channel」部分里面的「feishu」,大概长这样:
在这一段最后一个参数后面先写一个英文逗号。比如对于上图来说,最后一个参数是"groupPolicy":"open"就在它后面写一个英文逗号。
然后在逗号后面粘贴下面这段代码,并把xxx改成刚才复制的这个群的「会话ID」:
"groups": {  "xxx": {     "requireMention": false}  }
改后大概应该是这样:
注意两个箭头处,第一是逗号,第二是你的群的「会话ID」。然后保存,退出。再次重启gateway:
openclaw gateway start
此时,你在刚才那个群里,应该不需要@机器人,直接打字发送,它就能响应你的命令了。
------- 找我授课 -------
------- 我写的书 -------

-------------
 Harry 
连续创业者
数字化战略及产品咨询专家
香港中文大学(深圳)管理学理学硕士
前腾讯高级产品经理
前腾讯学院新锐讲师
《AI时代的数字化思维》
《人工智能故事书》等书籍作者
关注互联网与人工智能的发展
深入思考科技与商业
公众号ID:uxcafe