OpenClaw Workspace 文件体系

深入理解 Agent 工作区的核心配置文件

分类:配置与定制

核心主题:OpenClaw Workspace 文件体系的设计哲学与实战配置

主要内容:全面解析 SOUL.md、MEMORY.md、AGENTS.md 三大核心文件的职责、语法规范与最佳实践,以及工作区目录结构与多项目管理策略

关键词:OpenClaw, Workspace, SOUL.md, MEMORY.md, AGENTS.md, 配置文件, 文件体系, Agent 身份, 持久化记忆, 权限策略, 目录结构, 多项目管理

一、Workspace 设计哲学(文件驱动)

OpenClaw 的 Workspace 体系以 文件驱动(File-Driven)为核心理念。与传统的 GUI 配置方式不同,OpenClaw 将 Agent 的所有行为规则、记忆、权限等信息以结构化 Markdown 文件的形式存储在项目目录中。这一设计哲学带来以下优势:

1.1 文件驱动的核心原则

1.2 三大核心文件

Workspace 文件体系围绕三个核心文件构建,每个文件承担特定职责:

文件名职责更新频率版本控制
SOUL.md定义 Agent 的身份、性格和行为准则低(一次性设定)建议纳入
MEMORY.md存储跨会话的持久化记忆与经验中(持续累积)建议纳入
AGENTS.md权限声明与工具执行策略中(随需求调整)建议纳入

1.3 Workspace 的加载顺序

OpenClaw 在启动时会按照以下顺序加载配置,后加载的配置会覆盖先加载的相同项:

  1. 全局默认配置($CLAUDE_HOME/settings.json)
  2. 项目 CLAUDE.md(项目根目录下的项目说明文件)
  3. SOUL.md(定义 Agent 身份与性格)
  4. MEMORY.md(注入跨会话记忆)
  5. AGENTS.md(应用权限与执行策略)
设计要点:文件驱动的核心优势在于透明性和可追溯性。每一处配置的变更都记录在版本控制系统中,团队成员可以通过 Pull Request 审核配置变更,避免"黑盒"配置带来的不确定性。

二、SOUL.md - 定义 Agent 身份与性格

SOUL.md 是 Workspace 文件体系中最具特色的文件,它定义了 Agent 的身份标识沟通风格行为准则。如果说 CLAUDE.md 是项目的"说明书",那么 SOUL.md 就是 Agent 的"人格设定文件"。

2.1 SOUL.md 的核心作用

2.2 标准结构模板

# SOUL.md - Agent 身份定义文件 ## 身份标识 我是 [角色名称],一个 [角色描述]。 我的主要职责是 [核心职责描述]。 ## 沟通风格 - 语言:中文/英文 - 语气:[正式/亲切/专业/幽默] - 详细程度:[简洁/适中/详尽] - 技术术语使用:[适度/专业/通俗] ## 行为准则 1. [准则一:例如"在执行破坏性操作前必须征得用户确认"] 2. [准则二:例如"遇到不确定的信息时明确告知用户"] 3. [准则三:例如"保持代码风格与项目现有风格一致"] ## 专业领域 - [领域一]:精通程度 - [领域二]:精通程度 - [领域三]:基础知识 ## 限制与边界 - [明确说明 Agent 不应涉足的领域] - [需要转交给人类处理的场景]

2.3 配置示例

示例:中医学习助手 SOUL.md

我是倪海厦中医学习助手,精通神农本草经、金匮要略、伤寒论等中医经典。我的沟通风格亲切而不失专业,善于用通俗语言解释复杂的中医概念。行为准则是:在提供药方建议时必须注明"仅供参考,请咨询执业中医师";对于急症患者,立即建议就医而非提供诊断。

最佳实践

  • SOUL.md 的内容应简洁明确,避免过于宽泛的表述。
  • 身份设定应与实际使用场景匹配,不要过度承诺能力范围。
  • 行为准则部分应包含具体的、可执行的行为规则,而非抽象的原则。
  • 建议在项目初始化时一次性完成 SOUL.md 的编写,后续仅做微调。

