OC
OpenClaw 中文解释版

给五岁小朋友也能看懂的说明书

简要总结

Multi-Agent Sandbox & Tools

这页说明书是教你怎么给不同的“小助手”安排不同的“小房间”和“玩具箱”的。就像你有好几个机器人朋友,有的可以帮你画画,有的只能陪你聊天。这页会告诉你,怎么给每个机器人朋友设置它自己的活动范围和能玩的玩具。当你需要让不同的机器人做不同的事情,或者想让一些机器人更安全时,就可以看看这页。

五岁小孩版解释

想象一下,你有很多个机器人小助手,它们都是你的好朋友。现在,我们可以给每个好朋友安排一个自己的“小房间”(这叫做 Sandbox,沙盒),还可以决定它能在房间里玩哪些“玩具”(这叫做 Tools,工具)。这样,有的好朋友可以帮你做很多事情,有的好朋友只能做一点点安全的事情。

第一步:给每个小助手安排小房间和玩具 每个小助手都可以有自己的设置。最重要的两件事是:

  1. 小房间怎么安排:在 agents.list[].sandbox 这里设置。你可以把它想成是给每个机器人指定一个游戏区。
  2. 玩具怎么管理:在 tools.allowtools.deny,还有 agents.list[].tools 这里设置。allow 是允许玩的玩具,deny 是不允许玩的玩具。

第二步:看看例子就明白啦 说明书里给了几个例子,就像搭积木的图纸。

  • 例子1:一个叫“Personal Assistant”的小助手,没有小房间(mode: "off"),什么玩具都能玩。另一个叫“Family Bot”的小助手,被关在一个叫 Docker 的小房间里(mode: "all"),而且只能玩“读”这个玩具(allow: ["read"])。
  • 例子2:一个“工作”小助手,它的小房间是和其他小助手“共享”的(scope: "shared"),它能玩的玩具有读、写、执行等,但不能玩浏览器。
  • 例子3:这里告诉你,如果大规则(agents.defaults)和小助手自己的规则(agents.list[])不一样,听谁的呢?听小助手自己的!它自己的设置更重要。

第三步:要记住的重要规矩

  1. 小助手们的秘密不共享:每个小助手都有自己的小盒子(agentDir)来放自己的秘密(比如登录密码)。它们不能互相看对方的秘密。如果你想两个小助手用同一个秘密,你得手动把秘密文件复制过去。
  2. 玩具的发放顺序:发玩具是有顺序的,像过筛子一样,一层层过滤。大规则先过滤一遍,然后是小助手自己的规则,最后是小房间的规则。记住哦:一旦在某一层说不许玩某个玩具,后面就不能再让它玩了。
  3. 小心“non-main”这个词:如果你在总规则里写了 mode: "non-main",意思是“除了主小助手,其他都关进小房间”。但这里判断谁是“主小助手”,不是看它的名字(id),而是看一个叫 session.mainKey 的东西。所以有时候可能会搞错。最保险的办法是,如果你不想关某个小助手,就直接在它自己的设置里写 mode: "off"
  4. 一个特殊的“setupCommand”命令:这个命令像是一个“房间布置指令”,只在给小助手创建 Docker 小房间的时候运行一次,用来提前把房间布置好。

第四步:设置好了,怎么检查? 设置完以后,我们可以检查一下:

  1. 用命令 openclaw agents list --bindings 看看小助手们都安排对了吗。
  2. 用命令 docker ps --filter "name=openclaw-sbx-" 看看小助手们的小房间(Docker 容器)是不是都建好了。
  3. 试着让小助手用一个你不允许它玩的玩具,看看它是不是真的用不了。
  4. 看看运行日志,用命令 tail -f .../gateway.log 来观察,里面会告诉你小助手们都在干嘛。

第五步:如果出问题了怎么办?

  • 问题:我让小助手进小房间(mode: "all"),它怎么没进去? 检查:看看总规则(agents.defaults)里是不是有不一样的设置。记住,小助手自己的设置最管用,所以要在它自己的设置里写清楚 mode: "all"
  • 问题:我不许小助手玩某个玩具(写在 deny 里),它怎么还能玩? 检查:看看玩具的过滤顺序。是不是在其他地方(比如总规则)又允许它玩了?记住,一旦在某一层说不许玩,后面就不能再允许了。
  • 问题:我想要每个小助手都有自己的独立小房间,怎么没分开? 检查:在小助手的设置里,看看 scope 是不是设成了 "agent"。如果设成 "session",那就是按每次聊天来分房间,不是按小助手来分。