| name | openclaw-skill-audit-prune |
| description | 当用户说“技能太多”“帮我盘点技能”“清理没用 skill”“为什么 token 这么高”“哪些技能在浪费上下文”“帮我看看这些技能要不要删”时,必须使用这个技能。它专门解决 OpenClaw 技能生态的审计、调用统计、token 影响分析、候选清理建议、确认后清理和清理后验收。 |
openclaw-skill-audit-prune
这个技能解决的是:OpenClaw 技能越来越多后,用户很难分清哪些是真正可用的,哪些只是网页里显示但并不会用到,哪些最近根本没调用,哪些正在浪费上下文和 token。
默认模式是:
不要跳过确认环节,不要一上来就删。
什么时候必须触发
只要用户有下面这些意思,就要优先用这个技能:
- 技能太多,想盘点
- 想知道哪些技能真的在用
- 想知道哪些技能只是网页里显示
- 想知道 token 为什么这么高
- 想清理没用技能,但不想误删
- 想看清理前后 token 有没有下降
默认边界
审计阶段允许做的事
- 跑
openclaw skills check
- 扫描技能目录来源
- 统计近 7 天调用次数
- 统计 token 基线或前后对比
- 生成候选清理表
审计阶段禁止做的事
- 不要删技能
- 不要卸载 CLI
- 不要改 OpenClaw 内置技能
- 不要顺手清理业务文件
清理阶段的前提
只有用户明确确认“删哪些”之后,才进入清理阶段。
标准流程
按下面 6 步固定执行,不要乱序。
第 1 步:盘点当前技能
先运行:
python3 scripts/audit_skills.py --output-report /tmp/openclaw_skill_audit.md --output-json /tmp/openclaw_skill_audit.json
目标:
- 拿到
openclaw skills check 的结果
- 区分:
- 当前真正可用的技能
- 缺前置条件的技能
- OpenClaw 内置技能
- 工作区残留技能
- 重复技能
如果用户只是说“网页里为什么还有苹果笔记之类的技能”,这一轮就要先解释:
这三者不是一回事。
第 2 步:统计近 7 天调用次数
调用统计已经并入 audit_skills.py,默认就是近 7 天。
统计口径:
- 默认看近 7 天
- 从
~/.openclaw/agents/*/sessions/*.jsonl 中提取技能读取痕迹
- 输出:
不要直接用“感觉没用”来建议删除,先看调用记录。
第 3 步:统计 token 基线或前后对比
token 基线和前后对比也已经并入 audit_skills.py。
规则:
- 如果检测到
skill_prune_* 这类历史锚点,就自动做前后对比
- 如果没有,就只输出当前 token 基线
- 需要画图时,再带上
--plot-path
这里要看的是:
- 单次请求输入 token 的均值
- 中位数
- 95 分位
第 4 步:输出候选清理表
这里直接读取 audit_skills.py 产出的报告,不需要再单独跑拼装脚本。
输出给用户时必须固定成 3 段:
- 当前概览
- 候选清理表
- 清理后验收
“候选清理表”里每个技能都要用通俗中文解释,不要只给英文名。
第 5 步:等用户确认
这一轮只做建议,不做删除。
你要让用户能直接回复:
没有确认,就不能进入下一步。
第 6 步:确认后执行清理与验收
用户确认后,按顺序执行:
python3 scripts/execute_prune.py ...
python3 scripts/validate_after_prune.py ...
python3 scripts/audit_skills.py ...
清理动作固定是:
- 先备份
- 再移出技能目录
- 如果 CLI 映射明确,再联动清理 CLI
- 最后重新校验
输出要求
当前概览
至少要有:
- 总技能数
- 可用技能数
- 缺前置条件技能数
- 重复技能数
候选清理表
至少要有:
- 技能名
- 通俗说明
- 7 天调用次数
- 最近一次调用时间
- 是否涉及 CLI
- 建议动作
清理后验收
至少要有:
- 清掉了什么
Eligible 减少了多少
- token 是否下降
- 是否还有残留
判断规则
默认可删
默认谨慎
默认不直接删
- OpenClaw 内置技能
- 缺前置条件但只是网页里显示出来的系统技能
- 无法确认归属的技能
使用脚本而不是手工拼命令
这个技能的核心逻辑已经收敛成 3 个主脚本:
scripts/audit_skills.py
scripts/execute_prune.py
scripts/validate_after_prune.py
其中:
audit_skills.py 负责技能盘点、近 7 天调用统计、token 基线/前后对比、候选清理报告
execute_prune.py 负责用户确认后的备份、清理和 CLI 联动处理
validate_after_prune.py 负责清理后复查和结果校验
优先运行这些脚本,不要重复手工写一套零散命令。
参考文件
按需读取:
references/report_template.md
references/prune_policy.md
references/cli_mapping.md
其中:
report_template.md 用来保证给用户的输出结构稳定
prune_policy.md 用来控制哪些能删、哪些要谨慎
cli_mapping.md 用来控制哪些技能需要联动清理 CLI
失败时怎么处理
情况 1:openclaw skills check 跑不通
先告诉用户无法拿到当前技能清单,再退回目录扫描模式,不要直接猜。
情况 2:调用次数统计不全
先说明当前统计口径是“近 7 天显式技能读取痕迹”,不要伪装成绝对真相。
情况 3:用户要删内置技能
默认先提醒风险,再让用户明确确认,不要悄悄动 OpenClaw 自带目录。
最终目标
这个技能的目标不是“帮用户无脑删技能”,而是:
- 把技能生态讲清楚
- 把调用情况讲清楚
- 把 token 影响讲清楚
- 然后在用户确认后,安全地完成清理和验收