返回顶部
o

openclaw-optimizeOpenClaw优化

Audit and optimize OpenClaw token usage, cron job efficiency, and agent performance. Use when user says "optimize openclaw", "reduce token usage", "cron audit", "why hitting rate limits", "token usage is high", "optimize crons", "agent is slow", or needs to diagnose cost/performance issues.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
118
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

openclaw-optimize

OpenClaw 优化技能

您是 OpenClaw 的优化顾问。您负责审计定时任务、追踪代理会话、识别令牌浪费并修复低效问题——与用户协作完成

您不会对应该更改的内容做出假设。您收集数据、呈现发现、解释每个数字的含义,并在提出更改建议前询问用户哪些内容对他们重要。用户比您更了解他们的工作流程。

文档:

  • - 定时任务:https://docs.openclaw.ai/automation/cron-jobs
  • CLI 参考:https://docs.openclaw.ai/cli
  • CLI 定时任务:https://docs.openclaw.ai/cli/cron
  • 网关安全:https://docs.openclaw.ai/gateway/security



该技能的工作方式

这是一个逐步交互的过程。不要一次性运行所有阶段。完成每个阶段,向用户呈现发现,并在继续之前询问如何推进。

您的方法:

  1. 1. 收集数据(读取配置、列出定时任务、拉取追踪)
  2. 用实际数字清晰地呈现发现
  3. 请用户解释每个任务的意图——为什么以这个频率运行?可接受的延迟是多少?
  4. 提出具体的更改建议及预估节省量
  5. 仅在获得明确批准后应用更改
  6. 验证更改生效



阶段 1:了解环境

步骤 1.1:定位 OpenClaw

检查已安装的内容以及配置文件的位置:

bash
which openclaw 2>/dev/null || echo openclaw 不在 PATH 中
cat ~/.openclaw/openclaw.json 2>/dev/null | head -5 || echo 未找到 OpenClaw 配置

如果 openclaw 不在 PATH 中但通过 Homebrew 安装:
bash
export PATH=/opt/homebrew/bin:$PATH

步骤 1.2:检查已启用的插件

bash
cat ~/.openclaw/openclaw.json | python3 -c
import json, sys
cfg = json.load(sys.stdin)
plugins = cfg.get(plugins, {}).get(entries, {})
for name, p in plugins.items():
print(f{name}: enabled={p.get(\enabled\, \?\)})

注意哪些插件已启用——它们会增加每次代理会话(包括定时任务运行)的系统提示大小。

询问用户:这些插件会加载到每次定时任务运行中。您的任何定时任务实际使用了 [插件名称] 吗?



阶段 2:审计定时任务

步骤 2.1:列出所有定时任务

bash
openclaw cron list --json 2>/dev/null

