OpenClaw 多工作区 (Multi-Workspace) 架构设计与配置实践

OpenClaw
配置与部署
最佳实践
探索并实践基于 OpenClaw 的多工作区物理隔离方案,详细记录配置思路、踩坑过程以及最佳实践建议,实现不同任务身份的上下文纯净性。
Published

March 16, 2026

Modified

March 17, 2026

在 AI 助手 (AI Agent) 日益普及的今天,我们往往希望一个智能体能处理多种截然不同的任务:既能温柔耐心地辅导孩子(例如我的孩子 Andrew 和 Alice),又能冷酷理性地处理量化交易和租务管理。

为了在这些冲突的身份和任务之间保持上下文的纯净性,我探索并实践了基于 OpenClaw 的多工作区物理隔离 (Multi-Workspace) 方案。本文将详细记录我的配置思路、踩坑过程以及最佳实践建议。

1. 为什么需要多工作区?

在默认配置下,不管是通过 Web UI、Telegram 还是 QQ 接入,OpenClaw 都是在一个主代理(Main Agent)和同一个长记忆上下文(MEMORY.md)下工作的。

如果把所有的任务都塞给同一个主代理,会导致以下问题:

  • 上下文污染 (Context Pollution):辅导孩子时的”共情与温柔”和股票交易时的”理智与数据驱动”容易互相干扰,甚至导致大模型出现身份混乱。
  • 配置冲突:难以针对特定任务设置专属的大模型 API,也无法独立管理敏感的投资数据。

2. 方案对比:Sub-agent vs Multi-Workspace

最初,我考虑了两种方案:

方案 A:子代理调度 (Sub-agent Orchestration)

主代理作为路由中心,需要处理金融数据时,通过 sessions_spawn 动态拉起一个隔离的子代理处理 R 语言脚本和 Quarto 报告。

  • 优点:只需维护一个 OpenClaw 实例。
  • 缺点:所有的通信还是经过主入口,主代理的任务负载和历史记录会变得庞大。

方案 B:多工作区物理隔离 (Multi-Workspace Isolation)

运行两个相互独立的 OpenClaw 服务:

  • 主工作区 (~/.openclaw):绑定 QQ,扮演”家庭教育助手”,专注陪伴 Andrew 和 Alice。

  • 金融工作区 (~/.openclaw-finance):绑定 Telegram,扮演”量化与租务管家”,处理 R 代码与财务。

  • 优点100% 的上下文和记忆隔离。针对不同渠道精细化配置。

  • 缺点:需要维护两套配置和双重后台进程,但安全性最高。

最终,我选择了方案 B

3. 具体配置过程与最佳实践

步骤一:创建独立工作区目录

我们使用 OpenClaw 原生的 Profile 机制(--profile),它会自动将状态、配置和上下文隔离在对应的文件夹中:

# 这个命令会自动创建 ~/.openclaw-finance 以及对应的配置
openclaw --profile finance setup

步骤二:重塑智能体灵魂 (IDENTITY.md / SOUL.md / USER.md)

~/.openclaw-finance/workspace 下,我们需要彻底剥离家庭上下文:

  • IDENTITY.md:设定为”冷酷、严密、数据驱动”的量化管家。
  • SOUL.md:设定为只通过数据、图表和逻辑说话,拒绝任何情感和家庭相关话题。
  • USER.md:明确对 R 语言和响应式 Quarto (UTF-8) 报告的高要求。

步骤三:隔离通信渠道 (openclaw.json)

金融工作区应拥有专属的接收通道,以免与主工作区产生冲突:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_TELEGRAM_BOT_TOKEN"
    },
    "qqbot": {
      "enabled": false
    }
  },
  "gateway": {
    "port": 18790, 
    "bind": "loopback"
  }
}

注意:修改端口 (18790) 非常重要,否则会与主工作区端口冲突导致启动失败。同时,不要忘了将主工作区的 Telegram 禁用,避免两个 Agent 抢消息。

4. 避坑要点 (Troubleshooting)

在配置过程中,我遇到了两个主要的技术坑,以下是解决办法:

避坑一:环境变量 (.env) 未同步导致模型调用失败

由于我为了安全起见,将所有真实的大模型 API Key 配置在了一个外置的 .env 文件中。当启动新的 finance profile 时,OpenClaw 会提示所有 API Key 缺失。

解决办法:手动将主工作区的 .env 文件复制到新的 profile 目录下。

Copy-Item -Path "~/.openclaw/.env" -Destination "~/.openclaw-finance/.env" -Force

避坑二:安装后台服务报错”拒绝访问 (schtasks create failed)”

在 Windows 系统下,当我们试图运行 openclaw --profile finance gateway install 时,由于该命令会注册开机自启任务(schtasks),普通的终端权限会导致 拒绝访问

解决办法

  1. 必须使用管理员权限 (Run as Administrator) 打开 PowerShell。
  2. 在管理员终端中执行:
openclaw --profile finance gateway install
openclaw --profile finance gateway start

如果只是想临时测试而不安装后台服务,可以直接运行前台命令: openclaw --profile finance gateway

5. 总结

通过多工作区物理隔离,我在同一台物理机上成功打造了两个”互不干扰的大脑”。家庭教育助手继续在 QQ 端温暖地陪伴 Andrew 和 Alice;而量化管家则在 Telegram 端冷静地执行 R 语言策略。

这种清晰的边界不仅保护了家庭隐私,也极大提升了特定任务的执行效率。希望这篇配置实践能给有类似需求的朋友带来启发!