三、MEMORY.md - 持久化记忆存储

MEMORY.md 是 Workspace 文件体系中的持久化记忆层,它解决了 AI Agent 在跨会话交互中"遗忘"的问题。通过将重要的上下文信息、学习成果和用户偏好写入 MEMORY.md,Agent 可以在后续会话中持续利用这些知识。

3.1 记忆的分层架构

OpenClaw 的记忆系统通常分为三个层次:

记忆层级存储位置生命周期内容示例
工作记忆当前会话上下文单次会话当前正在处理的任务、临时变量
项目记忆MEMORY.md跨会话项目约定、用户偏好、技术决策
全局记忆用户级 MEMORY.md跨项目用户身份信息、通用偏好、长期学习成果

3.2 MEMORY.md 的标准结构

# MEMORY.md - 持久化记忆存储 ## 项目概况 - 项目名称:[项目名称] - 项目目标:[一句话描述] - 技术栈:[主要技术栈] ## 用户偏好 - [偏好一]:如"使用 pnpm 而非 npm" - [偏好二]:如"代码风格使用 2 空格缩进" ## 重要决策记录 - [YYYY-MM-DD] 决策:[描述] 原因:[原因说明] - [YYYY-MM-DD] 决策:[描述] 原因:[原因说明] ## 学习积累 - [知识点一]:[简要说明] - [知识点二]:[简要说明] ## 待办事项 - [ ] [待办事项一] - [ ] [待办事项二]

3.3 记忆的自动更新机制

OpenClaw 在执行过程中可以自动识别值得记住的信息并更新 MEMORY.md:

注意事项

  • MEMORY.md 应定期审查和清理,避免积累过时或错误的信息。
  • 敏感信息(如密码、API Key)不应存储在 MEMORY.md 中。
  • 记忆条目应当精炼,避免无意义的重复记录。
  • 团队项目中,MEMORY.md 的变更应通过 Code Review 进行审核。

3.4 记忆版本管理

由于 MEMORY.md 是持续更新的文件,推荐使用 Git 进行版本管理。每次有意义的记忆更新可以单独提交,形成完整的记忆演化历史。当需要回溯某个时间点的项目状态时,可以通过 Git 历史查看当时的 MEMORY.md 内容。

四、AGENTS.md - 权限与执行策略

AGENTS.md 是 Workspace 文件体系中的安全与权限管理文件,它定义了 Agent 在执行任务时可以访问的资源、可以调用的工具以及需要用户确认的操作。这是确保 Agent 安全、可控运行的关键配置文件。

4.1 权限模型

AGENTS.md 采用三层权限模型:

4.2 标准结构模板

# AGENTS.md - 权限与执行策略 ## 允许的操作(Allow) - read: [允许读取的目录或文件] - write: [允许写入的目录或文件] - execute: [允许执行的命令或脚本] - network: [允许访问的域名或端口] ## 禁止的操作(Deny) - [禁止的操作一] - [禁止的操作二] ## 需确认的操作(Confirm) - [需要确认的操作一] - [需要确认的操作二] ## 执行策略 - 并行任务数上限:[数字] - 单次操作最大文件数:[数字] - 超时时间:[秒数] - 日志级别:[debug/info/warn/error] ## 环境变量 - [变量名]:[说明] - [变量名]:[说明]

4.3 策略配置示例

示例:Web 开发项目的 AGENTS.md

允许操作:读取 src/、public/ 目录下所有文件;在 src/ 目录下写入和修改文件;执行 npm run dev、npm test 命令。

禁止操作:直接删除 node_modules/ 目录;修改 .env 文件中的敏感变量;执行未被列入 package.json 的任意脚本。

需确认操作:修改 package.json 中的依赖版本;执行 git push 操作;删除超过 5 个文件的操作。

