OpenClaw Skill Lazy Loader
Stop loading every skill file at session start. Load what you need, when you need it — and cut your token usage by 40–70%.
The Problem
Most OpenClaw agents load their entire skill library at startup:
CODEBLOCK0
Each session burns 3,000–15,000 tokens just loading context that may never be used. At scale, this is your biggest cost.
The Solution: Lazy Loading
Instead of loading skills upfront, agents check a SKILLS catalog (a lightweight index) and load individual skill files only when a task requires them.
Before: Load 20 skill files = ~12,000 tokens/session
After: Load catalog (300 tokens) + 1–2 relevant skills (~800 tokens) = ~1,100 tokens/session
That's an 89% reduction on context loading alone.
Implementation Guide
Step 1: Create Your SKILLS Catalog
Create SKILLS.md in your agent workspace — a lightweight index of all available skills:
CODEBLOCK1
This catalog is the ONLY file loaded at session start. ~200–400 tokens instead of 10,000+.
See SKILLS.md.template for a complete starter template.
Step 2: Update Your AGENTS.md
Replace bulk loading with the catalog pattern:
CODEBLOCK2
See AGENTS.md.template for the full recommended AGENTS.md skills section.
Step 3: Use the Context Optimizer (Optional)
The included context_optimizer.py analyzes your task description and recommends which skills to load:
CODEBLOCK3
Step 4: Apply to Memory Files Too
The same pattern works for memory and context files:
CODEBLOCK4
Token Savings Calculator
| Scenario | Before | After | Savings |
|---|
| 5 skills loaded | ~3,000 tokens | ~600 tokens | 80% |
| 10 skills loaded |
~6,500 tokens | ~750 tokens | 88% |
| 20 skills loaded | ~13,000 tokens | ~900 tokens | 93% |
| +Memory files (5) | +4,000 tokens | +400 tokens | 90% |
Estimates based on average SKILL.md size of ~600 tokens. Catalog averages ~150 tokens.
Integration with Token Optimizer
This skill pairs directly with OpenClaw Token Optimizer. Lazy loading handles context loading costs; Token Optimizer handles model routing, heartbeat budgeting, and runtime costs. Together they cover the full token lifecycle.
Install both:
clawhub install openclaw-skill-lazy-loader
clawhub install openclaw-token-optimizer
Files in This Skill
| File | Purpose |
|---|
| INLINECODE4 | This guide |
| INLINECODE5 |
Starter SKILLS catalog template |
|
AGENTS.md.template | Lazy loading AGENTS.md section |
|
context_optimizer.py | CLI helper — recommends skills to load per task |
|
README.md | ClawHub listing description |
|
SECURITY.md | Security audit and script disclosure |
|
.clawhubsafe | File integrity manifest |
Quick Start (5 minutes)
CODEBLOCK6
By M Asif Rahman (@Asif2BD) · Apache 2.0 · https://clawhub.ai/Asif2BD/openclaw-skill-lazy-loader
OpenClaw 技能懒加载器
无需在会话启动时加载每个技能文件。按需加载所需内容——将令牌使用量削减40–70%。
问题
大多数OpenClaw代理在启动时会加载整个技能库:
markdown
AGENTS.md(原始方法)
开始前读取所有内容:
- - skills/python/SKILL.md
- skills/git/SKILL.md
- skills/docker/SKILL.md
- skills/aws/SKILL.md
- skills/browser/SKILL.md
...(还有20多个)
每次会话仅加载可能永远不会用到的上下文就要消耗 3,000–15,000 个令牌。规模扩大后,这将成为最大的成本。
解决方案:懒加载
代理不再预先加载技能,而是检查 SKILLS 目录(轻量级索引),仅在任务需要时加载单个技能文件。
之前: 加载20个技能文件 = 约12,000个令牌/会话
之后: 加载目录(300个令牌)+ 1–2个相关技能(约800个令牌)= 约1,100个令牌/会话
仅上下文加载一项就减少了 89%。
实施指南
第1步:创建SKILLS目录
在代理工作区创建 SKILLS.md——所有可用技能的轻量级索引:
markdown
可用技能
| 技能 | 文件 | 使用场景 |
|---|
| Python | skills/python/SKILL.md | 编写/调试Python代码 |
| Git |
skills/git/SKILL.md | Git操作、PR、分支 |
| Docker | skills/docker/SKILL.md | 容器、镜像、编排 |
| Browser | skills/browser/SKILL.md | 网页抓取、UI自动化 |
| AWS | skills/aws/SKILL.md | 云部署、S3、Lambda |
此目录是会话启动时加载的唯一文件。约200–400个令牌,而非10,000+。
完整入门模板请参见 SKILLS.md.template。
第2步:更新AGENTS.md
用目录模式替换批量加载:
markdown
技能
会话启动时:读取SKILLS.md(仅索引)。
当任务需要某个技能时:读取该技能的特定SKILL.md。
切勿预先加载所有技能。
加载决策
加载任何技能文件前:
- 1. 当前任务是否需要它?(是 → 加载,否 → 跳过)
- 本次会话是否已加载过?(是 → 跳过,否 → 加载一次)
完整推荐的AGENTS.md技能部分请参见 AGENTS.md.template。
第3步:使用上下文优化器(可选)
附带的 context_optimizer.py 分析任务描述并推荐要加载的技能:
bash
python3 context_optimizer.py recommend 编写一个推送到S3的Python脚本
输出:
推荐加载的技能:
- skills/python/SKILL.md (置信度:高 — Python任务)
- skills/aws/SKILL.md (置信度:高 — 提到S3)
- skills/git/SKILL.md (置信度:低 — 除非推送到GitHub,否则跳过)
第4步:同样应用于内存文件
相同的模式也适用于内存和上下文文件:
markdown
内存加载(AGENTS.md)
会话启动时:读取MEMORY.md(仅摘要)。
仅在以下情况加载每日文件(memory/YYYY-MM-DD.md):
- - 用户询问过去的工作
- 任务引用特定日期或项目
- 调试需要历史上下文
令牌节省计算器
| 场景 | 之前 | 之后 | 节省 |
|---|
| 加载5个技能 | 约3,000个令牌 | 约600个令牌 | 80% |
| 加载10个技能 |
约6,500个令牌 | 约750个令牌 | 88% |
| 加载20个技能 | 约13,000个令牌 | 约900个令牌 | 93% |
| +内存文件(5个) | +4,000个令牌 | +400个令牌 | 90% |
估算基于平均SKILL.md大小约600个令牌。目录平均约150个令牌。
与令牌优化器集成
此技能与 OpenClaw 令牌优化器 直接配合使用。懒加载处理 上下文加载成本;令牌优化器处理 模型路由、心跳预算和运行时成本。两者共同覆盖完整的令牌生命周期。
同时安装两者:
bash
clawhub install openclaw-skill-lazy-loader
clawhub install openclaw-token-optimizer
此技能包含的文件
| 文件 | 用途 |
|---|
| SKILL.md | 本指南 |
| SKILLS.md.template |
入门SKILLS目录模板 |
| AGENTS.md.template | 懒加载AGENTS.md部分 |
| context_optimizer.py | CLI助手 — 按任务推荐要加载的技能 |
| README.md | ClawHub列表描述 |
| SECURITY.md | 安全审计和脚本披露 |
| .clawhubsafe | 文件完整性清单 |
快速入门(5分钟)
bash
1. 安装
clawhub install openclaw-skill-lazy-loader
2. 将模板复制到代理工作区
cp ~/.openclaw/skills/openclaw-skill-lazy-loader/SKILLS.md.template ~/my-agent/SKILLS.md
cp ~/.openclaw/skills/openclaw-skill-lazy-loader/AGENTS.md.template ~/my-agent/AGENTS.lazy.md
3. 编辑SKILLS.md — 填入实际技能
4. 将AGENTS.lazy.md合并到AGENTS.md中
5. 使用context_optimizer.py测试
python3 ~/.openclaw/skills/openclaw-skill-lazy-loader/context_optimizer.py recommend 你的下一个任务
作者:M Asif Rahman (@Asif2BD) · Apache 2.0 · https://clawhub.ai/Asif2BD/openclaw-skill-lazy-loader