OpenClaw 越用越好用的秘密:md 文件构建的 AI 专家系统

OpenClaw 越用越好用,本质是 Agent 持续读写并检索一套 Markdown 工作区。

原文标题:OpenClaw 为什么越用越好用?本质就是一堆 md 文件

原文作者:阿里云开发者

冷月清谈:

文章从源码视角拆解了 OpenClaw“越用越好用”的原因,核心并不是模型会自动变聪明,而是 Agent 在长期使用中不断读写 workspace 里的 Markdown 文件,逐步沉淀用户偏好、操作规范、环境信息和踩坑经验。作者先指出常见误区:模型选型不当、把单个 Agent 当万能助手、没有持续“培训”Agent,都会让体验打折。随后重点介绍了 OpenClaw 的工作机制:每次对话前,将 SOUL.md、USER.md、AGENTS.md、TOOLS.md、SKILL.md、memory/*.md、MEMORY.md 等内容注入 prompt;对话中再通过 memory_search 检索相关历史;任务完成后把新学到的信息写回这些文件,并更新索引。这样形成“加载经验—执行任务—记录经验—下次复用”的闭环。文章还提到,workspace 中除预设文件外,还会随着使用长出项目记录、模板、联系人偏好等自定义内容,使 Agent 越来越贴合个人场景。技术层面,OpenClaw通过文件大小预算、混合检索、Skill 优先级覆盖等机制保证可用性。作者最终认为,真正有价值的不是框架代码本身,而是用户长期积累下来的那一套 workspace 文件,它们才是 Agent 个性化能力的来源。

怜星夜思:

1、问题1:如果 OpenClaw 的核心真是一堆 md 文件,那它和“自己写一套提示词+知识库”相比,差别到底在哪?
2、问题2:文章一直强调“培训 Agent”,那这种训练方式会不会把 Agent 越调越窄,最后只适合少数固定场景?
3、问题3:如果真正有价值的是 workspace 里的这些文件,那未来 Agent 产品的竞争力会不会从“模型能力”转向“用户知识资产的管理能力”?
4、问题4:把大量偏好、项目记录、工作习惯都写进 workspace,便利是有了,但隐私和安全风险该怎么平衡?

原文内容

本文内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。

最近深度使用了 OpenClaw,基本上每天都要跟它交流几个小时,也慢慢摸索出了一些经验。看到不少人说 OpenClaw 不好用,我想先聊聊"不好用"的原因,再深入拆解一个我认为被大多数人忽略的核心问题——OpenClaw 越用越好用的本质到底是什么。

先说结论:是一堆 md 文件。

这不是调侃,是我读完它的源码之后得出的判断。下面展开说。

一、为什么很多人觉得 OpenClaw 不好用

在聊核心机制之前,先排除几个常见的"用法问题"。很多人说不好用,其实不是产品的问题,是使用姿势没对。

1. 模型没选对

模型对效果的影响是决定性的。同样的指令,换一个模型,输出质量可能天差地别。

这里的关键认知是:OpenClaw 本身不生产智能,它是一个让 AI 模型发挥得更好的框架。框架再好,底层模型不行,上限就在那里。就像你给一个实习生写了一份非常详尽的操作手册,他可能还是做不好;但你给一个高级工程师同样的手册,他能做到远超你预期的水平。

2. 把 Agent 当成通才

很多人的用法是:配一个 agent,什么都让它干。写代码找它,写文案找它,做数据分析还找它。

仔细想想,现实世界里是不是每个公司都分岗位?每个专家都专精一个或几个领域?AI agent 也是一样的。

OpenClaw 支持多 Agent 架构,你可以配置多个 agent,每个负责一个领域。而且从代码层面来看,这不只是"分工"那么简单——每个 agent 有独立的 workspace 目录、独立的 memory 数据库、独立的 session 历史。也就是说,一个专门做代码审查的 agent,它积累的所有经验都是关于代码审查的,不会被你让它帮你写周报的那些对话污染掉。

这就像一个公司里,让每个员工专注一个领域,他的经验积累是垂直的、深度的,而不是水平的、稀薄的。

3. 没有"培训"你的 Agent

这是今天我要重点展开的部分。

很多人装好 OpenClaw,开箱就用,觉得效果一般,然后就下了结论说不好用。但你想想,你招一个新员工,他第一天来上班你就指望他跟干了三年的老员工一样好使?

Agent 需要培训。需要跟它多对话,告诉它你的偏好,让它了解你的工作场景,跟它一起踩坑然后把经验固化下来。这个过程,用 OpenClaw 的术语叫"形成 SOP",用更技术的话说,积累 workspace 文件

这就是 OpenClaw 越用越好用的核心机制,也是这篇文章的重点。

二、核心机制:一个自我进化的 md 文件系统

我去读了 OpenClaw 的源码,把整个"越用越好用"的机制拆解清楚了。说白了,它的架构可以用一句话概括:

每次对话前,把一堆 md 文件拼进 prompt;对话后,让 agent 把新学到的东西写回这些 md 文件。

就这么简单。但这个简单的循环,构成了一个威力巨大的飞轮。

骨架:7 个核心 md 文件

OpenClaw 给每个 agent 的 workspace 预设了 7 类核心文件:

1. SOUL.md — Agent 是谁

这个文件定义了 agent 的人格:语气、风格、边界、价值观。有意思的是,模板里写着一句话:"This file is yours to evolve. As you learn who you are, update it."——这个文件是你自己的,随着你了解自己,去更新它。

也就是说,agent 的"人格"不是你一次写死的,是它在跟你互动的过程中,自己慢慢调整的。它发现你喜欢简洁直接的回答,就会把这个偏好写进自己的灵魂文件里。

2. USER.md — 用户是谁

这是 agent 对你的画像:你的名字、时区、工作习惯、技术偏好、沟通风格。每次对话中 agent 了解到关于你的新信息,就会更新这个文件。用得越久,这个画像越精准,agent 就越"懂你"。

3. AGENTS.md — 做事的规矩和踩过的坑

这是最关键的一个文件。它定义了 agent 的行为规范,更重要的是,记录了所有踩过的坑

我在源码里看到它的模板有一条明确的指令:"When you learn a lesson → update AGENTS.md"、"When you make a mistake → document it so future-you doesn't repeat it."

翻译成人话就是:你犯了一个错,把它记下来,这样以后的你就不会再犯。

这就是为什么 OpenClaw 越用越好——不是因为模型变聪明了,是因为 AGENTS.md 里的踩坑记录越来越多。每一条记录都是一次错误的代价换来的经验,被固化成了一行文字,从此永远生效。

4. TOOLS.md — 环境备忘

记录你的工作环境:SSH 主机名、摄像头设备名、文件路径习惯等。agent 踩坑后自己补充。

5. SKILL.md × N — 各领域的操作手册

每个 SKILL.md 定义了一个特定领域的操作规范。OpenClaw 内置了 52 个 skill,涵盖 GitHub issue 管理、邮件处理、健康检查、代码审查等。

更关键的是,你可以自己写 skill。比如你每周都要出一份特定格式的周报,你可以把格式要求、数据来源、输出模板写成一个 SKILL.md,放到 workspace 里。从此 agent 每次做周报都会按照这个规范来,不需要你每次重新描述。

Skill 的加载有优先级:内置的优先级最低,workspace 里用户自定义的优先级最高。也就是说你可以覆盖任何内置 skill 的行为。

6. memory/*.md — 日常记忆

Agent 每天会写一个日期命名的 md 文件,记录当天的对话要点、做了什么、学到什么。这些文件会被索引到 SQLite 数据库里,支持全文搜索和向量检索。

7. MEMORY.md — 提炼后的长期记忆

Agent 会定期把 daily memory 里的重要内容提炼到这个文件里。相当于从日记中整理出来的笔记精华。这个文件每次对话都会被加载进 prompt,所以 agent 的"长期记忆"就存在这里。

血肉:用户和 Agent 共同生长出来的自定义文件

以上 7 类文件是框架预设的骨架。但 workspace 本质就是一个普通文件夹,agent 有文件读写能力,它可以在里面创建任何它需要的文件和目录。

比如一个帮你管理项目的 agent,用久了它的 workspace 里可能长出这样的结构:

workspace/
├── SOUL.md
├── USER.md
├── AGENTS.md
├── TOOLS.md
├── MEMORY.md
├── memory/
│   ├── 2026-03-01.md
│   └── 2026-03-02.md
├── projects/
│   ├── project-alpha/
│   │   ├── progress.md
│   │   ├── decisions.md
│   │   └── risks.md
│   └── project-beta/
│       └── progress.md
├── templates/
│   ├── weekly-report.md
│   └── meeting-notes.md
└── contacts/
    └── team-preferences.md

这些额外的文件没有任何 schema 约束,完全是 agent 在使用过程中自己组织出来的。每个人的 agent 最终长出来的形态不一样,取决于你跟它聊了什么、做了什么、在哪些领域用它。

这意味着你的 agent 是真正"私人定制"的——不是你在设置页面勾选了几个选项,是它通过几百次对话,自己生长出了一套只适合你的知识体系。

三、自我进化的闭环

上面说的都是静态的文件结构,真正有意思的是这些文件是怎么被维护和更新的。OpenClaw 设计了一个 agent 自我进化的闭环:

对话开始
  → 加载 workspace 所有核心 md 文件到 system prompt
  → agent 根据用户问题,先 memory_search 检索相关记忆
  → agent 执行任务
  → 任务中学到新东西 / 犯了错 / 发现了用户新偏好
  → agent 写回相关文件(AGENTS.md / USER.md / memory/*.md / MEMORY.md)
  → 文件变更触发 Memory 索引重建(SQLite FTS5 + 向量索引)
  → 对话结束

下次对话开始
  → 加载更新后的 md 文件
  → 搜索到新索引的记忆
  → agent 行为更精准
  → 循环

注意这里面有两层循环:

外层循环:md 文件读写。 每次对话加载,对话中更新。这是"经验"层面的积累——agent 知道了哪些事该做、哪些事不该做、你喜欢什么、你的环境是什么样的。

内层循环:向量索引检索。 当 memory 文件越来越多,agent 不可能把所有内容都塞进 prompt(有 token 限制),所以 OpenClaw 用 SQLite 的 FTS5 全文搜索和 sqlite-vec 向量检索做了一个混合搜索引擎。agent 每次对话前被指令要求先搜索相关记忆再回答,这样即使积累了几百个 memory 文件,也能精准找到相关的信息。

两层循环合在一起,就是一个完整的"学习-记忆-检索-应用"系统。而这个系统的存储介质,全是 md 文件。

四、技术实现的几个关键细节

为了让这篇文章不只是概念层面的讨论,我从源码里挑几个具体的实现细节,帮助大家理解这套机制到底有多"实"。

Bootstrap 加载机制

每次对话开始,resolveBootstrapContextForRun() 函数会:

1.读取 workspace 下所有核心文件

2.根据会话类型过滤(子 agent 只加载精简子集)

3.允许插件通过 hook 修改内容

4.每个文件限制 20KB,总量限制 150KB,超出部分截断

这个预算机制很重要——它意味着你的 md 文件不能无限膨胀。写得太多太杂,反而会被截断。所以 agent 需要学会"提炼",把最重要的经验浓缩在有限的空间里。这也是为什么 MEMORY.md(提炼后的长期记忆)和 memory/*.md(原始日记)要分开的原因。

Memory 混合搜索

memory 搜索引擎用了 70% 向量相似度 + 30% 关键词匹配的混合权重,还支持 MMR(Maximal Marginal Relevance)多样性和时间衰减。也就是说最近的记忆权重更高,而且搜索结果会尽量多样化,不会全是相似的内容。

Skill 发现的优先级链

Skill 从 6 个来源扫描,优先级从低到高:

1.插件提供的 skill

2.内置 skill

3.托管 skill(~/.openclaw/skills/

4.个人 skill(~/.agents/skills/

5.项目 skill({workspace}/.agents/skills/

6.Workspace skill({workspace}/skills/

用户 workspace 里的 skill 优先级最高,可以覆盖任何内置行为。这意味着你完全可以"调教"agent 的任何技能,而调教的方式就是——写一个 md 文件。

自毁式引导

首次使用时,agent 会执行 BOOTSTRAP.md 里的引导流程来设置 IDENTITY.md、USER.md、SOUL.md。设置完成后,agent 被指令要求删除 BOOTSTRAP.md 本身。这是一个一次性的初始化过程,完成后就不再需要了。workspace 的状态机会记录引导完成的时间戳。

五、这意味着什么

理解了这套机制之后,有几个推论:

1. 你的 Agent 的价值在 workspace 文件夹里

代码是公开的,模型是通用的。真正属于你的、不可替代的部分,是你 workspace 里那堆 md 文件。那些文件里编码了你的偏好、你的工作流、你踩过的坑、你的项目上下文。

换台电脑,把 workspace 文件夹拷过去,体验原封不动。删掉那个文件夹,一切从零开始。

2. 调教 Agent 就是写 md

不需要学编程,不需要理解 prompt engineering 的技术细节。你只需要用自然语言把你的经验、偏好、规范写成 md 文件,放到 workspace 里就行了。OpenClaw 的代码会自动把它们在合适的时机注入到 prompt 中。

甚至你不需要自己写——你跟 agent 对话的过程中,它自己就会把学到的东西写成 md。你要做的只是在它犯错时纠正它,它会自己记住。

3. Agent 之间的差距就是 md 文件的差距

两个人用同样版本的 OpenClaw、同样的模型,体验可能天差地别。差别就在于他们各自 workspace 里积累了什么。一个人用了三个月,workspace 里有几十个 skill、上百条踩坑记录、完善的用户画像;另一个人刚装上,workspace 只有默认模板。

这跟现实世界的专家差距是一样的——两个人智商差不多(模型一样),差距在于积累的经验和知识(md 文件)。

4. 这可能是 AI Agent 产品的通用范式

OpenClaw 做的这套"md 文件即知识"的架构,我觉得是有普适性的。任何 AI agent 产品,如果想要做到"越用越好用",最终都要解决知识持久化和检索的问题。OpenClaw 的答案是用最朴素的文件格式(markdown)、最通用的存储方式(文件系统)、最直觉的组织方式(文件夹),再加上一个搜索引擎把它们串起来。

没有花哨的知识图谱,没有复杂的向量数据库集群,就是一堆 md 文件。但这堆 md 文件承载的是一个不断进化的专家系统——它知道你是谁、你要什么、怎么做你的事、哪些坑不能踩。

六、实操建议

最后给几个实操层面的建议:

  • 主动引导 Agent 形成 SOP。 不要等 agent 自己慢慢摸索,在你已经有成熟工作流的领域,直接告诉它"以后这类任务都按照这个流程来",让它写成 SKILL.md。

  • 定期审查 workspace 文件。 Agent 自己写的东西不一定都对,定期看看 AGENTS.md、USER.md 里有没有过时或者不准确的内容,及时修正。

  • 善用多 Agent。 不同领域配不同 agent,让每个 agent 的知识积累保持垂直和纯粹。一个专做代码的 agent 比一个什么都做的 agent 好用得多。

  • 选对模型。 再说一遍,模型是基础。一堆精心打磨的 md 文件喂给一个弱模型,效果也有限。

  • 备份你的 workspace。 这是你最有价值的数字资产之一。建议用 Git 管理(OpenClaw 默认就是 Git 跟踪的),定期推到远程仓库。

结语

OpenClaw 的源码有几十万行,但让它"越用越好用"的核心机制,说穿了就是一个 md 文件的读写循环。代码提供了管道——渠道接入、模型调用、工具执行、memory 索引。但流过管道的水,是那些不断积累的 md 文件。

换句话说:代码决定了 OpenClaw 能做什么,md 文件决定了它做得多好。

而后者,是你和你的 agent 一起,一次对话一次对话攒出来的。

文件管理啊,这让我想起了大学时代的论文管理… 其实思路是类似的。首先,规范命名至关重要,日期、关键词、版本号都安排上!其次,利用好OpenClaw自带的memory搜索功能,确保能快速检索到所需信息。最后,对于重要的AGENTS.md,强烈建议开启版本控制,万一agent抽风改错了,还能回滚~

可以考虑引入“众包”模式,让用户共享自己定制的 Agent。用户可以浏览、下载、修改其他人分享的 Agent,也可以上传自己的 Agent 供其他人使用。这样,用户就可以站在巨人的肩膀上,快速构建自己的 Agent,而不需要从零开始。

这个问题很有意思!针对代码审查 Agent,我会提供大量的代码示例,包括各种风格、各种语言的代码,并且人为制造一些错误,让它来找茬,然后我再告诉它正确的方法。针对营销文案 Agent,我会给它看大量的优秀文案案例,告诉它不同产品的卖点和目标受众,让它模仿学习,然后我会评价它写的文案,告诉它哪里好,哪里不好。总的来说,就是投喂大量相关领域的优质数据,并持续进行反馈和纠正。

虽然“md 文件即知识”的架构很简洁,但局限性也很明显。最大的问题是可扩展性,当 workspace 里的 md 文件数量越来越多,搜索效率会下降,而且人工维护的成本也会增加。另外,md 文件的结构比较简单,难以表达复杂的知识关系。我觉得知识图谱可能是一个更好的替代方案,它可以更灵活地组织和检索知识,而且可以进行知识推理。当然,知识图谱的构建和维护也更复杂。

这个问题涉及到知识迁移的问题。workspace 里的 md 文件本质上是一种特定于模型的知识表示。如果新模型的架构和旧模型差异太大,那么这些 md 文件可能就无法被直接利用。就好比你用 Java 写的代码,没法直接在 Python 解释器上运行。所以,为了保证 md 文件的有效性,需要尽量选择架构相似的模型,或者开发一些工具来自动转换 md 文件的格式。

安全性也是一个重要的问题。Agent 具有文件读写能力,如果被恶意利用,可能会造成严重的损失。所以,需要加强对 Agent 行为的监控和管理,防止它访问敏感信息,或者执行危险操作。另外,还需要注意保护用户的隐私,防止 Agent 泄露用户的个人信息。总之,AI Agent 的发展离不开安全、可靠的基础设施。

我觉得自定义 Skill 是 OpenClaw 最大的亮点之一,它让 Agent 真正从一个“通用工具”变成了你的“专属助理”。在设计 Skill 的时候,一定要尽可能详细地描述任务流程,最好能提供一些示例,让 Agent 更好地理解你的意图。另外,别忘了加上一些边界条件,避免 Agent 在意想不到的情况下出错。

这种机制类似于人类的经验总结,确实能提升可靠性,但Agent可能会因为过度强调避免错误,而变得过于保守,失去创新性。需要人工干预,平衡稳定性和创新性。

从软件工程的角度看,Skill 其实就是 Agent 的 API。设计良好的 Skill 应该遵循 Single Responsibility Principle,每个 Skill 只负责一个明确的功能。同时,要注重 Skill 的可复用性,尽量将通用的逻辑抽象出来,方便在不同的 Agent 之间共享。另外,要做好 Skill 的版本管理,避免不同版本之间的冲突。

我个人觉得md文件最大的优势是版本控制方便啊!用Git管理,每次Agent的进化都有记录,可以随时回退,这在AI调教上简直太重要了。但缺点也很明显,搜索效率肯定不如专业的知识图谱,而且对于复杂关系的表达能力也有限。所以我觉得适合个人或者小团队,快速迭代,快速试错。如果是大型企业,可能还是需要更专业的知识管理方案。

Markdown方案的优势在于其轻量级和易于人工编辑,劣势在于可能在数据量大时效率较低,且结构化查询能力有限。权衡选择时,如果注重可读性和手动维护,且数据量可控,Markdown更合适;反之,则考虑数据库或知识图谱。

谢邀,利益相关,AI Agent 研究员。从学术角度看,这其实是 Knowledge Representation 的问题。Markdown 这种 unstructured 的方式,优势是灵活,但劣势也很明显,缺少 formal semantics,不利于推理。Knowledge Graph 胜在 semantic richness,但构建和维护成本高。所以关键在于应用场景。OpenClaw 这种方式适合 exploration 和 prototyping,大规模应用还是需要转到更 formal 的 knowledge representation。

这让我想到了控制系统里的 PID 调节。AGENTS.md 就像是积分环节,能够消除稳态误差,但如果积分系数太大,就会导致系统震荡。所以关键在于如何合理设置“踩坑记录”的权重,以及如何让 Agent 能够 dynamic 地调整这个权重,根据当前的任务和环境,灵活地决定是更注重历史经验,还是更倾向于探索新的可能性。

我感觉踩坑记录这个思路很棒,相当于给Agent装了个“后悔药”。但的确存在矫枉过正的风险,比如Agent之前因为一次失误被禁止调用某个API,以后就再也不敢用了,即使后来情况发生了变化。所以我觉得可以考虑引入一个“风险评估”机制,Agent在做决策前,先评估一下重蹈覆辙的概率和可能造成的损失,再决定是否尝试。

楼上的思路很清晰!我补充一个有点“玄学”的思路:模拟人类团队协作。在人类团队中,知识共享往往是通过交流和协作来实现的。我们可以尝试让Agent之间进行“对话”,模拟人类的头脑风暴,让它们在交流中互相学习、互相启发。当然,这需要更高级的Agent设计和自然语言处理技术。

我觉得可以从技术层面入手,利用区块链技术保障workspace文件的安全。将workspace文件的哈希值记录在区块链上,任何篡改都会被轻易发现。当然,这需要对OpenClaw进行一定的改造。

其实我觉得最简单粗暴的办法就是开会!定期让所有Agent“开会”,分享各自的经验和教训。只不过这个“会议”的形式可能不是我们想象的那样,而是通过代码来实现。可以让Agent们自动分析彼此的workspace文件,找出值得分享的知识点。

可以从心理学的角度来分析这个问题。 OpenClaw 的机制有点像行为主义心理学中的“条件反射”。 Agent 犯了错,就相当于受到了“惩罚”,下次就会避免再次出现类似的行为。

但这种学习方式比较被动,缺乏认知性和主动性。 而认知心理学认为,人类的学习是一个主动建构知识的过程,需要进行信息加工、编码、存储和检索等复杂的认知活动。

所以,OpenClaw 的机制只能模拟人类学习的一部分,还远远不够。

楼上分析的好全面! 我补充一点抖机灵的:

用 Markdown 还有一个好处,就是方便用各种文本编辑器打开和编辑,甚至直接用记事本都行。 想象一下,如果 Agent 的知识库是用某种私有格式存储的,一旦 OpenClaw 不维护了,或者换了其他 Agent 产品,你的那些宝贵数据可能就导不出来了。

而 Markdown 至少保证了数据的可读性和可移植性,就算以后不用 OpenClaw 了,这些 Markdown 文件也能轻松迁移到其他地方,或者转换成其他格式。 这也算是一种“数据主权”吧。