当用户请求“启用语义缓存”、“缓存LLM响应”、“降低API成本”、“加速AI响应”、“配置LangCache”、“搜索语义缓存”、“存储响应到缓存”,或提及Redis LangCache、语义相似性缓存、LLM响应缓存时使用此技能。提供与Redis LangCache托管服务的集成,用于对提示和响应进行语义缓存。
Redis LangCache 语义学缓存是一项面向实际任务的技能,主要用于此技能将 Redis LangCache 完全管理语义缓存服务整合到 OpenClaw 工作流程中;LangCache 存储 LLM 提示和响应, 返回。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
该能力将 Redis LangCache(一款全托管式语义缓存服务)集成至 OpenClaw 工作流中。LangCache 存储 LLM 的 prompt 和响应,对语义相似的查询返回已缓存结果,从而降低调用成本与延迟。
使用 LangCache 前,请确保已配置以下环境变量:
LANGCACHE_HOST=LANGCACHE_CACHE_ID= LANGCACHE_API_KEY=
请将这些变量保存在 ~/.openclaw/secrets.env 中,或在 OpenClaw 设置中进行配置。
调用 LLM 前,先检查是否存在语义相似的已缓存响应:
./scripts/langcache.sh search "什么是语义缓存?"
指定相似度阈值(0.0–1.0,数值越高匹配越严格):
./scripts/langcache.sh search "什么是语义缓存?" --threshold 0.95
结合属性过滤进行搜索:
./scripts/langcache.sh search "什么是语义缓存?" --attr "model=gpt-5"
收到 LLM 响应后,将其缓存以供后续复用:
./scripts/langcache.sh store "什么是语义缓存?" "语义缓存基于语义相似性存储响应……"
添加属性以支持过滤与组织:
./scripts/langcache.sh store "prompt" "response" --attr "model=gpt-5" --attr "user_id=123"
按条目 ID 删除:
./scripts/langcache.sh delete --id ""
按属性删除:
./scripts/langcache.sh delete --attr "user_id=123"
清除所有条目(请谨慎使用):
./scripts/langcache.sh flush
LangCache 在 agent 工作流中的推荐集成模式如下:
1. 接收用户 prompt 2. 在 LangCache 中搜索语义相似的已缓存响应 3. 若命中缓存(相似度 >= 阈值): - 立即返回缓存响应 - 记录缓存命中日志,用于可观测性分析 4. 若未命中缓存: - 调用 LLM API - 将 prompt + 响应存入 LangCache - 返回 LLM 响应
该策略由系统自动强制执行。所有缓存操作 必须遵守 下列规则。
| 类别 | 示例 | 阈值 |
|---|---|---|
| 事实型问答 | "X 是什么?"、"Y 是如何工作的?" | 0.90 |
| 定义 / 文档 / 帮助文本 | API 文档、命令帮助、说明性内容 | 0.90 |
| 命令解释 | "git rebase 的作用是什么?" |
0.92 |
| 可复用回复模板 | "礼貌拒绝"、"跟进请求"、"日程安排"、"自我介绍" | 0.88 |
| 风格转换 | "让这段文字更亲切/更简短/更坚定" | 0.85 |
| 通用沟通脚本 | 谈判模板、专业回复模板 | 0.88 |
以下类型的内容在 代码层被明确拦截 —— 缓存操作将拒绝存储此类数据。
| 类别 | 需检测的模式 | 原因 |
|---|---|---|
| 时效性信息 | today、tomorrow、this week、deadline、ETA、“in X minutes”、appointments、schedules | 立即过期 |
| 凭证类信息 | API keys、tokens、passwords、OTP、2FA codes、secrets | 安全风险 |
| 标识符 | 电话号码、邮箱地址、物理地址、账户 ID、订单号、消息 ID、聊天 ID、JID | 隐私保护 / PII |
| 个人上下文 | 姓名+关系(如“我妻子”)、私人历史记录、“谁说了什么”、具体对话内容 | 隐私保护 / 上下文强依赖 |
以下正则表达式模式将触发硬性拦截:
# 时效性
b(today|tomorrow|tonight|yesterday)b
b(this|next|last)s+(week|month|year|monday|tuesday|...)b
b(ins+d+s+(minutes?|hours?|days?))b
b(deadline|eta|appointment|schedule[d]?)b
# 凭证类
b(api[_-]?key|token|password|secret|otp|2fa)b
b(bearer|auth[orization]*)s+S+
# 标识符
bd{10,}b # 电话号码、长 ID
b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+ # 邮箱
b(order|account|message|chat)[_-]?idb
# 个人上下文
b(mys+(wife|husband|partner|friend|boss|mom|dad|brother|sister))b
b(saids+tos+me|tolds+me|betweens+us)b
使用属性对缓存进行分区管理:
model:所使用的 LLM 模型(模型切换时尤为有用)category:factual、template、style、commandskill:生成该响应的技能模块version:API 或 prompt 版本LangCache 支持两种搜索策略:
可组合使用两者实现混合搜索:
./scripts/langcache.sh search "prompt" --strategy "exact,semantic"
监控缓存性能指标:
相关专题
热门下载
相关下载
精品课程
共1课时 | 154人学习
共0课时 | 0人学习
共1课时 | 201人学习