ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw关键SKILL技能优化:self-improving-agent配置与验证指南

OpenClaw关键SKILL技能优化:self-improving-agent配置与验证指南 1. 先搞清楚 self-improving 和 self-improving-agent 到底差在哪OpenClaw 里的 SKILL 机制允许你把不同能力拆成独立技能包其中 self-improving 系列负责让 Agent 在跑任务的过程中记住教训。但很多人第一次接触时会发现有两个名字很像的技能self-improving 和 self-improving-agent。它们不是同一个东西的版本号而是两套设计思路完全不同的实现。self-improving 是核心版采用分层存储架构把记忆分成 HOT、WARM、COLD 三层HOT 层常驻内存且限制在 100 行以内冷数据按 30/90 天规则自动归档。它内置了自我反思框架、冲突解决策略和明确的安全边界适合需要长期记忆管理的场景。self-improving-agent 则是轻量版把学习记录写进工作区的.learnings/目录结构扁平需要手动整理更适合快速记录错误和修正。如果你正在搭建一个需要跨会话积累经验的 Agent选错技能会导致记忆膨胀、检索变慢、甚至把不该记的东西写进持久化文件。这篇内容会给出可复制的config.toml骨架、TaoToken 统一 Key 的接入方式以及通过日志和行为对比验证 self-improving 是否真正生效的具体操作。2. 接入前的准备用 TaoToken 统一管理模型 Key在配置 SKILL 之前先把模型调用通道理顺。OpenClaw 的 self-improving 在反思阶段会调用模型做总结和模式识别如果 Key 管理混乱排查问题时很难区分是技能没生效还是请求根本没发出去。TaoToken 的作用是把不同模型的调用统一到一个 API 端点上你只需要在配置里填一个 Key就能切换底层模型。对于 self-improving 这种需要频繁做小请求的场景统一入口能省掉不少切换成本。具体操作先到控制台创建一个 API Key地址是 https://taotoken.net/console 。创建完成后在接入文档页 https://taotoken.net/doc 可以查到完整的请求格式和可用模型列表。如果你只是想先验证模型通不通可以直接在模型对话页 https://taotoken.net/model 发一条测试消息确认返回正常后再写进配置。API 端点统一使用 https://taotoken.net/api 不需要额外加参数。Key 建议通过环境变量注入不要硬编码在config.toml里后面排障时也方便替换。3. 可复制的 config.toml 骨架下面这份配置把 self-improving 核心版作为主技能同时保留 self-improving-agent 的日志目录作为过渡期的兼容层。你可以直接复制后按自己的路径调整。# ~/.openclaw/config.toml [model] provider taotoken api_base https://taotoken.net/api api_key_env TAOTOKEN_API_KEY default_model claude-sonnet-4-20250514 max_tokens 4096 timeout_seconds 60 [workspace] root ~/.openclaw/workspace learnings_dir ~/.openclaw/workspace/.learnings [skills.self-improving] enabled true storage_root ~/self-improving hot_memory_limit 100 warm_retention_days 30 cold_archive_days 90 auto_promote_threshold 3 reflection_enabled true conflict_resolution priority never_store [credentials, health_data, third_party_info] [skills.self-improving-agent] enabled false log_dir ~/.openclaw/workspace/.learnings log_format structured priority_levels [low, medium, high, critical] [heartbeat] enabled true interval_minutes 30 maintenance_tasks [compress_hot, archive_cold, dedupe_patterns]几个关键参数说明。hot_memory_limit控制常驻内存的行数超过这个值会触发压缩建议不要调太高否则每次请求都要加载大量上下文。auto_promote_threshold设为 3 表示同一个模式出现三次后自动从 WARM 提升到 HOT这是 self-improving 的核心机制之一。never_store列表是安全边界明确禁止写入凭证和健康数据这个不要删。self-improving-agent这里设为false但保留了配置段方便你在迁移期做对比测试。等确认核心版稳定后可以把整个段删掉。4. 验证 self-improving 是否真正生效配置写完不代表技能在跑。你需要通过日志和行为两个维度来确认。4.1 日志验证启动 OpenClaw 后先触发一次需要反思的任务。比如让 Agent 执行一个会失败的命令然后观察~/self-improving/目录下是否生成了对应文件。# 查看 self-improving 存储结构 ls -la ~/self-improving/ # 预期输出 # memory.md # HOT 层常驻 # index.md # 主题索引 # heartbeat-state.md # 心跳状态 # corrections.md # 最近修正记录 # projects/ # 项目级学习点 # domains/ # 领域级学习点 # archive/ # COLD 层归档如果memory.md不存在或者为空说明反思流程没有触发。检查config.toml里reflection_enabled是否为true以及模型请求是否正常返回。接着看corrections.md的内容格式tail -20 ~/self-improving/corrections.md正常输出应该包含时间戳、任务类型、反思内容和改进建议。如果只有时间戳没有内容多半是模型返回被截断检查max_tokens是否够用。4.2 行为对比验证日志有了还要确认 Agent 的行为真的变了。做一组对照实验第一轮让 Agent 执行一个会报错的命令比如访问一个不存在的文件路径。记录它的反应。# 第一轮触发错误 openclaw run 读取 /tmp/nonexistent-config.yaml 并解析Agent 会报错self-improving 会把这次失败写入corrections.md。第二轮隔几分钟后执行同类任务但换一个不存在的路径。# 第二轮同类错误观察是否复用上次的教训 openclaw run 读取 /tmp/another-missing-file.json 并解析如果 self-improving 生效第二轮的错误处理应该更快或者 Agent 会主动提示这类路径不存在的情况之前遇到过建议先检查文件是否存在。这个行为差异就是 self-improving 在起作用。你还可以查看heartbeat-state.md确认心跳维护任务是否在跑cat ~/self-improving/heartbeat-state.md里面会记录上次压缩、归档、去重的时间。如果这些时间戳一直不变说明 heartbeat 没有正确集成检查config.toml里maintenance_tasks的配置。5. 本篇常见错误排查5.1 技能加载了但 memory.md 一直是空的最常见的原因是storage_root路径没有写权限或者路径用了相对路径导致解析到了错误位置。把storage_root改成绝对路径再试。另一个可能是reflection_enabled被其他配置覆盖了用openclaw config show确认最终生效值。5.2 两个技能同时开启导致日志重复写入如果你把self-improving和self-improving-agent都设为enabled true会出现同一件事被记录两次的情况。核心版写进~/self-improving/轻量版写进.learnings/两边内容不一致时排查会很痛苦。建议按第 3 节的配置只开核心版轻量版设为false作为过渡。5.3 模型请求返回 401 或 403先确认环境变量TAOTOKEN_API_KEY是否在当前 shell 会话中生效。用echo $TAOTOKEN_API_KEY检查如果为空说明没有 export 或者写在了错误的 profile 文件里。另外确认api_base写的是https://taotoken.net/api不要多加路径后缀。如果 Key 本身有问题到 https://taotoken.net/api-keys 重新生成一个再试。5.4 HOT 层超过 100 行但没有自动压缩检查heartbeat段是否启用以及interval_minutes是否设得太大。压缩动作是在心跳周期里执行的如果间隔是 30 分钟那最多要等 30 分钟才会触发。你可以手动跑一次维护任务来验证openclaw skill run self-improving --task compress_hot如果手动执行成功但自动不触发说明 heartbeat 的调度有问题检查 OpenClaw 主进程是否在运行。5.5 反思内容质量差全是套话这通常是模型选择的问题。self-improving 的反思质量高度依赖底层模型的总结能力。如果你用的是较小的模型反思内容容易变成下次要注意这种没有信息量的句子。在config.toml里把default_model换成更强的模型或者在技能级别单独指定模型。TaoToken 的模型列表里可以找到适合做总结的选项具体在 https://taotoken.net/doc 的模型章节有说明。6. 长期跑下去Key 和技能怎么配合self-improving 的价值在于跨会话积累这意味着它会持续调用模型做反思、压缩、去重。如果每次请求都走不同的 Key 或者不同的端点日志会散落在各处排查成本很高。把 TaoToken 作为统一入口的好处是你可以在一个地方看到所有请求的量级和失败率。当 self-improving 的反思请求突然变多或者报错率上升时能快速定位是技能配置问题还是 Key 额度问题。如果你打算长期跑编码类 Agent可以了解一下 Coding Plan 的额度方案地址是 https://taotoken.net/coding-plan 。它针对高频小请求做了优化比较适合 self-improving 这种需要频繁做短请求的场景。配置改完后建议先跑一周观察~/self-improving/目录的增长速度。如果archive/膨胀太快说明cold_archive_days设得太短可以适当调大。如果memory.md频繁触顶说明auto_promote_threshold太低把 3 改成 5 能减少误提升。这些参数没有标准答案按你自己的任务密度来调就行。
返回列表