这篇文章会带你逐一拆解这 8 个核心文件,理解它们各自的职责以及如何协同运作。如果你正在搭建自己的 AI Agent 工作流,这套"用文件管理 AI 行为"的设计思路本身就值得借鉴。

先看全局:五个层次,八个文件

在深入每个文件之前,先建立一个整体认知。这 8 个文件按功能可以分成五层:

  • 身份层:SOUL.md(我是谁)+ IDENTITY.md(人格定义)+ USER.md(服务对象)
  • 行为层:AGENTS.md(行为守则)+ HEARTBEAT.md(周期任务)
  • 记忆层:MEMORY.md(长期记忆)+ memory/YYYY-MM-DD.md(每日日志)
  • 环境层:TOOLS.md(本地环境配置)
  • 引导层:BOOTSTRAP.md(初始化脚本)

换句话说,身份层决定"我是谁、为谁服务",行为层规定"该怎么干活",记忆层负责"记住发生过什么",环境层告诉代理"我在哪台机器上",引导层处理"第一次启动时该做什么"。层次分明,各司其职。

AGENTS.md:代理的工作手册

这是代理的"行为准则",规定了它从启动到执行到收尾的完整流程。

启动流程:每次会话开始时,代理会自动读取 SOUL.md、USER.md 和最近的记忆文件,通过 memory_search 查询历史记忆,快速恢复上下文。这就像你每天到办公室先翻一翻昨天的笔记,回忆一下手头的事。

记忆规则:每天的工作记录写入 memory/YYYY-MM-DD.md,重要的经验和规则沉淀到 MEMORY.md。核心原则只有一条——重要的事情必须写文件,不能只靠"脑子记"。对 AI 来说,没写下来的东西在下一次会话就不存在了。

安全边界:保护隐私、删除文件走回收站、不确定的操作先问用户。权限上也做了分级——本地操作(读文件、搜索)可以自主进行,对外操作(发邮件、发帖)必须拿到用户授权。

群聊礼仪:如果代理参与群聊场景,规则是有价值才发言、不刷屏、不主导对话、少用 emoji 反应。

心跳巡检:代理可以定期检查邮箱、日历等,有重要事情时提醒用户,没事就安静待着。

SOUL.md:代理的性格和工作哲学

如果 AGENTS.md 管的是流程,SOUL.md 管的就是"怎么做人"。这个文件千人千面,完全取决于你希望代理具有什么样的性格。

整体风格:强调真诚实用的交流方式,摒弃"很高兴为您服务"这类机械化表达。代理应该像一个真实的工作伙伴那样自然沟通。

交流规范:完成任务后必须主动反馈结果,不能"闷头干活不吭声";耗时较长的任务要定期报告进展;允许表达观点和建议,展现个性而非保持机械中立。

工具偏好:比如"优先使用本地搜索工具以降低 API 消耗,失败再考虑云端服务",或者"优先使用自带浏览器浏览网页"——这类具体的工具选择偏好都写在这里。

工作方式:遇到问题先尝试自行查找资料和上下文,而不是立即询问用户。采用按需检索的记忆访问模式,通过 memory_search 和 memory_get 精确查询,避免一次性加载全部记忆内容。对外部操作保持谨慎,对内部工作保持主动。

伦理边界:代理的定位是获得授权进入用户私人空间的"受邀者",必须保持克制,尊重用户的隐私边界和使用习惯。

IDENTITY.md:一张轻量的角色卡

相比 SOUL.md 的"工作哲学",IDENTITY.md 更像一张简洁的人设卡片,侧重"角色与语气"。

典型配置可能长这样:

  • 名字:Claw / 小爪 / 任意你喜欢的名字
  • 身份:AI 助理 / 技术顾问 / 研究伙伴 / 创意助手
  • 风格:专业严谨 / 轻松幽默 / 温和耐心 / 直接高效
  • 标志 emoji:自定义一个代表性符号

它的作用是给回复语气、称呼方式、情绪表达提供统一基线。和 SOUL.md 的分工是:SOUL.md 管工作方法论,IDENTITY.md 管角色扮演和语气风格。

USER.md:用户画像卡

这个文件回答的是"你在服务谁"。内容通常比较简洁:用户名、称呼偏好、时区、语言偏好,以及一个 Context 区块用来沉淀长期偏好和项目背景。

它的价值在于约束称呼、语言和互动风格,避免代理每轮对话都重新猜测用户偏好。随着使用,这个文件可以逐步丰富。

