我原本也以为,OpenClaw 最值得写的是 SOUL.md:几行文字让助手有脾气、有口吻,传播起来太顺了。可顺着一次消息真正走完源码,我改了主意。人格文件只是墙纸,OpenClaw 的主体其实是一台放在家里的 agent 路由器。
一条消息到底经过什么
无论消息来自 WhatsApp、Discord、CLI 还是控制界面,它都先进入一个常驻的 Gateway。默认情况下,这个控制平面只监听本机 127.0.0.1:18789,客户端和 node 通过带类型的 WebSocket 协议接入。
Gateway 接到消息后,大致做五件事:
- 根据 channel、账号、群组或发送者,把消息映射到 session key;
- 找到对应 agent 的 workspace 和运行状态;
- 组装
AGENTS.md、SOUL.md、USER.md、MEMORY.md等上下文; - 按 tool policy 决定模型能看见哪些工具,再按 sandbox 设置决定工具在哪里跑;
- 把执行事件和最终回复送回原 channel。
这套结构的价值在于“汇合”。手机是入口,浏览器是 node,模型只是可替换的推理部件,真正连续存在的是 Gateway 里的路由、session 和授权状态。换个聊天软件,agent 没有失忆;换个模型,也不必重做所有设备接入。
三个看似相近、实际必须分开的开关
源码文档特意把 sandbox、tool policy 和 elevated exec 分开,我认为这是 OpenClaw 最成熟的一处。
- tool policy 是能力过滤器:某个工具是否出现在模型的动作空间里;
- sandbox 是运行位置:允许的工具在宿主机还是隔离环境执行;
- elevated 只处理
exec的越界执行,并不是一张“全部放行”的通行证。
这三层如果混在一起,人们很容易误以为“隐藏了 shell 工具就安全”或者“开了容器就什么都能给模型”。OpenClaw 默认的 main session 工具仍可能在宿主机执行;workspace 也只是工作目录,不天然等于 sandbox。它很强,但不会替你取消权限模型。
那 SOUL.md 还重要吗
重要,只是重要的方式不同。SOUL.md 决定声音,AGENTS.md 决定长期规则,USER.md 提供用户背景,session 保存正在发生的对话。把它们分文件,相当于把人格、规章、关系和现场记录拆开。这比把一切塞进一条巨型 system prompt 更能维护,也更容易检查。
真正危险的细节反而在 session scope。默认 main 会让多个 direct message 汇入同一个主会话,适合“一个人、多个入口”的私人助手;如果收件箱面向多人,就应使用 per-channel-peer 等隔离方式。人格越连贯,串错人的代价也越高。
我的思考
OpenClaw 让我看到的不是又一个聊天机器人,而是“持续委托”开始进入家庭和小团队:消息入口、定时任务、浏览器、文件和设备被同一个代理连接起来。最有共鸣的会是 self-hosting 用户、技术家庭、个人工作室,以及愿意用可配置性换取控制权的人。
市场上下一块真正值钱的东西,可能不是更多 skill,而是托管加固:清晰的权限收据、按人隔离的 session、可回放的工具审计、家庭成员之间的授权边界。过去应用向你申请一次权限;未来 agent 会替你连续行使权限。社会需要学会审查的,不再只是“它能访问什么”,而是“它正在代表谁、持续做什么”。
我还会加一条更个人的判断:SOUL.md 会带来情感认同,Gateway 才会带来迁移成本。真正的产品护城河,往往藏在那部分不适合截图传播的基础设施里。