安全第一:AGENTS.md 的权限配置应遵循"最小权限原则"(Principle of Least Privilege),只授予 Agent 完成其任务所必需的最低权限。过度宽松的权限配置可能导致意外的文件修改或数据泄露。

4.4 多环境策略

对于同一项目在不同环境(开发、测试、生产)中的需求差异,AGENTS.md 支持通过条件块来定义不同的执行策略:

五、工作区目录结构规范

一个良好的 Workspace 目录结构是高效使用 OpenClaw 的基础。推荐采用以下标准化目录结构:

5.1 推荐目录结构

project-root/ ├── SOUL.md # Agent 身份定义 ├── MEMORY.md # 持久化记忆 ├── AGENTS.md # 权限与策略 ├── CLAUDE.md # 项目说明书 ├── .claude/ │ ├── settings.json # 项目级设置 │ ├── keybindings.json # 快捷键配置 │ └── worktrees/ # 工作树隔离目录 ├── src/ # 源代码目录 ├── docs/ # 文档目录 ├── tests/ # 测试目录 ├── package.json ├── tsconfig.json └── .gitignore

5.2 各目录与文件职责

文件/目录职责是否必须
SOUL.mdAgent 身份与性格定义推荐
MEMORY.md跨会话记忆存储推荐
AGENTS.md权限与执行策略按需
CLAUDE.md项目级指令说明推荐
.claude/配置与工作树目录自动生成
.claude/settings.json项目级设置按需

5.3 目录命名规范

最佳实践

将 SOUL.md、MEMORY.md、AGENTS.md 三个文件放在项目根目录下,便于 Agent 在启动时快速加载。.claude/ 目录由 OpenClaw 自动管理,不建议手动修改其中的文件。

六、多项目 Workspace 管理

当需要管理多个项目时,OpenClaw 提供了灵活的多项目 Workspace 管理机制。每个项目拥有独立的配置文件集,同时可以共享全局配置。

6.1 多项目结构

workspaces/ ├── project-alpha/ │ ├── SOUL.md │ ├── MEMORY.md │ ├── AGENTS.md │ └── ... ├── project-beta/ │ ├── SOUL.md │ ├── MEMORY.md │ ├── AGENTS.md │ └── ... └── project-gamma/ ├── SOUL.md ├── MEMORY.md ├── AGENTS.md └── ...

6.2 全局配置与项目配置的优先级

OpenClaw 的配置遵循以下优先级规则(从高到低):

  1. 项目 AGENTS.md - 项目级权限策略
  2. 项目 SOUL.md - 项目级身份定义
  3. 项目 MEMORY.md - 项目级记忆
  4. 项目 CLAUDE.md - 项目级指令
  5. 全局 SOUL.md - 默认身份定义
  6. 全局 MEMORY.md - 默认记忆
  7. 全局 settings.json - 默认设置

6.3 项目切换策略

在不同项目之间切换时,OpenClaw 会自动加载目标项目的配置文件,无需手动重新配置。切换机制基于当前工作目录(CWD)自动识别所属项目:

6.4 共享组件管理

对于多个项目中共享的配置片段,推荐以下管理方式:

管理要点:多项目管理的关键在于明确每个项目的边界和独立性。配置文件不应在项目间随意共享,除非经过充分评估确认共享不会引入安全风险或配置冲突。

七、配置文件模板示例

以下提供一套完整的 Workspace 配置文件模板,适用于通用的 Web 开发项目,可直接复制使用或根据实际需求调整。

7.1 SOUL.md 模板

