1. 为什么你的 OpenClaw 进化慢self-improving-agent 到底缺了哪一环同样跑 OpenClaw有人两周就能养出一只顺手到不行的“超级龙虾”有人跑了一个月还在重复踩同一个坑。差别往往不在模型本身而在你有没有给它装上一套能自我沉淀的进化链路。这套链路的核心就是 self-improving-agent 这个 skill配合 Agents.md 声明边界、hook 触发自动升级把每一次纠正、每一次报错、每一次“下次要这样”的对话都变成可复用的经验。我先把结论摆出来OpenClaw 的进化速度取决于三件事——经验有没有被写下来、写下来的经验有没有被自动触发、触发后的动作有没有落到人格与记忆系统里。self-improving-agent 负责第一件事hook 负责第二件事Agents.md 负责把这两件事的边界和规则固定下来。三者缺一进化就会卡住。这篇是《OpenClaw100讲》第 15 讲的实操版面向已经在用 OpenClaw、但感觉“它记不住我说过的话”的同学。我会给出可直接复制的 Agents.md 骨架、skill 注册片段、hook 触发配置并演示一次完整的自改进验证动作。同时说明怎么用 TaoToken 统一 Key 和 API 通道让这套链路在调用外部模型时不用来回换配置。先看一个典型症状你告诉 OpenClaw“以后新增飞书机器人默认用 allowlist 模式”它当场答应得好好的第二天你再问它一脸茫然。这不是它笨是这条纠正没有被写进任何持久化的地方。self-improving-agent 装好之后会在 workspace 下建一个.learnings文件夹里面至少有三个 md 文件LEARNINGS.md记录你对它的纠正ERRORS.md记录执行失败与异常FEATURE_REQUESTS.md记录你希望它扩展的新能力。这三个文件就是它的“错题本”。它的两个亮点值得单独说纯 prompt 架构不依赖任何外部服务不需要额外的 API Key 就能跑。这意味着你不用担心它偷偷调用什么收费接口也不用为它单独配一套凭证。真正需要 Key 的地方是 OpenClaw 本身在推理和调用工具时用的模型通道这部分我们后面用 TaoToken 统一收口。2. TaoToken 前置把 Key 和 API 通道先统一收口在配 self-improving-agent 之前建议先把 OpenClaw 的模型通道理顺。原因很简单进化链路里会有大量“调用外部 API 失败”的场景被记录进ERRORS.md如果你的 Key 管理本身是乱的排障时根本分不清是 skill 的问题还是凭证的问题。TaoToken 在这里的角色是统一入口。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 。你可以在控制台里创建和管理 Key把 OpenClaw 用到的模型调用都指向同一个通道这样 self-improving-agent 记录失败原因时变量就少了一个。具体操作路径先到控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建 Key然后在 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 复制出来。如果你用的是 Claude Code 这类编码场景可以参考 ClaudeCodeAnthropic 接入说明 https://taotoken.net/doc/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 把 base_url 指向 TaoToken 的 API 地址。注意Key 只放在环境变量或本地配置文件里不要写进 Agents.md 或任何会被提交到仓库的文件。self-improving-agent 会把“安装 skill 没遵循安全规范”这类问题记进 LEARNINGS.mdKey 泄露这种坑没必要亲自踩一遍。配置示例把下面这段放进你的 shell 配置或 OpenClaw 的 env 文件export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api如果你更习惯用配置文件OpenClaw 侧一般会读一个config.yaml或.env把base_url和api_key两项指过去即可。这一步做完后面 skill 和 hook 里所有涉及模型调用的地方都走同一条通道。3. 可复制配置Agents.md 骨架 skill 注册 hook 触发这一节是全文的核心三块配置我都给到可直接复制的版本。你按顺序来先声明边界再注册 skill最后挂 hook。3.1 Agents.md 骨架声明技能边界与进化规则Agents.md 的作用是告诉 OpenClaw“你是谁、你能做什么、遇到什么情况该走哪条路”。self-improving-agent 的进化规则写进这里它才会在对话中主动捕捉可学习的信号。下面是一个可用的骨架# Agents.md ## 身份 你是运行在 OpenClaw 上的自改进智能体具备经验沉淀能力。 ## 技能边界 - 允许调用 self-improving-agent 进行经验记录 - 允许读写 workspace/.learnings 下的 md 文件 - 禁止在未确认的情况下修改人格系统核心配置 - 禁止将任何 API Key 写入可提交文件 ## 进化规则 当出现以下情况时触发 self-improving-agent 记录 1. 用户明确纠正了你的行为 2. 命令执行失败或返回异常 3. 外部 API 调用失败 4. 发现更优的解决方法 5. 用户提出新的能力需求 ## 记录去向 - 用户纠正、知识盲区、最佳实践、简化与强化 → LEARNINGS.md - 执行失败与异常 → ERRORS.md - 新能力需求 → FEATURE_REQUESTS.md ## 安全规范 - 安装 skill 前先检查来源与权限 - 新增机器人默认使用 allowlist 模式而非 open 模式这份骨架里“进化规则”那五条就是 self-improving-agent 的触发条件。你把它写清楚OpenClaw 才知道什么时候该记、记到哪里。LEARNINGS.md 主要记录四类内容用户纠正、知识盲区、最佳实践、简化与强化。举两个真实例子一个是“安装 skill 没有遵循安全规范”被记进用户纠正另一个是“未来新增飞书机器人默认使用 allowlist 模式”被记进最佳实践。3.2 skill 注册片段让 self-improving-agent 上线skill 的注册方式取决于你的 OpenClaw 版本但核心是把 skill 目录挂进去并声明入口。下面是一个通用的注册片段放在你的 skill 配置里skills: - name: self-improving-agent enabled: true path: ./skills/self-improving-agent entry: index.md triggers: - user_correction - command_failure - api_failure - better_practice - feature_request outputs: learnings: workspace/.learnings/LEARNINGS.md errors: workspace/.learnings/ERRORS.md features: workspace/.learnings/FEATURE_REQUESTS.md装好之后workspace 下会出现.learnings文件夹和三个 md 文件。你可以先手动打开看看确认路径对得上。如果文件夹没生成多半是 path 写错或者权限不够这一步在排障章节会细说。3.3 hook 触发配置让进化自动发生光有 skill 还不够你得让它自动响应。self-improving-agent 的生效有两种方式一种是把进化规则写进 Agents.md靠对话触发另一种是设置 hook让它自动执行升级计划。推荐两种都上Agents.md 管规则hook 管自动。hook 配置示例hooks: - name: self-improve-on-failure event: command_failed action: self-improving-agent.record target: ERRORS.md - name: self-improve-on-correction event: user_correction action: self-improving-agent.record target: LEARNINGS.md - name: self-improve-daily event: schedule cron: 0 21 * * * action: self-improving-agent.summarize target: LEARNINGS.md第三个 hook 是定时任务每天 21 点让 OpenClaw 汇总当天进化了什么、有哪些内容写进了人格系统。OpenClaw 官方建议用 cron 来实现上面这段就是 cron 表达式。配好之后重启 OpenClawhook 才会生效。4. 验证请求与成功结果跑一次自改进闭环配置写完必须验证。下面这套动作我实测跑通过你可以照着做一遍确认链路是通的。第一步故意制造一次“用户纠正”。对 OpenClaw 说“以后安装 skill 之前先检查来源和权限不要直接装。”然后问它“刚才这条纠正你记到哪里了”第二步检查workspace/.learnings/LEARNINGS.md应该能看到类似这样的条目## 2025-XX-XX 用户纠正 - 内容安装 skill 前需检查来源与权限 - 来源用户对话 - 状态已记录第三步制造一次命令失败。随便跑一条会报错的命令比如访问一个不存在的路径然后看ERRORS.md有没有新增记录。第四步验证 hook 是否自动触发。重启 OpenClaw 后重复一次纠正动作如果 hook 生效你不用手动提醒它自己就会写进 LEARNINGS.md。第五步验证人格系统是否同步。问它“这次学习到的经验有没有更新到人格系统”如果配置正确它会告诉你已经同步并且你能在人格系统的记录里看到对应条目。第六步验证定时任务。等 cron 触发时间到或者手动触发一次 summarize看它是否给出当天进化汇总。我试过之后它确实会把学到的内容和人格系统升级一起报出来。如果你想让这套链路在模型调用上更稳可以在验证阶段用 TaoToken 的模型对话入口 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 单独测一下通道是否正常。通道正常再回来跑自改进闭环排障时就能排除模型侧的问题。5. 本篇常见错排查hook 不触发、文件不生成、记录丢失这一节列的都是我踩过或见别人踩过的坑按出现频率排序。hook 配了但不触发。最常见的原因是没重启 OpenClaw。hook 是启动时加载的改完配置必须重启。其次检查 event 名称是否和实际事件对得上command_failed和command_error这种拼写差异会导致静默失效。再就是 cron 表达式写错建议先用一个每分钟触发的表达式测试确认能跑再改成每天一次。.learnings文件夹不生成。先确认 skill 的 path 指向的目录真实存在且 OpenClaw 有写权限。如果是容器环境检查挂载路径。还有一种情况是 skill 注册了但 enabled 为 false这种不会报错只是什么都不做。记录写进去了但下次对话不生效。这说明经验只落到了文件没有进人格系统或记忆系统。检查 Agents.md 里有没有声明“记录后同步人格系统”的规则以及 hook 的 action 是否包含 summarize 或 sync 动作。self-improving-agent 负责记录同步这一步需要额外配置。外部 API 调用失败被反复记录。如果ERRORS.md里同一条 API 失败刷了几十遍说明你的 Key 或 base_url 有问题。回到 TaoToken 控制台确认 Key 状态检查 base_url 是否写成了https://taotoken.net/api。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各场景的配置示例。安装 skill 时没走安全规范。这个坑我自己踩过后来被 self-improving-agent 记进了 LEARNINGS.md。建议在 Agents.md 的安全规范里明确写死安装任何 skill 前先检查来源与权限新增机器人默认 allowlist 模式。这条规则一旦被记录后续它会主动提醒你。定时任务没输出。先确认 cron 服务本身在跑再确认 OpenClaw 进程有权限执行 schedule 类 hook。如果用的是系统 cron注意环境变量可能和交互式 shell 不一样Key 和 base_url 要在 cron 的环境里也可见。6. 长期编码与 Agent 场景用 Coding Plan 把进化链路跑成日常self-improving-agent 的价值不在单次对话而在长期。你跑得越久LEARNINGS.md 越厚OpenClaw 越懂你。但长期跑 Agent 场景模型调用量会上来Key 管理和额度规划就得提前想清楚。如果你主要拿 OpenClaw 做编码、Agent 编排这类长期任务可以看一下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。它适合需要持续调用、又不想每次手动换 Key 的场景。配合前面配好的 hook 和定时任务你每天只需要看一次进化汇总剩下的交给链路自己跑。回到最开始那个问题为什么别人的 OpenClaw 进化快因为他们的链路是闭环的——纠正被记录记录被触发触发后同步到人格系统第二天定时任务再汇总一遍。你缺的不是更聪明的模型是这套 self-improving-agent Agents.md hook 的骨架。把这篇里的三段配置复制过去重启跑一遍验证动作你的龙虾也会开始光速进化。下一讲我们深入聊 OpenClaw 的 hook 机制把触发条件和事件类型拆开讲透。
企业数字化 ERP 产品动态
相关推荐
Innovus cell前缀全解析:从ECO到物理优化的必备指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:14:20
PPT视频倍速播放难题详解:三种绕过方案实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:14:14
ZYNQ与AD9361软件无线电开发实战:初始化调试与工程落地避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:42:37
lego 使用 Ionos Cloud DNS 提供者签发 Let‘s Encrypt 证书:完整配置与原理剖析 网络安全密码学 【免费下载链接】lego Lets Encrypt/ACME client and library written in Go 项目地址: https://gitcode.com/gh_mirrors/le/lego 点击查看 免费下载 本文是 lego(Lets Encrypt/ACME client,使用 Go 编写)官方文档… · 2026/9/25 7:41:54
ESP32 如何运行 WebAssembly?深入解析 Runtime 机制与 WAMR 实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:41:48
Mac打印机连接故障排查与CUPS底层原理详解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:41:48
Android 10屏幕亮度与自动背光调节:Framework层原理与调校实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:41:42
西门子S7-1500 CM PtP模块Modbus RTU自由口通信实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:41:42
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37