最近升级到 OpenClaw 2.0,看到 Multiplayer 多人协作功能出现在版本信息里,我的第一反应并不是“又多了一个可以把同事拉进来聊天的入口”,而是:这是 agent 使用方式从“私人助手”走向“团队公共设施”的一个关键变化。
怎么理解这个判断?如果只是让两个人在同一个终端界面里敲命令,那根本不需要专门做一个叫 Multiplayer 的功能,开一个共享屏幕或共享窗口就能完成。多人协作真正要解决的问题是:多个成员或角色在同一套 agent 基础设施上工作,既能共享工作区、技能和记忆,又不能让彼此的会话、文件、权限和审批结果互相污染。单看这个表述就会发现,这件事的重点不是“多”,而是“边界”。
所以这篇文章不打算逐条念更新日志,我想聊的是:OpenClaw 2.0 的 Multiplayer 对普通用户、小团队和想把它接入真实业务的人分别意味着什么,以及实际落地时最容易在哪些地方翻车。
1. Multiplayer 不是聊天室功能,它是 agent 工作区的一次“边界重构”
1.1 单人版本为什么跑得顺,但也很难扩展
OpenClaw 早期版本本质上是一个以单用户为中心设计的工具。它给你的是一块独立 workspace,一个相对连续的上下文,一套由你自己确认过的执行审批规则。你让它读文件、改文件、访问某个服务,它记录下来的偏好、习惯和项目状态都围绕“你这一个人”展开。
这种设计在个人使用场景里非常顺。你在自己的开发机上跑一个 OpenClaw,它知道你允许哪些命令,知道你习惯用什么方式组织结果,也知道哪些任务你是反复在跑。它不需要处理“别人会不会误改这个文件”这类问题,也不需要处理“某个动作到底是谁授权的”这种权限问题。
但一进入团队场景,问题就来了。
如果团队里每个人都各自搭一个 OpenClaw 实例,信息和任务就会散落在每台机器上。你在这个实例里沉淀下来的 Skill、规则和上下文,另一个人完全看不到。哪怕你们执行的是同一套流程,也得各自配置一遍。这是“信息孤岛”。
如果反过来,整个团队共用同一个实例、同一个终端入口,又会变成另一种灾难:A 的任务写到一半,B 进来问了另一个问题,上下文立刻混在一起;A 批准过的命令,也可能被 B 的一次请求重新触发。长期下来,工作区会变成一个谁都不敢动的共享杂物间。
所以 Multiplayer 如果只是解决“让你能看到同事正在做什么”的问题,它其实是伪需求。真正有价值的方向,是给同一个 agent 工作区引入身份、会话、权限和记忆边界,让多人可以“靠近但不相撞”地使用同一套基础设施。
1.2 从“共享会话”到“共享工作区”,中间隔着权限和记忆
我更喜欢把这次变化理解成一个类比:过去你是在办公室的投影仪上把屏幕投给其他人看,大家能看见你的操作,但不能真正插手,也不能保留自己的版本。Multiplayer 要做的是把它变成一份共享文档:每个人都可以在同一个文件上协作,但谁有编辑权、谁只有阅读权、谁的修改会被记录,这些规则是清晰的。
这个类比很重要。因为一旦进入共享工作区模式,团队需要关心的就不只是“agent 能不能回答这个问题”,而是至少三层:
- 这个成员能不能看到当前工作区的所有文件?
- 这个成员触发一次命令执行,是否要经过审批?
- 这个 Agent 的长期记忆,应该记住谁的信息,又该向谁公开?
只开放会话,不处理权限,和只开放文件、不处理审批,效果都一样:看起来全员都能用了,实际上风险被转移到了看不见的地方。
我见过不少团队在引入 AI Agent 协作类功能时,第一步想的是“怎么让更多人能用起来”,而不是“怎么让大家安全地停下来”。这其实把顺序搞反了。先处理边界,再开放使用,是多人协作类项目更稳妥的路径。
2. 从单机到多人,先过工作区、记忆和审批这三道坎
2.1 工作区隔离与项目级共享
OpenClaw 在使用过程中会产生一个名为 workspace 的目录。个人使用时,它在.openclaw/workspace下,里面通常放着 Agent 可以读取和写入的文件。在 Windows 上,可能还会看到类似C:\Users\Administrator\.openclaw\workspace的路径;在 Linux 服务器上,常见位置是~/.openclaw/workspace。
单个用户只有一个 workspace,目录结构相对简单。但多人协作一打开,你首先要做的不是把所有人的目录都指向同一个位置,而是想清楚这个 workspace 到底对哪些人共享。
常见的做法是按诉求拆成三类:
| 成员类型 | 对工作区的访问 | 典型诉求 |
|---|---|---|
| 只读协作者 | 可以看 Agent 处理结果,但不想碰内部文件 | 查看任务进度、复核输出 |
| 任务执行者 | 允许 Agent 在工作区里读写任务相关文件 | 执行批量处理、生成报告 |
| 管理员 | 能够修改配置、Skill、审批规则 | 维护实例、处理异常 |
这看起来像是普通权限系统,但在 Agent 场景里,还要再加一层:Agent 本身会在工作区里产生文件、修改文件。所以你不能只限制“人”的访问,还要限制“通过 Agent 触发的访问”。如果某个协作者可以要求 Agent 读取并删除工作区里另一个人的文件,那这个协作系统就是没做完的。
我当时给自己定的一条判断标准是:永远不要让两个不同项目共用同一个 workspace,除非你能接受他们之间的文件被 Agent 混淆。项目隔离往往比用户隔离更靠近业务。
2.2 Active Memory:能共享的记忆才有价值,不能共享的记忆要能隔离
很多人在了解 OpenClaw 时都会看到一个词叫 Active Memory,也就是长期工作记忆。单向使用场景下,这个机制很好理解:它让 Agent 能跨会话记住一些项目状态、偏好和关键约定,不用每次从零开始。
但多人协作会让“记忆”变成一个双向风险。
如果记忆是共享的,任何一个人的对话都可能成为 Agent 的“背景知识”。A 和 Agent 说了一些关于某个客户的判断,B 下一次让 Agent 总结工作时,Agent 可能就会把 A 的私下上下文带进来。这不一定是 Agent 想那么做,而是它默认“当前记忆库里的内容都可以被当前会话使用”。
所以更稳妥的用法不是把 Active Memory 当一个大杂烩,而是要像“会议纪要和私人笔记分离”一样处理:
- 项目公共状态:比如当前版本、已知问题、统一命名规范,适合进入共享记忆;
- 个人偏好与临时任务:比如某人今天想用什么语气、某人正在测试哪个方向,应该留在会话上下文或独立记忆里;
- 敏感信息或隐私内容:一开始就不应该让 Agent 读取,更不应该被它总结进长期记忆。
从工程经验看,多人模式下记忆宁可少记,也不要乱记。因为记忆一旦进入系统,后续所有参与者都会默认它有效。你需要的是“可以被追溯的记忆”,而不是“被所有人误以为是共识的记忆”。
2.3 旧版 exec-approvals 是升级时最容易被忽略的入口
如果你之前已经在服务器上跑过 OpenClaw 的旧版本,升级到 2.0 并准备使用多人协作功能时,很可能会在启动日志或终端里看到一个类似这样的提示:
legacy exec approvals exist at /root/.openclaw/exec-approvals.json这个文件里保存的是旧版本中“你是否允许 Agent 执行某类命令”的审批记录。单人使用的时候,你在那里批准过的命令,基本只代表你个人的判断。比如你允许它访问某个目录、允许它执行某条脚本,都是基于你的使用习惯和风险偏好。
但在多人场景下,这个文件不能直接从旧版本继承过来使用。原因是:旧审批是“之前那个人”同意的,不代表“当前这个团队成员”有能力或有权做同样的判断。
我遇到过一些用户,看到 Multiplayer 推出后一激动,直接把这个 exec-approvals.json 里的内容全部清空或改成全部放行,想把 Agent 变成“全自动协作助手”。这个做法在后端服务里风险极大。因为一旦某个协作者成功让 Agent 进入某个审批放行路径,那个动作就不是以个人身份执行的,而是以整个工作区的权限执行的。
正确的做法是:
- 升级前先备份
.openclaw目录; - 启动新版本后,遇到 legacy exec-approvals 提示,不必急着删除;
- 仔细确认里面每一条规则是否仍然适用;
- 如果不再确定,就重置审批状态,让 Agent 在多人环境中重新按需向你或管理员申请;
- 给不同的成员分配不同的审批范围。
注意:不要为了图省事,在多人协作模式下把命令审批设置成“全自动放行”。审批不是用来降低效率的,它是事件发生前唯一一个可以拦截“不该执行的命令”的机会。
3. 多人协作落地容易出问题的地方,基本都在“边界处”
3.1 接入微信和外部平台后,身份识别比功能本身更难
OpenClaw 经常被接进微信群、公众号或个人微信,用来做消息处理、自动回复和简单任务执行。单人使用时,接入一个聊天 IM 平台是很自然的:这个微信账号就是“你的”Agent 账号,所有消息默认来自你一个人。
但多人协作一接入类似平台,问题就变得很具体:如果你的 Agent 用一个微信账号服务好几个人,它能不能区分消息到底是谁发的?
这个问题比表面看起来严重得多。以一个微信群为例,Agent 如果只是在群里响应消息,它看到的只是文本,不会自动知道“这条消息背后对应工作区里的哪个成员”。结果就是,A 让 Agent 查一个项目文件,B 紧接着问 Agent“刚才那个结论是什么”,Agent 可能直接把 A 的上下文当作答案输出给 B。
不是说不能接入,而是要重新设计消息入口和身份的映射关系。实际落地时通常要确认三件事:
- 每个外部会话能不能被稳定映射到一个内部成员身份?
- 同一个工作区里不同成员的对话,能不能做到读取和写入的隔离?
- Agent 对外发送消息时,能不能避免把别的成员的信息带到当前对话里?
如果这三个问题里有一个没有答案,我建议先不要把这个外部入口开放给团队。先保留个人使用,等身份绑定逻辑验证完整,再逐步放量。
3.2 多模型和批量任务放大的是成本与并发问题
不少 OpenClaw 用户会配置多个模型,用来处理不同类型的任务。有的任务用轻量模型跑,有的任务需要更强推理能力;也有人在云端部署时引入 NVIDIA NIM 这类本地加速方案。你在热词里也能看到 OpenClaw、多模型、NVIDIA NIM 经常被放在一起讨论。
单用户使用多模型时,最大的问题是“选错模型”。比如你在某个配置里写了一个模型名,但实际 provider 不认,启动后可能就会出现类似unknown model的报错。这种问题在一个用户手里只是改配置的事。
但在多人协作环境里,多模型配置会变成成本问题和管理问题。
如果每个新加入的成员都能自由选择模型,月底你看到的可能不是协作效率提升,而是 token 消耗账单直线上升。更麻烦的是,当多个成员同时发起批量任务时,同一个模型服务会被并发请求挤爆,出现超时、限流、无响应。
我常用的安全处理方法是:
- 系统默认只开放一个模型,所有新成员先使用默认配置;
- 需要切换模型的成员,单独申请白名单或单独配置;
- 批量任务设置并发上限,不在公共工作区直接跑超大并发;
- 模型名和 provider 配置先做一次最小请求测试,再开放给其他人用。
不要一上来就让“每个人都用自己的模型”成为协作的默认状态。多人协作的价值不在于让每个人用自己最喜欢的模型,而在于让不同角色能共享一套稳定的任务执行路径。
3.3 一张可以照着做的排查链路
OpenClaw 的多人协作场景下,很多问题表面上看起来是“Agent 没回复”或“Agent 回复错了”,但真实原因通常在更外层。这里给你一个我在现场会优先执行的排查顺序:
- 先确认现象:是没回复、回复慢、还是回复内容异常?
- 再确认触发方:这条请求到底来自哪个成员、哪个外部会话?
- 然后查工作区路径:它读取的是公共工作区还是个人工作区?路径有没有权限错误?
- 接着查执行审批:这个动作是不是被审批规则拦截了?
- 再查模型配置:使用的模型名、provider、API key 是否在当前环境有效?
- 最后看日志目录:OpenClaw 的 runtime 日志里有没有明确的报错或 warning。
曾经有一位用户告诉我,他的 Agent 在多人接入后“开始答非所问”。我让他先去查上一轮会话是否来自另一个人。结果发现消息源本质上没有做身份区分,Agent 把上一段对话历史当成了新上下文,自然就会答非所问。
这类问题不是模型能力不够,而是边界没有做好。很多人会把锅甩给“Agent 不够聪明”,但从工程角度看,这更像是“给 Agent 的数据流没有按人隔离”。
4. 建议怎么用:先个人的最小闭环,再团队的受限灰度
4.1 适合先采用 Multiplayer 的团队,以及不适合的情况
Multiplayer 听起来人人都能用,但并不是所有团队都适合在第一波就引入。
适合先用起来的团队,通常有几个特征:
- 团队规模不大,大概 3 到 10 人之间;
- 任务本身有清晰边界,比如“谁负责内容整理,谁负责数据检查”;
- 已经有明确重复的 Agent 工作流,不是还在探索阶段;
- 团队里有人愿意承担管理员职责,处理权限、审批、日志和配置;
- 大家对 Agent 能做什么、不能做什么,有比较一致的理解。
不适合立刻引入的情况也很明显:
- 只有一个人使用 OpenClaw,暂时没有团队协作需求;
- 团队人数很多,但没有角色和任务边界,只想着“大家一起用同一个工具”;
- 业务涉及强敏感数据,且还没有审计能力;
- 团队里没有专职或兼职管理员,出了事没人能快速处理配置和权限问题。
我特别想强调最后一点。多人协作模式不是把单机配置复制给多个人。它的日常维护成本变高了,因为你需要同时关注记忆库、审批文件、外部入口、模型配额和日志。如果这些都没有人管,那功能越丰富,风险越大。
4.2 一个可以复用的落地顺序
如果你已经决定尝试多人协作,我建议不要直接进入“团队所有成员同时使用”的阶段。更稳妥的顺序是:
第一,先跑通单人最小闭环。确认 OpenClaw 能正常启动,默认模型能回复,工作区目录存在,你可以在本地执行一个简单任务并看到输出。
第二,检查审批文件。升级新版后如果存在旧的 exec-approvals 文件,不要急着删除,也不要批量放行。逐条判断哪些规则需要保留。这一步在单人模式下就可以完成。
第三,新增第二个用户,用受限权限验证边界。让另一个成员加入同一套工作区,但不给他直接修改配置的权限。让他执行一个简单任务,观察他能否看到不该看到的内容。
第四,验证共享记忆边界。准备一条只有公共项目状态该进入 Active Memory 的任务,再准备一条包含个人信息的任务,确认 Agent 不会把后者总结成全局记忆。
第五,做一次并发与批量测试。让两个成员分别发起两个批量任务,观察模型调用是否超限,工作区文件是否互相覆盖,日志是否记录了两个人的请求。
第六,最后再考虑接入微信等外部平台。因为外部平台的自由度高,一旦接进来,身份映射和消息边界的问题会被放大。
你可以在完成每一步后做一次验收记录。比如:
- 单人最小闭环是否稳定?
- 新用户是否可以看见/修改不属于自己的文件?
- 旧审批规则是否已经被重新确认?
- Active Memory 里是否出现了不属于公共知识的个人内容?
- 两个并发任务是否都能正常结束?
- 外部会话能否稳定映射到内部成员身份?
如果这些条件都满足,你再让更多人进来。如果某个环节失败了,就停在那一步,先修边界,再扩规模。
不要用“人多了自然会有问题”来安慰自己。多人协作里出现的问题,通常不是并发量变大才出现的,而是边界从一开始就没划清。
5. 这件事的长期影响,不是增加人数,而是让 agent 变成基础设施
OpenClaw 2.0 加入 Multiplayer,看起来是功能列表上多了一行字。但它真正值得长期关注的地方,是它把 Agent 的使用方式推向了一个更底层的变化:从“我的私有工具”变成“团队的公共基础设施”。
任何工具一旦变成公共设施,就需要回答几个原本不需要回答的问题:谁能使用它?谁能通过它触发动作?它记住的信息属于谁?一个成员的处理结果,是否应该默认被其他成员看到?这些问题都不是“配置一个参数”就能解决的,它们更像是一套组织协作规则。
所以我并不建议每个人都立刻把 OpenClaw 升级到多人模式然后拉满全团队。对这个功能比较务实的用法,是先从自己的实际工作流出发,确认你已经受困于“单人上下文无法交接”或“多台实例之间的信息孤岛”,再去考虑引入多人协作。
在单人使用阶段,OpenClaw 的优势是低摩擦:一个工作区、一份配置、一套自己的审批偏好。到了多人协作阶段,它换来了共享,但也要付出新的摩擦:你需要处理权限、审计、记忆边界、模型成本和外部平台身份映射。
这种摩擦并不是坏事。它意味着 Agent 从“个人玩具”走向“团队工具”的那条路,终于有了一个真正需要设计边界的入口。能在早期把边界这件事想清楚的团队,后续大概率会把 Agent 用成稳定流程;想不清楚的团队,往往会在上线一个月后开始处理各种“它怎么把我同事的话当成我的指令”的诡异问题。
你最终会理解:Multiplayer 的价值不是让更多人用上同一个 Agent,而是让每个人都能在共享的 Agent 环境里,安全地保留属于自己的上下文。这个平衡,才是多人协作功能真正要解决的长期问题。