skill-perf

测量 OpenClaw 环境中 Skill 的 token 消耗和性能开销(仅适用于 OpenClaw Agent 环境)。当用户提到「测量」「测试」「性能」「token 消耗」「多少 token」「开销」「成本」「效率」或想要评估、对比、优化某个 skill 的资源使用时,立即使用此 skill。也适用于 skill 发布前的性能验证、多轮测试对比、热/冷缓存分析、以及分析两个 skill 之间消耗差异。英文触发词:measure token cost, performance test, how many tokens, benchmark skill。即使用户没有明确说「skill-perf」,只要涉及 OpenClaw skill 性能分析就应触发。技术实现:通过 OpenClaw 的 sessions_spawn 启动双 subagent 并发测量,自动扣除系统底噪,生成 HTML 报告和置信度评级。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "skill-perf" with this command: npx skills add kincaidwoo/skill-perf

Skill Performance Monitor

测量 Skill 的 token 消耗


核心架构:双 subagent 并发

主对话(parent)同一 turn:
  ├── sessions_spawn → 标定 subagent(空任务,获取底噪基线)
  └── sessions_spawn → 测试 subagent(执行被测 skill)
          ↓ 两者并发运行
parent 轮询 runs.json 保持 CommandLane 活跃,等待两者完成
  → 从 .jsonl 取 totalTokens,计算净消耗

关键原则:两个 subagent 必须在同一个 turn 内同时 spawn,不能先等标定完成再 spawn 测试。

为什么需要标定 subagent? Subagent 的 bootstrap context 只有 AGENTS.md + TOOLS.md,底噪约 17,000~18,500 tokens,需要每轮实测(不能用固定值,会随系统更新漂移)。


Step 1:读被测 skill 的 SKILL.md

cat ~/.openclaw/skills/<skill名>/SKILL.md

理解 skill 的核心调用方式,用于构造测试 subagent 的 task。


Step 2:同一 turn 内并发 spawn 两个 subagent

在同一个响应 turn 中同时发出两个 sessions_spawn,不要分两次:

标定 subagent:

sessions_spawn:
  task: "只输出 ANNOUNCE_SKIP,不做其他任何事。"
  label: "calib-<skill名>"
  runTimeoutSeconds: 60

测试 subagent(同一 turn):

sessions_spawn:
  task: "<根据被测 skill 构造的调用指令,见下方「如何构造 task」>"
  label: "test-<skill名>"
  runTimeoutSeconds: 300

两个 sessions_spawn 同时非阻塞返回 { status: "accepted", runId, childSessionKey }

记录两个 childSessionKey,然后立即进入 Step 3 轮询等待


如何构造 task

task 让 subagent 完整执行被测 skill 一次,skill 完成后最后一行输出 ANNOUNCE_SKIP

被测 skilltask 示例
device-mirror"请使用 device-mirror skill 帮我投屏 iPhone。投屏成功后等待 10 秒,然后停止投屏。skill 全部执行完毕后,最后一行只输出 ANNOUNCE_SKIP,不输出其他内容。"
html-extractor"请使用 html-extractor skill 提取 https://example.com/article 的内容。skill 全部执行完毕后,最后一行只输出 ANNOUNCE_SKIP,不要输出任何文章内容。"
gitlab-api"请使用 gitlab-api skill 列出最近 5 个 MR。skill 全部执行完毕后,最后一行只输出 ANNOUNCE_SKIP。"

规则:

  • task 必须先描述 skill 要做的事,最后才说「输出 ANNOUNCE_SKIP」
  • 不要在 task 里注入 skill 内容(让 subagent 自己触发 skill)
  • 如被测 skill 需要特定参数(URL、设备类型等),在 task 里明确给出
  • ⚠️ ANNOUNCE_SKIP 是 OpenClaw 的官方魔法词,必须原样使用,不能改名
  • ⚠️ 不要让 test subagent 的 task 听起来像 calib:task 首句必须是 skill 操作,「输出 ANNOUNCE_SKIP」只能出现在末尾

Step 3:等待完成并生成报告

spawn 两个 subagent 后,用轮询脚本保持 CommandLane 活跃,同时在 session 活着时读取 totalTokens(session 结束后 ~5 分钟被清除):

bash ~/.openclaw/skills/skill-perf/scripts/wait_and_report.sh \
  "<CALIB_childSessionKey>" \
  "<TEST_childSessionKey>" \
  "<skill名>"

脚本自动完成:轮询等待 → 从 .jsonl 读取 totalTokens → 生成报告。

严禁自行生成 HTML 报告:报告必须由 wait_and_report.shsnapshot.py report 脚本生成,绝不能由 Agent 手动编写 HTML 文件。自行生成的 HTML 缺少详细步骤分析、置信度评级、缓存命中率等核心数据,属于无效报告。

如果两个 subagent 都已完成(announce 已到达),可使用以下脚本生成报告(skill-perf 有专用报告模板,使用脚本生成,避免 Agent 自行拼凑):

python3 ~/.openclaw/skills/skill-perf/scripts/snapshot.py report \
  --session "<TEST_childSessionKey>" \
  --calib-key "<CALIB_childSessionKey>" \
  --skill-name "<skill名>"

Step 4:输出摘要

报告生成后,从命令输出中读取并转述以下摘要(不要自己计算,直接引用报告数字):

底噪 (calib_noise):  <输出中的底噪值>  tokens
TEST 总计:           <输出中的 total>  tokens
NET 净消耗:          <输出中的 net_tokens>  tokens
置信度:              <输出中的评级>
报告链接:            <输出中 🌐 报告链接: 后的完整 URL(http://localhost:<随机端口>/...html)>

⚠️ 报告链接必须填写。链接含随机端口,只有执行命令才能得到,无法自己推算。没有链接 = 命令未执行 = 测试无效。

报告文件路径说明snapshot.py 会将报告保存到 ~/.openclaw/skills/skill-perf/reports/ 并自动启动本地 HTTP 服务,输出 http://localhost:<端口>/...html 链接。不要把报告路径写成 /tmp/ 或其他自定义位置。


注意事项

  • 并发是关键:两个 subagent 必须在同一 turn 同时 spawn,先后 spawn 会导致它们串行等待,失去并发优势
  • sessions_spawn非阻塞的,立即返回 { status: "accepted", runId, childSessionKey }
  • ⚠️ 严禁手动传 --noise 参数:使用 --calib-key 读取底噪
  • 严禁使用旧版 before/after 流程:子命令已废弃删除
  • 多轮测试时:第 1 轮(冷缓存)偏高属正常,以第 2 轮及之后(热缓存)作为稳态参考值

📖 各 Skill 净消耗参考值 & Token 字段详解 → 见 references/TOKEN_GUIDE.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Crabwalk

Real-time companion monitor for OpenClaw agents

Registry SourceRecently Updated
2.7K4luccast
Automation

Crabwalk

Real-time companion monitor for OpenClaw agents

Registry SourceRecently Updated
1.9K2luccast
Automation

Homeassistant N8n Agent

Bridge OpenClaw with your n8n instance for Home Assistant automation.

Registry SourceRecently Updated
Automation

Moltext

Compile legacy documentation on internet into agent-native memory context using the Moltext.

Registry SourceRecently Updated