BOOTSTRAP.md是 OpenClaw 工作区中一个非常特殊且短暂存在的文件——它只在全新工作区首次启动时出现,用于指导 AI 完成一次性初始化任务。一旦这些任务执行完毕,它通常会自我删除或标记为已完成,因此大多数时候你不会见到它。
下面从概念、生命周期、内容结构以及最佳实践几个方面详细介绍。
📌 核心概念:AI 的“出生证明”
BOOTSTRAP.md就像一个新生儿的第一张卡片,上面写着:“这是我第一次醒来,请帮我完成以下准备步骤”。它存在的意义是让 AI 能够在零配置、零记忆的状态下,通过读取这个文件自动进入可用状态,而无需你手动去配置所有东西。

🧬 生命周期:一次性的仪式
创建:当你创建一个新的工作区(例如
openclaw agents add myagent --workspace ~/myworkspace)或首次运行某个 Agent 时,OpenClaw 网关会检查该工作区目录。如果发现没有任何记忆文件(如MEMORY.md、memory/目录为空)且不存在BOOTSTRAP.md,则会自动生成一个默认的BOOTSTRAP.md模板。执行:Agent 启动时会读取
BOOTSTRAP.md,将其内容作为系统提示的一部分注入,并按照其中指示的步骤依次执行初始化任务。例如:创建必要的目录、生成基础配置文件、克隆技能仓库、设置 API 密钥占位符等。完成与清理:当所有步骤完成后,Agent必须(按照规范)删除或重命名
BOOTSTRAP.md(例如改为BOOTSTRAP.md.done),以避免下次启动时重复执行。有些版本的 OpenClaw 也会在任务完成后自动将其清空或加上<!-- DONE -->标记。后续:之后该工作区进入正常运作状态,AI 依靠
SOUL.md、USER.md、MEMORY.md等文件维持人格和记忆。除非你手动删除整个工作区重新开始,否则BOOTSTRAP.md不会再出现。
⚠️重要:永远不要手动创建
BOOTSTRAP.md。如果因为某些原因需要重新执行初始化,正确做法是删除整个工作区(或至少删除MEMORY.md和memory/目录),然后重启 Agent 让其自动生成新的BOOTSTRAP.md。
📝 典型内容与结构
BOOTSTRAP.md的格式没有严格的硬性规定,但通常遵循以下结构:
markdown
# Bootstrap Instructions for [Agent Name]This is the first time this workspace is being used. Please perform the following setup tasks sequentially.
## 1. Create basic directory structure- Ensure `~/myworkspace/skills/` exists.
- Ensure `~/myworkspace/memory/` exists.
## 2. Clone default skills- Run: `git clone https://github.com/openclaw/default-skills.git skills/default`## 3. Generate initial configuration files
- Create `USER.md` with placeholder: "# About the user\n\nPlease tell me your name and preferences."
- Create `SOUL.md` with placeholder: "# My personality\n\nI am a helpful assistant."
## 4. Set up environment variables- Check if `OPENAI_API_KEY` is set; if not, prompt the user to set it.
## 5. Mark bootstrap as complete- Once all steps succeed, delete this file.
核心内容包括:
明确的步骤列表(使用有序列表或带
- [ ]的复选框)。可执行的命令(如
mkdir,git clone,openclaw config set)。用户交互提示(如“请告诉你的名字”)。
完成标志(通常是“删除本文件”或“创建
.bootstrapped文件”)。
🔧 工作流程示例
假设你创建了一个新工作区~/myagent,并首次启动openclaw agent run --workspace ~/myagent:
网关发现
~/myagent下没有MEMORY.md,也没有BOOTSTRAP.md,于是生成一个默认的BOOTSTRAP.md。Agent 加载该文件,开始执行步骤:
创建
skills/和memory/目录。克隆官方技能仓库。
生成
USER.md和SOUL.md模板。检测到
OPENAI_API_KEY未设置,于是向你发送一条消息:“请设置 OPENAI_API_KEY 环境变量”。你设置好 API Key 后,再次运行 Agent(或 Agent 自动重试),步骤继续。
所有步骤完成,Agent 删除
BOOTSTRAP.md。之后每次启动,Agent 都会读取
USER.md、SOUL.md等文件,不会再看到BOOTSTRAP.md。
⚠️ 注意事项
幂等性:
BOOTSTRAP.md中的步骤应该设计成可以重复执行而不产生副作用(例如创建目录前先检查是否存在)。因为网络波动或中途失败可能导致部分步骤被重复执行。避免长耗时操作:初始化不应包含大规模下载、训练模型等耗时任务。这些应放在单独的
HEARTBEAT.md定时任务中。安全限制:不要在其中写入硬编码的密码或 API Key。应使用环境变量或提示用户输入。
用户交互:如果步骤需要用户输入(如“请选择你的默认模型”),Agent 应暂停并询问,而不是直接假设。
版本控制:通常不建议将
BOOTSTRAP.md纳入 Git 仓库,因为它与特定运行环境相关。但可以将其模板作为文档提交。
🔗 与其他文件的关系
AGENTS.md | BOOTSTRAP.mdAGENTS.md中的规则定义。 |
SOUL.md | BOOTSTRAP.mdSOUL.md占位符,之后由用户或 Agent 自行完善。 |
USER.md | BOOTSTRAP.md可能创建USER.md模板,等待用户填充。 |
HEARTBEAT.md | HEARTBEAT.md负责周期性任务,与BOOTSTRAP.md无直接关联。 |
MEMORY.md | BOOTSTRAP.md |
🧪 调试与恢复
如果你不小心删除了BOOTSTRAP.md但工作区尚未初始化完成,可以手动创建一个同名文件,写入所需的初始化步骤。但更推荐的做法是删除整个工作区(或至少清空MEMORY.md和memory/),然后重启 Agent 让其自动生成。
检查当前是否处于已初始化状态:
bash
ls ~/.openclaw/workspace/BOOTSTRAP.md # 如果不存在,说明已完成初始化
📌 总结
BOOTSTRAP.md是 OpenClaw 工作区生命周期中的第一个文件,它帮助 AI 从零开始建立运行环境,完成一次性的准备工作。完成使命后它会自动消失,让位给其他长期记忆和行为定义文件。理解它的工作原理,有助于你调试新工作区的初始化问题,或者在自动化部署中定制初始化流程。

夜雨聆风