Install
openclaw skills install sunlixue-smart-cache本地智能缓存系统,为AI助手提供语义级别的请求缓存。当用户需要(1)减少重复API调用成本、(2)加速相似问题的响应、(3)创建本地缓存层来优化AI助手性能时使用此技能。支持精确匹配(L1)和语义相似匹配(L2)两种缓存模式。
openclaw skills install sunlixue-smart-cacheSmart Cache 是一个为 OpenClaw/QClaw 设计的本地智能缓存系统,通过缓存 AI 响应来减少 API 调用成本和响应时间。
核心功能:
python scripts/cache_manager.py status
# 精确查询
python scripts/cache_manager.py query "你好,今天天气怎么样?"
# 语义查询(返回相似度 > 0.85 的结果)
python scripts/cache_manager.py query-semantic "今天天气如何?" --threshold 0.85
python scripts/cache_manager.py add "你好" "你好!有什么可以帮助你的吗?"
# 清理过期缓存
python scripts/cache_manager.py clean --expired
# 清理全部
python scripts/cache_manager.py clean --all
# 清理特定时间范围
python scripts/cache_manager.py clean --before "2024-01-01"
适用于完全相同的请求。使用 SHA256 哈希作为 key,O(1) 查找时间。
特点:
示例:
用户: "什么是Python?"
→ 缓存命中 → 直接返回缓存的回答
适用于语义相似但不完全相同的请求。需要配置 embedding API 才能启用。
工作原理:
特点:
示例:
缓存: "今天天气怎么样?" → "今天晴天,气温25度..."
查询: "今天天气如何?"
→ 相似度 0.92 → 返回缓存的回答
注意: L2 语义匹配需要 embedding API 支持(详见配置说明)。
配置文件位于 ~/.qclaw/smart-cache/config.json:
{
"cache_dir": "~/.qclaw/smart-cache/data",
"l1_max_size": 10000,
"l2_max_size": 5000,
"ttl_hours": 168,
"similarity_threshold": 0.85,
"embedding_provider": "openai",
"embedding_model": "text-embedding-3-small",
"api_key": "your-api-key",
"enable_cost_tracking": true
}
配置说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
l1_max_size | 10000 | L1 缓存最大条目数 |
l2_max_size | 5000 | L2 缓存最大条目数 |
ttl_hours | 168 | 缓存过期时间(小时),约 7 天 |
similarity_threshold | 0.85 | L2 语义匹配阈值(0-1) |
embedding_provider | openai | embedding 提供者:openai、dashscope、local |
embedding_model | text-embedding-3-small | embedding 模型名称 |
api_key | - | API Key(支持 OPENAI_API_KEY / DASHSCOPE_API_KEY 环境变量) |
enable_cost_tracking | true | 是否启用成本追踪 |
OpenAI(推荐):
{
"embedding_provider": "openai",
"embedding_model": "text-embedding-3-small",
"api_key": "sk-..."
}
阿里云 DashScope:
{
"embedding_provider": "dashscope",
"embedding_model": "text-embedding-v1",
"api_key": "your-dashscope-key"
}
本地模型(无需 API Key):
{
"embedding_provider": "local",
"embedding_model": "all-MiniLM-L6-v2"
}
本地模型需要安装:pip install sentence-transformers
查看节省的成本:
python scripts/cache_manager.py stats
输出示例:
📊 缓存统计
━━━━━━━━━━━━━━━━━━━━━━━━━━━
总请求数: 1,234
L1命中: 456 (37%)
L2命中: 189 (15%)
缓存未命中: 589 (48%)
💰 成本节省
━━━━━━━━━━━━━━━━━━━━━━━━━━━
节省Token: 89,234
估算节省: $0.27
MCP Server 支持 stdio 和 HTTP 两种模式。
stdio 模式(推荐,用于 OpenClaw):
python scripts/mcp_server.py --mode stdio
HTTP 模式(用于其他工具):
python scripts/mcp_server.py --mode http --port 8080
from scripts.cache_api import SmartCache
cache = SmartCache()
# 查询缓存
result = cache.query("用户的问题")
if result:
print(f"缓存命中!相似度: {result.similarity}")
print(f"回答: {result.response}")
else:
# 调用实际API
response = call_llm_api("用户的问题")
# 存入缓存
cache.store("用户的问题", response)
主缓存管理工具,提供命令行接口:
status - 查看缓存状态query - 精确查询query-semantic - 语义查询(L2,需要 embedding 配置)add - 添加缓存条目clean - 清理缓存stats - 查看统计信息Python API 模块,提供编程接口:
SmartCache - 主缓存类CacheEntry - 缓存条目类CacheStats - 统计信息类向量嵌入工具,支持多种 embedding 来源:
OpenAIEmbeddings - OpenAI Embedding APIDashScopeEmbeddings - 阿里云 DashScope APILocalEmbeddings - 本地 sentence-transformers 模型用法示例:
from scripts.embeddings import get_text_embedding, compute_similarity
# 获取单条文本的嵌入向量
emb = get_text_embedding("你好")
# 计算两条文本的相似度
sim = compute_similarity("今天天气怎么样", "今天天气好吗")
MCP 协议服务器,支持与其他 AI 工具集成:
stdio 模式:用于 OpenClaw MCP 集成http 模式:用于其他支持 HTTP 的工具合理设置 TTL:根据内容更新频率设置过期时间
L2 语义缓存需要 API Key:如果未配置 embedding,L2 查询会使用字符级 Jaccard 作为后备方案
调整相似度阈值:
定期清理:
# 每周清理一次过期缓存
0 0 * * 0 python ~/.qclaw/smart-cache/scripts/cache_manager.py clean --expired
监控缓存效果:
api_key)~/.qclaw/smart-cache/config.json 中配置了 api_keyOPENAI_API_KEY / DASHSCOPE_API_KEYl1_max_size、l2_max_size)ttl_hours)cache_manager.py clean --expiredcache_manager.py - 命令行管理工具cache_api.py - Python API 模块mcp_server.py - MCP 协议服务器embeddings.py - 向量嵌入工具api_reference.md - API 详细文档config_template.json - 配置文件模板