OC
OpenClaw 中文解释版

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

简要总结

Multi-Agent Routing

这页说明书在教你一个“多智能体路由”的魔法!想象一下,你有一个大城堡(Gateway),里面可以住好几个不同的小机器人(Agent)。每个小机器人都有自己的小房间(Workspace)、自己的玩具箱(agentDir)和记事情的小本子(Session)。这页就是告诉你,怎么让不同的人发来的消息,自动找到对的机器人去聊天。比如,让爸爸的消息去找“工作”机器人,让妈妈的消息去找“家庭”机器人。当你想要让一个城堡服务好几个人,或者让一个机器人专门做一件事(比如写代码,另一个专门聊天)的时候,就可以看这页啦!

五岁小孩版解释

什么是“一个智能体”?

你可以把一个“智能体”想成是一个完整的小机器人脑袋。每个小机器人都是完全分开的,它们有:

  1. 自己的小房间:里面放着它的规则说明书(像 AGENTS.md, SOUL.md)、笔记和玩具(文件)。
  2. 自己的玩具箱:叫 agentDir,里面放着它登录各种聊天软件(比如微信)的密码钥匙(auth profiles),还有它自己的小设置。
  3. 自己的小本子:叫 Session,用来记住和谁聊过天,聊了什么。

重要提醒:每个机器人的密码钥匙都是它自己的,不会自动分享给其他机器人。所以,千万不要把 A 机器人的玩具箱(agentDir)直接给 B 机器人用,那样它们的钥匙和聊天记录会打架,弄乱的!如果你真想分享密码,可以小心地复制 auth-profiles.json 这个钥匙文件过去。

怎么开始玩多个小机器人?

别担心,有个“机器人小助手”(agent wizard)可以帮你。就像搭积木一样,跟着这些步骤做:

  1. 给每个机器人建一个小房间

    • 要做什么:创建新的、独立的小机器人。
    • 怎么做:在电脑的命令行里,输入 openclaw agents add 机器人名字。比如,openclaw agents add coding 创建一个叫“coding”的编程机器人,openclaw agents add social 创建一个叫“social”的社交机器人。
  2. 给机器人准备聊天软件的账号

    • 要做什么:为你喜欢的聊天软件(比如 Discord, Telegram, WhatsApp)创建账号,每个机器人最好有自己的账号。
    • 怎么做:这步需要在那些聊天软件里操作。比如在 Discord 为每个机器人创建一个“Bot”(小机器人),拿到它的专属密码(token)。然后,在我们的系统里用 openclaw channels login --channel whatsapp --account 账号名字 这样的命令登录。
  3. 告诉城堡,哪个账号的消息去找哪个机器人

    • 要做什么:设置“绑定规则”(bindings)。
    • 怎么做:需要修改一个叫 openclaw.json 的配置文件。在里面,你要列出所有机器人(agents.list),列出所有聊天账号(channels.<channel>.accounts),然后用 bindings 把它们连起来。下面会举例子。
  4. 重启城堡并检查

    • 要做什么:让刚才的改动生效,并看看一切是否正常。
    • 怎么做:依次输入下面三个命令:
      • openclaw gateway restart (重启城堡)
      • openclaw agents list --bindings (看看机器人和它们的绑定规则)
      • openclaw channels status --probe (检查所有聊天账号的连接状态)

一个有趣的例子:一个 WhatsApp 号码,服务多个人

即使你只有一个 WhatsApp 手机号,也能让不同的人的消息由不同的机器人回复!这就像你有一个总机号码,但可以根据来电号码转接给不同的分机。

  • 要怎么做:在 bindings 规则里,匹配发消息人的手机号码(像 +8612345678900)。设置 peer.kind: "direct" 表示这是私聊。
  • 要注意什么:虽然消息由不同的机器人处理,但回复消息时,对方看到的发送者还是你原来的那个 WhatsApp 号码,不会变成机器人自己的号码。而且,这种私聊会共用机器人的“主会话”,所以如果要完全分开,最好还是“一个人对应一个机器人”。

消息是怎么找到机器人的?(路由规则)

城堡收到一条消息后,会像玩“找不同”游戏一样,按照从最具体到最一般的顺序,看看这条消息符合哪条 bindings 规则:

  1. 首先看:是不是发给某个特定的人或群peer 完全匹配)?
  2. 然后看:是不是在某个聊天线程里(parentPeer 匹配)?
  3. (如果是 Discord)看:发消息的人是不是有某个特殊身份guildId + roles)?
  4. (如果是 Discord)看:是不是在某个服务器里(guildId)?
  5. (如果是 Slack)看:是不是在某个团队里(teamId)?
  6. 看:是不是来自某个特定的聊天账号accountId 匹配)?
  7. 看:是不是来自某个聊天软件,不管哪个账号(channel 匹配,accountId: "*")?
  8. 如果以上都不符合,就交给默认机器人(在 agents.list 里标记了 default: true 的那个,或者第一个机器人)。

小提醒:如果有多条规则在同一级别都匹配,排在最前面的那条会赢。一条规则里可以设置多个匹配条件(比如既要匹配 peer 又要匹配 guildId),那就必须所有条件都满足才行。

给机器人穿上“防护服”(沙盒和工具限制)

从某个版本开始,你可以给每个机器人单独设置“防护服”(沙盒)和规定它能使用哪些“工具”。

  • 防护服(沙盒):就像给机器人一个独立的游戏围栏,它在里面玩,不会弄坏城堡其他地方。你可以设置 sandbox.mode: "all" 来强制它始终在围栏里玩,或者 "off" 让它自由活动。
  • 工具限制:你可以用 tools.allow 列出允许它使用的工具(比如只让“读”文件),用 tools.deny 列出禁止它使用的工具(比如不让“执行”命令)。
  • 好处:这样更安全!比如,你可以让处理家庭群消息的机器人限制多一些,只允许它使用少数几个安全的工具;而让你自己用的私人机器人拥有所有权限。

重要注意:有一个叫 tools.elevated 的高级工具权限是全局的,不能针对每个机器人单独设置。如果你需要限制某个机器人不能运行命令,就在它的 tools.deny 列表里加上 "exec"