TOOLS.md:本机环境备忘录

这个文件经常被误解为"工具权限清单",实际上它是本机环境的私有配置备忘录。记录的是设备型号、操作系统、主机别名、本地浏览器路径和启动参数这类信息。

它的设计目的是实现通用逻辑与特定机器配置的分离。你可以更新 Skills 而不丢失本机备注,也可以分享 Skills 而不泄露你的基础设施信息。

HEARTBEAT.md:心跳巡检清单

OpenClaw 的心跳机制允许代理在无人交互时自动唤醒并执行预设任务。HEARTBEAT.md 明确规定了三件事:

  • 定期检查的数据源类型(邮件收件箱、日程安排、RSS 订阅等)
  • 触发用户通知的具体条件
  • 无需打扰时的静默处理策略(返回 HEARTBEAT_OK 状态码)

通过文档化的方式定义周期任务逻辑,避免心跳检查的盲目性,同时有效控制 API 调用成本。

MEMORY.md:真正的长期记忆

这可能是 OpenClaw 最有意思的设计。它解决了 AI 代理最大的痛点之一——会话隔离。每次新对话,AI 都像失忆了一样从头开始。MEMORY.md 打破了这个限制。

与每日流水日志(memory/YYYY-MM-DD.md)不同,MEMORY.md 存储的是经过沉淀和提炼的长期知识:你的偏好、重要的上下文、代理学到的经验教训。

它会自动积累这些信息

  • 个人偏好与习惯:工作习惯、沟通风格偏好、常用工具选择、特定场景下的决策倾向
  • 安全红线:绝对不可违反的安全规则(如禁止泄露密钥)、隐私保护的边界
  • 项目上下文:正在进行的重要项目及其目标、关键决策和里程碑
  • 经验教训:过去遇到的问题和解决方案、失败案例的复盘总结
  • 运维知识:系统配置变更记录、特定环境的注意事项

最关键的一点:你通常不需要手动编辑这个文件。在日常对话中,你只需要说"把这件事记下来"或"记住这个偏好",代理就会自动更新。代理通过 memory_search 和 memory_get 按需查询,不是每次都加载全部内容,而是根据当前对话主题精确检索。

使用建议:大部分时候让代理自己管理即可,但建议每月浏览一次,删除过时信息,控制文件大小以降低 token 消耗。需要批量修改规则或发现记录了错误信息时,再手动介入。

BOOTSTRAP.md:初始化脚本

这个文件用于定义工作空间的初始化配置——首次启动时自动创建的目录结构、必需的依赖包安装清单、环境变量的初始化设置。对于已经配置完善的工作空间,这个文件通常内容很少或直接留空。

这些文件如何协同运转

理解了单个文件之后,看看它们的协作流程:

会话启动时:读取 SOUL.md + IDENTITY.md 确立人格,读取 USER.md 了解服务对象,读取 AGENTS.md 加载行为规则,读取近两天的 memory/*.md 回顾近期工作,根据需要用 memory_search 检索 MEMORY.md。

执行任务时:参考 AGENTS.md 判断是否需要用户授权,参考 TOOLS.md 获取本地环境配置,按照 SOUL.md 定义的风格与用户沟通。

任务完成后:将工作日志写入 memory/YYYY-MM-DD.md,如果产生了长期规则或经验则更新 MEMORY.md,按照 SOUL.md 要求主动汇报结果。

心跳触发时:读取 HEARTBEAT.md 获取巡检清单,执行轻量检查(邮箱、日历等),根据结果决定是提醒用户还是静默返回。

这套设计的核心价值

OpenClaw 这套"用 Markdown 管理 AI 大脑"的方案,最大的优势在于五个字:透明可控

  • 可读:纯文本,任何编辑器都能打开
  • 可写:人类可以直接编辑,不需要特殊工具
  • 可追溯:用 Git 做版本控制,每次修改都有记录
  • 可协作:团队可以共享和讨论配置
  • 可演化:根据实践持续优化,没有黑盒

对于独立开发者和一人公司来说,这种设计特别有吸引力。你不是在调用一个黑盒 API,而是在构建一个完全属于你的、可以持续成长的 AI 协作伙伴。即使你不打算直接使用 OpenClaw,这套"身份层-行为层-记忆层-环境层"的分层设计思路,也值得在搭建自己的 Agent 工作流时参考借鉴。