~/.openclaw/ 不同,后者存储配置、凭据和会话。
默认位置
- 默认:
~/.openclaw/workspace - 如果设置了
OPENCLAW_PROFILE且不是"default",默认值会变为~/.openclaw/workspace-<profile>。 - 在
~/.openclaw/openclaw.json中覆盖:
openclaw onboard、openclaw configure 或 openclaw setup 会创建工作区,并在缺少引导文件时填充它们。
沙箱种子复制只接受工作区内的普通文件;任何解析到源工作区外部的符号链接/硬链接别名都会被忽略。
额外的工作区文件夹
较旧的安装可能创建过~/openclaw。保留多个工作区目录可能会导致令人困惑的认证或状态漂移,因为一次只有一个工作区处于活动状态。
建议: 只保留一个活动工作区。如果你不再使用额外的文件夹,请将它们归档或移到废纸篓(例如
trash ~/openclaw)。如果你有意保留多个工作区,请确保 agents.defaults.workspace 指向当前活动的那个。openclaw doctor 在检测到额外工作区目录时会发出警告。工作区文件映射
以下是 OpenClaw 期望工作区内存在的标准文件:AGENTS.md - 操作说明
AGENTS.md - 操作说明
代理的操作说明以及它应如何使用记忆。在每个会话开始时加载。适合作为规则、优先级以及“应如何表现”等细节的存放处。
SOUL.md - 人设与语气
SOUL.md - 人设与语气
人设、语气和边界。每次会话都会加载。指南:SOUL.md personality guide。
USER.md - 用户是谁
USER.md - 用户是谁
用户是谁,以及应该如何称呼他们。每次会话都会加载。
IDENTITY.md - 名字、风格、表情符号
IDENTITY.md - 名字、风格、表情符号
代理的名字、风格和表情符号。在引导仪式期间创建/更新。
TOOLS.md - 本地工具约定
TOOLS.md - 本地工具约定
关于你的本地工具和约定的说明。不控制工具可用性;它只是指导。
HEARTBEAT.md - 心跳检查清单
HEARTBEAT.md - 心跳检查清单
供心跳运行使用的可选小型清单。请保持简短,以免消耗过多 token。
BOOT.md - 启动检查清单
BOOT.md - 启动检查清单
在网关重启时自动运行的可选启动检查清单(当启用内部钩子时)。请保持简短;出站发送请使用消息工具。
BOOTSTRAP.md - 首次运行仪式
BOOTSTRAP.md - 首次运行仪式
一次性的首次运行仪式。仅为全新的工作区创建。仪式完成后请删除它。
memory/YYYY-MM-DD.md - 每日记忆日志
memory/YYYY-MM-DD.md - 每日记忆日志
每日记忆日志(每天一个文件)。建议在会话开始时读取今天和昨天的内容。
MEMORY.md - 精选长期记忆(可选)
MEMORY.md - 精选长期记忆(可选)
精选长期记忆:持久的事实、偏好、决定以及简短摘要。将详细日志保留在
memory/YYYY-MM-DD.md 中,这样记忆工具就能按需检索它们,而无需将其注入到每个提示中。仅在主的私密会话中加载 MEMORY.md(不要在共享/群组上下文中加载)。有关工作流程和自动记忆刷新,请参阅 Memory。skills/ - 工作区技能(可选)
skills/ - 工作区技能(可选)
工作区特定的技能。该工作区中优先级最高的技能位置。当名称冲突时,会覆盖项目代理技能、个人代理技能、托管技能、捆绑技能以及
skills.load.extraDirs。canvas/ - Canvas UI 文件(可选)
canvas/ - Canvas UI 文件(可选)
用于节点显示的 Canvas UI 文件(例如
canvas/index.html)。If any bootstrap file is missing, OpenClaw injects a “missing file” marker into the session and continues. Large bootstrap files are truncated when injected; adjust limits with
agents.defaults.bootstrapMaxChars (default: 20000) and agents.defaults.bootstrapTotalMaxChars (default: 60000). openclaw setup can recreate missing defaults without overwriting existing files.不属于工作区的内容
以下内容位于~/.openclaw/ 下,不应提交到工作区仓库中:
~/.openclaw/openclaw.json(配置)~/.openclaw/agents/<agentId>/agent/auth-profiles.json(模型认证配置文件:OAuth + API 密钥)~/.openclaw/agents/<agentId>/agent/codex-home/(每个代理的 Codex 运行时账户、配置、技能、插件和原生线程状态)~/.openclaw/credentials/(通道/提供方状态以及旧版 OAuth 导入数据)~/.openclaw/agents/<agentId>/sessions/(会话记录 + 元数据)~/.openclaw/skills/(托管技能)
Git 备份(推荐,私有)
将工作区视为私密记忆。把它放入一个私有 git 仓库,以便备份和恢复。 请在 Gateway 运行所在的机器上执行以下步骤(也就是工作区所在的位置)。添加私有远程仓库
- GitHub 网页界面
- GitHub CLI (gh)
- GitLab 网页界面
- 在 GitHub 上创建一个新的私有仓库。
- 不要使用 README 初始化(以避免合并冲突)。
- 复制 HTTPS 远程 URL。
- 添加远程并推送:
不要提交密钥
建议的.gitignore 起始内容:
将工作区迁移到新机器
高级说明
- 多代理路由可以为不同代理使用不同的工作区。有关路由配置,请参见Channel routing。
- 如果启用了
agents.defaults.sandbox,非主会话可以使用agents.defaults.sandbox.workspaceRoot下的每会话沙箱工作区。
相关内容
- Heartbeat - HEARTBEAT.md 工作区文件
- Sandboxing - 沙箱环境中的工作区访问
- Session - 会话存储路径
- Standing orders - 工作区文件中的持久指令