乐于分享
好东西不私藏

【完结】从OpenClaw源码分析小龙虾是如何工作的?——自我进化机制

【完结】从OpenClaw源码分析小龙虾是如何工作的?——自我进化机制

近期将连续发布《从OpenClaw源码分析小龙虾是如何工作的?》,本系列一共十篇文章。 主题为:概览与调试环境搭建->Gateway中央控制器->Session管理分析->提示词上下文分析->ReAct原理与源码分析->定时任务与心跳机制->记忆系统分析->Skill 体系分析->Channel 系统分析->自我进化机制。

第10篇:自我进化机制

一、概述

OpenClaw 的自我进化机制是其最引人注目的特性之一。OpenClaw 能够在执行任务过程中不断学习、记录错误、提炼规则,持续优化行为模式,且可以无需人工干预或模型重训练

OpenClaw自我进化的核心设计思想:不修改模型权重,而是通过File-as-Memory(.md 文件作为记忆载体)+ 动态提示词工程实现一个提示词驱动的强化学习回路。

  • 用户消息 → 提示词上下文构建:系统提示中动态注入 Skills 元数据、工作区文件(含 memory/*.md)、记忆搜索指令、工具列表等。
  • 提示词上下文构建 → AI 推理:发送给LLM模型处理上下文的提示词,生成回复和工具调用。
  • AI 推理 → 工具执行:根据LLM返回的响应执行相关的工具,这里可能涉及到多轮工具的执行,是ReAct过程。
  • 工具执行 → 记忆及经验沉淀:最终LLM会决策是否要记录用户的偏好,是否要将相关的处理经验沉淀下来,对相关的markdown文件进行修改。
  • 更新后:下一轮用户输入消息后,在组装上下文时所有markdown文件会拼接进去,包含了所有过往沉淀的产物,所以能提供更精准的提示词上下文。

二、底层基石 —— Markdown 文件

OpenClaw 的自我进化机制建立在文件即记忆的核心理念之上。

  • 每次对话前 → 将上述 md 文件拼进 prompt
  • 对话中 → Agent 执行任务,学到新东西/犯错/发现偏好
  • 对话后 → Agent 把新知识写回对应的 md 文件
  • 下次对话 → 加载更新后的文件,行为更精准

三、一些示例

AGENTS.md 示例 —— 犯过的错、学到的教训

# AGENTS.md## 操作规范执行危险操作(删除文件、修改配置)前必须向用户确认使用 exec 执行命令时,避免使用 `rm -rf` 等破坏性命令## 犯过的错### 2026-05-15:误删用户配置文件**错误**:在执行 `rm temp/*` 时,由于变量为空,实际执行了 `rm /*`**教训**:使用 rm 前必须检查变量非空,或使用 `rm -f -- "$file"` 格式**已更新**:TOOLS.md 中添加了安全执行规范### 2026-05-20:API 请求未处理限流**错误**:连续快速调用 API 导致被限流封禁**教训**:第三方 API 必须添加重试和退避策略**已更新**:在相关工具中添加了限流处理## 学到的好经验### 日志分析技巧当分析大日志文件时,优先使用 `grep -E` 过滤关键词,而非读取全部内容。参考:TOOLS.md 中的日志分析章节

USER.md 示例 —— 用户画像

# USER.md## 主人信息姓名:张三职业:后端开发工程师技术栈:Go, Python, Kubernetes## 偏好喜欢简洁的回复,优先给结论不喜欢长篇大论的解释代码示例优先使用 Go工作日上午 10-11 点不方便回复,不要主动发消息## 禁区不要访问 /home/user/private 目录不要修改 ~/.bashrc 文件不要在未经确认的情况下执行 git push -f## 常用命令开发环境:`cd ~/projects/backend`查看日志:`tail -f /var/log/app.log`

TOOLS.md 示例 —— 工具使用笔记

# TOOLS.md## SSH 配置服务器地址:192.168.1.100用户名:deploy密钥路径:~/.ssh/id_rsa免密登录已配置## 安全执行规范执行 rm 前必须验证路径非空执行 curl 外部 URL 前检查是否可信数据库操作优先使用只读事务## 常用脚本部署脚本:`~/scripts/deploy.sh --env prod`备份脚本:`~/scripts/backup.sh`## 踩坑记录生产环境 Python 版本为 3.9,不支持 3.10+ 语法数据库连接池最大 50,超过会阻塞

四、核心进化机制

4.1 自然语言声明模式

OpenClaw 的核心创新在于:系统不在代码层面更新,而是通过自然语言描述的声明式定义动态注入新能力。

传统系统
OpenClaw
能力 = 硬编码的函数调用
能力 = SKILL.md 自然语言描述
添加新功能需要修改代码、重新部署
创建 SKILL.md 文件即可,无需重启
用户无法自定义行为
用户可以随时编辑 .md 文件改变行为
新功能需要等待官方发布
系统自动发现、加载、注册新命令

4.2 阶梯式自愈

OpenClaw 的自我进化不仅体现在能力增长上,还体现在故障处理能力的持续提升

核心理念:每次故障不是终点,而是触发尝试自愈;成功处理后的经验会被记录下来,让系统越用越稳定。

4.3 动态新技能

Agent 可以在运行时动态加载新技能,无需重启或重新部署。通过以下系统提示词实现自我更新。

## OpenClaw Self-UpdateGet Updates (self-update) is ONLY allowed when the user explicitly asks for it.Do not run config.apply or update.run unless the user explicitly requests an update or config change; if it's not explicit, ask first.Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).After restart, OpenClaw pings the last active session automatically.

示例:动态安装新 Skill

用户:帮我安装一个天气查询的 SkillAgent:正在搜索可用 Skill...       找到 "weather" Skill,来自 clawhub.com       是否安装?[是/否]用户:是Agent:正在安装...       ✅ weather Skill 安装成功       现在你可以使用 /weather <城市> 查询天气了       示例:/weather 北京

4.4 主动维护长期记忆

刷新长期记忆是 OpenClaw 最明显的学习行为。回复用户前Agent会主动检查是否需要将经验写入长期记忆。

五、进化案例演示

4.1 案例一:学习新的部署流程

用户:帮我部署这个项目到测试服务器[第1次] Agent:使用 scp 上传文件        ❌ 失败:权限不足[第2次] Agent:尝试使用 rsync        ❌ 失败:rsync 未安装[第3次] Agent:改用 git pull 方式        ✅ 成功:git clone + pm2 restart

Agent 记录到 TOOLS.md:

## 部署流程(已验证)测试服务器部署步骤:1. ssh user@test-server2. cd /app && git pull3. pm2 restart app

下次执行时按成功流程执行,无需再多次试错。

4.2 案例二:学习错误处理经验

用户:分析这个 100MB 的日志文件Agent:尝试读取整个文件       ❌ 失败:文件太大,上下文溢出Agent:改用 tail -n 1000 读取尾部       ✅ 成功分析

Agent 记录到 AGENTS.md:

## 学到的教训处理大日志文件(>10MB)时:1. 不要使用 read 读取整个文件2. 优先使用 grep 过滤关键词3. 或使用 tail/head 限制行数4. 需要统计分析时使用 exec 调用 awk/sed

六、与传统 AI 助手的对比

维度
传统 AI 助手
OpenClaw
记忆方式
对话上下文(单次会话)
持久化 Markdown 文件 + 向量检索
学习能力
无(每次对话都是白纸)
从错误和用户反馈中学习
个性化
需要每次重复说明偏好
一次记录,永久生效
技能扩展
依赖开发者添加
用户可自行创建 SKILL.md
故障处理
报错退出
阶梯式自愈 + 记录经验

七、总结

OpenClaw 的自我进化机制是一套完整的学习系统:

  1. 核心思想:通过 File-as-Memory + 动态提示词工程,实现提示词驱动的强化学习回路
  2. 底层基石:Markdown 文件作为记忆载体,用户可读、AI 可写、版本可控
  3. 进化闭环:对话前加载 → 对话中学习 → 对话后写入 → 下次加载更新
  4. 四大机制
    • 自然语言声明模式(技能纯文本,无需重启)
    • 阶梯式自愈(故障→尝试→记录经验)
    • 动态新技能(运行时加载)
    • 主动维护长期记忆(隐性学习,非显式命令)
  5. 核心价值:每次故障、每个偏好、每次成功的经验都会被记录,让 AI 越用越聪明、越用越符合用户的习惯

系列完结

至此,《OpenClaw 源码解析》系列全部 10 篇文章已完结。 感谢您的阅读!如有任何问题或建议,欢迎在评论区留言讨论。