# SOUL.md ## 身份标识 我是全栈 Web 开发助手,精通 TypeScript、React、Node.js 技术栈。 我的职责是辅助开发者高效完成代码编写、调试和优化工作。 ## 沟通风格 - 语言:中文为主,代码注释使用英文 - 语气:专业且务实 - 详细程度:根据问题复杂度调整,复杂问题提供详尽解释 - 技术术语使用:专业级别,默认读者具备基础知识 ## 行为准则 1. 在修改现有代码前,先理解整体架构,避免破坏性变更 2. 提供代码示例时附带必要的类型定义 3. 对于性能优化建议,附上优化前后的对比数据 4. 推荐使用项目已有的技术和模式,保持一致性 5. 涉及破坏性变更时,主动建议创建备份或使用版本控制 ## 专业领域 - TypeScript/JavaScript:精通 - React/Next.js:精通 - Node.js/Express:精通 - 数据库设计(PostgreSQL/MySQL):熟练 - Docker/K8s:基础知识 - CI/CD 配置:熟练

7.2 MEMORY.md 模板

# MEMORY.md ## 项目概况 - 项目名称:[项目名称] - 项目目标:[项目目标描述] - 技术栈:TypeScript + React + Node.js + PostgreSQL ## 用户偏好 - 包管理器:pnpm - 代码格式化:Prettier(100字符换行) - 测试框架:Vitest - 提交规范:Conventional Commits ## 重要决策记录 - [YYYY-MM-DD] 状态管理从 Redux 切换为 Zustand,原因:减少样板代码,提升开发效率 ## 学习积累 - [知识点描述] ## 常见问题 - [问题描述]:解决方案:[方案描述]

7.3 AGENTS.md 模板

# AGENTS.md ## 允许的操作 - read: src/, public/, tests/, docs/ - write: src/, tests/, docs/ - execute: npm, npx, pnpm, git, node, tsc, vitest - network: npmjs.org, registry.npmjs.org ## 禁止的操作 - 删除 node_modules/ 或 .git/ 目录 - 修改 .env 或 .env.local 文件中的环境变量 - 执行 curl/wget 向未知服务器发起请求 ## 需确认的操作 - 执行 git push 到远程仓库 - 修改 package.json 中的依赖版本号 - 删除超过 3 个文件的操作 - 修改 CI/CD 配置文件 ## 执行策略 - 并行任务数上限:3 - 单次操作最大文件数:10 - 超时时间:120 秒 - 日志级别:info

快速初始化

将以上三个模板文件复制到新项目的根目录,根据项目特点修改 SOUL.md 中的身份标识和专业领域,更新 MEMORY.md 中的项目概况和用户偏好,调整 AGENTS.md 中的权限设置即可快速完成 Workspace 初始化。

八、核心要点总结

Workspace 文件体系的核心原则

  1. 文件驱动:所有配置均为纯文本文件,纳入版本控制,实现配置即代码。
  2. 职责分离:SOUL.md 管身份、MEMORY.md 管记忆、AGENTS.md 管权限,各司其职。
  3. 分层覆盖:全局配置与项目级配置形成层级结构,灵活应对不同场景需求。
  4. 最小权限:AGENTS.md 严格遵循最小权限原则,确保 Agent 安全可控。
  5. 持续累积:MEMORY.md 作为持久化记忆层,实现知识的跨会话传承。

配置文件的协同工作方式

三个核心文件在运行时协同工作:SOUL.md 定义了 Agent 的行为倾向,AGENTS.md 划定了行为边界,MEMORY.md 提供了行为上下文。三者共同决定了 Agent 在特定场景下的响应方式和执行策略。

最佳实践总结:
  • 新项目开始时,优先配置 SOUL.md,明确 Agent 的角色定位。
  • 在交互过程中,定期审查 MEMORY.md,清理过时记忆,补充新的学习成果。
  • 当项目需求或安全策略变化时,同步更新 AGENTS.md 的权限配置。
  • 三个配置文件均应纳入 Git 管理,重要变更通过 Pull Request 审查。
  • 利用 .claude/settings.json 进行项目级的工具权限和钩子配置。

进阶学习方向

"Workspace 文件体系的核心价值不在于文件的多少,而在于每一份文件都有明确的职责边界和清晰的配置逻辑。好的配置,是让 Agent 在不知不觉中做正确的事。"