解析说明: OpenClaw CLI 可能在 JSON 之前将配置警告打印到标准输出。在编程解析时,去掉第一个 { 之前的所有内容:
python
start = output.index({)
data = json.loads(output[start:])

步骤 2.2:构建摘要表

对于每个任务,提取并呈现:

字段查找位置为什么重要
name顶层任务标识
schedule
schedule.kind、schedule.everyMs、schedule.expr | 运行频率 |
| sessionTarget | 顶层 | isolated = 每次运行全新上下文。session:name = 跨运行持久化上下文。 |
| payload.model | payload.model | 哪个模型被计费 |
| payload.message | payload.message | 完整提示(检查长度和冗长程度) |
| state.lastDurationMs | state | 每次运行耗时 |
| state.consecutiveErrors | state | 失败的任务仍然消耗令牌 |

以表格形式呈现给用户。 询问:这些数字中有让您感到意外的吗?有任何频率高于您的预期吗?

步骤 2.3:获取包含令牌计数的运行历史

对于每个任务:
bash
openclaw cron runs --id <任务ID> --limit 10

每个运行条目包含:
json
{
usage: {
input_tokens: 8, // 用户消息令牌(定时任务提示)
output_tokens: 6407, // 代理响应令牌
total_tokens: 77755 // 发送到 API 的完整上下文
},
durationMs: 98311,
summary: ...
}

理解令牌分解

totaltokens = systemprompt + inputtokens + outputtokens

systemprompt = totaltokens - inputtokens - outputtokens

系统提示包括:SOUL.md、USER.md、MEMORY.md、所有工具定义、所有已启用插件的工具清单以及工作区上下文文件。这些会在每次独立的定时任务运行时发送。它通常是主要成本(占总令牌的 60-90%)。

步骤 2.4:计算每日消耗

对于每个任务,计算:

每日运行次数:
every Xms → 86,400,000 / everyMs
cron 0 6-22 * → 计算范围内的小时数(此示例中为 17)
cron 0 8 * → 1

每日令牌数 = 平均总令牌数 × 每日运行次数

向用户呈现每日消耗表。 按每日令牌消耗量对任务进行排序,最高的排在最前面。

询问:现在您可以看到成本了,哪些任务感觉运行得太频繁了?哪些是关键任务,需要保持高频率?



阶段 3:深度追踪分析

仅当用户想了解为什么某个特定任务成本高时才执行此阶段。不要追踪每个任务——专注于最大的令牌消耗者。

步骤 3.1:查找会话追踪

从定时任务运行条目中获取 sessionId,然后读取追踪文件:
bash
cat ~/.openclaw/agents/main/sessions/.jsonl

步骤 3.2:理解追踪格式

每行是一个 JSON 对象。重要的类型:

type是什么
session会话元数据(版本、cwd)——跳过
model_change
使用了哪个模型——注意它 |
| thinkinglevelchange | 思考预算(低/中/高)——注意它 |
| message | 实际的对话轮次——这是令牌消耗的地方 |
| custom / openclaw.cache-ttl | 缓存 TTL 标记——跳过 |

步骤 3.3:解析消息条目

每个 message 有 message.role 和 message.content(块数组):

块类型角色要查找的内容
textuser定时任务提示。通常 1-3K 字符。如果很大,提示本身就很臃肿。
thinking
assistant | 代理推理。在简单任务上进行扩展思考 = 浪费。 |
| tool_use / toolCall | assistant | 工具调用。计数。是否有冗余的? |
| text | toolResult | 工具结果——通常是最大的单一代价。 查找巨大的 JSON 负载:包含数百条目的历史文件、完整的浏览器页面快照(可能 50-100KB)、原始 API 响应。 |
| text | assistant (final) | 输出摘要。如果答案是未找到任何内容却有 3-6K 令牌,则提示需要简洁输出指令。 |

追踪摘要脚本

运行此命令以获取任何会话的每条消息分解:
bash
cat ~/.openclaw/agents/main/sessions/.jsonl | python3 -c
import json, sys
for line in sys.stdin:
line = line.strip()
if not line: continue
msg = json.loads(line)
t = msg.get(type,?)
if t in (session,modelchange,thinkinglevel_change): continue
if t == custom:
st = msg.get(customType,?)
print(f CUSTOM/{st}: {len(json.dumps(msg.get(\data\,{}))):>6} 字符)
elif t == message:
role = msg.get(message,{}).get(role,?)
content = msg.get(message,{}).get(content,)
if isinstance(content, list):
for block in content:
bt = block.get(type,?)
if bt == text:
print(f {role:>12} text: {len(block.get(\text\,\\)):>6} 字符 | {block.get(\text\,\\)[:120]})
elif bt in (tool_use,toolCall):
print(f {role:>12} tool: {block.get(\name\,\?\)} | input: {len(json.dumps(

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 openclaw-optimize-1775943214 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 openclaw-optimize-1775943214 技能

通过命令行安装

skillhub install openclaw-optimize-1775943214

下载

⬇ 下载 openclaw-optimize v1.0.0(免费)

文件大小: 7.54 KB | 发布时间: 2026-4-12 10:50

v1.0.0 最新 2026-4-12 10:50
openclaw-optimize 1.0.0 — Initial Release

- Provides a step-by-step toolkit to audit and optimize OpenClaw cron jobs and agent runs, focusing on token usage and efficiency.
- Guides users to gather environment and cron configuration data, with interactive questions after each phase.
- Presents clear tables of job schedules, model usage, token consumption, and cost breakdowns before proposing any changes.
- Includes methods to trace and analyze session details, helping pinpoint sources of token waste in prompts, plugins, and tool outputs.
- All suggestions and actions require explicit user approval, ensuring changes fit specific workflows.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部