本文深入剖析 OpenClaw 系统中 workspace 目录的核心架构。通过解构关键配置文件(如 AGENTS.md, SOUL.md, USER.md 等),阐述如何构建具备长期记忆、稳定人格及高效协作能力的智能体(Agent)。文章区分了“内容层”(Workspace)与“系统层”(openclaw.json)的职责边界,并提供多 Agent 场景下的最佳实践与故障排查指南。
在 OpenClaw 体系中,workspace 是决定 Agent 行为逻辑、认知风格及协作能力的“内容层”,而 openclaw.json 则是负责系统引导与运行态管理的“系统层”。
1.1 目录结构映射
标准的 OpenClaw 工作区结构如下:
1~/.openclaw/
2├── openclaw.json # [系统层] 全局配置宪法
3├── workspace/ # [内容层] 默认主 Agent 工作区
4│ ├── AGENTS.md # 职责定义与行为边界
5│ ├── SOUL.md # 人格叙事与沟通风格
6│ ├── USER.md # 用户画像与偏好固化
7│ ├── IDENTITY.md # 结构化身份元数据
8│ ├── TOOLS.md # 工具使用规范与权限声明
9│ ├── HEARTBEAT.md # 会话节奏与状态维护
10│ ├── BOOTSTRAP.md # 初始化引导脚本(一次性)
11│ ├── MEMORY.md # 长期知识总表
12│ ├── memory/ # 滚动式会话记忆 (YYYY-MM-DD.md)
13│ ├── skills/ # 模块化技能包
14│ └── canvas/ # 可视化上下文(可选)
15└── agents/ # [运行层] 各 Agent 运行时状态
16 └── /
17 ├── agent/ # 对应 openclaw.json 中的 agentDir
18 ├── sessions/ # 会话历史日志 (*.jsonl)
19 └── qmd/ # QMD 后端索引状态
💡 关键区分:
Workspace: 定义 Agent“如何思考与工作”(静态知识 + 动态规则)。
agentDir:
openclaw.json中配置的字段,指向存储认证信息、模型配置及会话历史的物理路径。磁盘上不存在名为agentDir的文件夹,它只是一个配置指针。Sessions: 仅记录对话流水,不具备跨会话的知识沉淀能力。
2. 核心配置文件详解
2.1 AGENTS.md:行为准则与职责边界
-
定位:Agent 的岗位职责说明书(Functional Specification)。
-
作用:定义任务处理流程、禁忌事项及多 Agent 协作协议。
-
加载机制:通常在 Session 启动时注入系统提示词(受长度限制影响)。
最佳实践:
-
明确否定指令:不仅规定“做什么”,更要明确“不做什么”(Negative Constraints),以抑制 LLM 的幻觉与过度发挥。
-
场景化触发:采用
If-Then逻辑替代通用描述。例如:“当涉及数据分析时,优先调用data-analyst子代理”。 -
精简原则:控制在 300-500 字 以内。过长的文档会稀释关键指令的注意力权重(Attention Weight)。
示例结构:
1# 工作说明
2## 主要职责
3- 代码分析与技术文档整理
4- 工程问题排查
5
6## 行为红线
7- 禁止在未确认路径存在时执行写操作
8- 禁止编造不确定的技术参数
9
10## 多 Agent 协作
11- SEO 任务 -> spawn `content-specialist`
12- 数据任务 -> spawn `data-analyst`
2.2 SOUL.md:人格叙事与风格定义
-
定位:Agent 的性格档案(Personality Profile)。
-
作用:确立沟通语调、价值观及应对压力的反应模式,确保跨会话的行为一致性。
与 AGENTS.md 的分工:
| 维度 | AGENTS.md |
SOUL.md |
|---|---|---|
| 侧重 | 功能性 (Functionality) | 人格性 (Personality) |
| 内容 | 职责、流程、边界 | 语气、价值观、自我认知 |
| 类比 | 员工手册 | 人物小传 |
建议结构:
-
自我叙事:第一人称描述存在形式与核心特质。
-
沟通风格:定义简洁度、专业度及情感色彩。
-
价值边界:明确诚实性、效率优先原则及用户主导权。
2.3 USER.md:用户画像与偏好固化
-
定位:上下文预设(Context Pre-loading)。
-
作用:将用户的职业背景、技术栈偏好、沟通习惯固化为默认上下文,减少重复交互成本(Onboarding 成本)。
协同效应:SOUL.md(Agent 性格)+ USER.md(用户特征)= 稳定的人机协作共识。
2.4 TOOLS.md:工具使用规范
-
定位:操作安全指南(Operational Safety)。
-
作用:在系统权限(
openclaw.json)允许的基础上,进一步约束工具的使用场景与风险控制。
核心价值:
-
防误用:明确特定工具的禁用场景(如:禁止在无确认情况下执行
rm或browser)。 -
路径规范:强制使用相对路径,避免硬编码绝对路径。
-
互补性:系统层控制“能否用”,
TOOLS.md控制“何时用”及“如何用”。
2.5 IDENTITY.md 与 BOOTSTRAP.md
-
IDENTITY.md:结构化元数据(Name, Emoji, Avatar, Creature Type)。它是 Agent 的“数字名片”,用于 UI 渲染及身份识别,应与叙事性的SOUL.md分离。 -
BOOTSTRAP.md:一次性初始化向导。其使命是引导用户完成初始配置(写入IDENTITY,USER,SOUL),完成后应按模板要求删除,标志着 Agent 从“出厂设置”进入“独立运行”状态。
3. 记忆机制与技能扩展
3.1 长期记忆系统 (memory/)
OpenClaw 通过文件系统实现无状态 LLM 的长期记忆持久化。
-
机制:Agent 将关键信息写入
memory/YYYY-MM-DD.md(短期滚动)或MEMORY.md(长期知识库)。 -
检索:通过
memory_search或memory_get工具在会话启动时注入相关上下文。 -
维护策略:建议建立定期归档机制,将高价值碎片信息提炼至
MEMORY.md,避免记忆污染(Memory Pollution)。
3.2 技能模块化 (skills/)
Skills 是可复用的工作流封装,核心文件为 SKILL.md。
层级架构:
-
Bundled Skills:系统内置,全局可见。
-
Shared Skills (
~/.openclaw/skills/):本机所有 Agent 共享,适用于通用流程。 -
Private Skills (
workspace/skills/):特定 Agent 专属,适用于定制化业务逻辑。
设计原则:触发条件需具体明确,避免全量加载导致上下文膨胀。
4. 系统配置与多 Agent 架构
4.1 openclaw.json:系统宪法
该文件负责连接内容与运行时。关键字段解析:agents.list: 定义 Agent 实例。
-
id: 唯一标识符。 -
workspace: 指向内容层目录。 -
agentDir: 指向运行态目录(默认agents//agent)。
subagents.allowAgents: 白名单机制,严格控制主 Agent 可调用的子代理列表。
4.2 多 Agent 协作设计模式
原则:隔离即专业。不同职能的 Agent 必须拥有独立的 workspace。
❌ 错误做法:多个 Agent 共用同一套 SOUL.md 和 AGENTS.md,导致角色混淆。
✅ 推荐架构:
~/.openclaw/
├── workspace/ # 主协调 Agent (Manager)
└── agency-agents/ # 专业 Agent 集群
├── researcher/ # 独立 Workspace
├── writer/ # 独立 Workspace
└── coder/ # 独立 Workspace
信息共享策略:对于项目背景等公共知识,建议封装为 Shared Skill (project-context),而非在每个 Workspace 中冗余复制。
5. 实施指南与常见陷阱
5.1 最小化配置流程
-
初始化:执行
openclaw onboard --install-daemon生成模板。 -
人格定制:编辑
SOUL.md确立基调。 -
职责定义:编写
AGENTS.md明确边界。 -
用户对齐:填充
USER.md固化偏好。 -
技能挂载:通过
clawhub或对话安装必要 Skills。 -
验证:重启 Gateway 并进行意图测试。
5.2 六大常见反模式 (Anti-Patterns)
| 问题 | 现象 | 解决方案 |
|---|---|---|
| 指令冗余 | AGENTS.md 过长,重点模糊 |
执行“剪枝”操作,保留核心约束,前置关键规则。 |
| 职责混淆 | SOUL.md 与 AGENTS.md 内容重叠 |
严格区分“性格特质”与“工作规则”。 |
| 共享污染 | 多 Agent 共用 Workspace | 为每个 Agent 创建独立的 Workspace 目录。 |
| 配置脱节 | 修改目录未同步 openclaw.json |
变更后立即运行 openclaw doctor 进行一致性检查。 |
| 触发泛化 | Skill 触发条件过于宽泛 | 细化 SKILL.md 中的触发关键词与场景描述。 |
| 记忆垃圾 | memory/ 积累大量过时信息 |
建立定期清理与提炼机制,维护记忆库质量。 |
5.3 进阶:动态工作区
鼓励将 Workspace 视为活文档 (Living Documentation)。
-
自进化:授权 Agent 在获得用户确认后,自动更新
USER.md(新偏好)或生成新的SKILL.md(新流程)。 -
版本控制:建议对
~/.openclaw/workspace/进行 Git 版本管理,以便在配置漂移时快速回滚。
6. 结语
OpenClaw 的强大不仅在于其工具链的丰富性,更在于 workspace 所赋予的可塑性。精心设计的 Workspace 配置是将通用大模型转化为垂直领域专家的关键分水岭。开发者应摒弃“一次配置,永久生效”的静态思维,转而采用迭代优化的工程视角,持续打磨 Agent 的认知内核。
附录:核心文件速查表
| 文件 | 核心职责 | 类比 | 优先级 |
|---|---|---|---|
BOOTSTRAP.md |
首次启动向导(用完即删) | 新员工报到手册 | ⭐ (一次性) |
IDENTITY.md |
结构化身份元数据 | 工牌/名片 | ⭐⭐⭐ |
SOUL.md |
叙事性格设定 | 人物小传 | ⭐⭐⭐ |
AGENTS.md |
工作规则与职责边界 | 岗位说明书 | ⭐⭐⭐ |
USER.md |
用户背景与偏好 | 上司简介 | ⭐⭐⭐ |
TOOLS.md |
工具使用规范 | 工具操作手册 | ⭐⭐ |
MEMORY.md |
长期稳定知识总表 | 整理后的笔记 | ⭐⭐ |
skills/*/SKILL.md |
专项任务流程 | 操作 SOP | ⭐⭐ |