Install
openclaw skills install openclaw-langcacheThis skill should be used when the user asks to "enable semantic caching", "cache LLM responses", "reduce API costs", "speed up AI responses", "configure LangCache", "search the semantic cache", "store responses in cache", or mentions Redis LangCache, semantic similarity caching, or LLM response caching. Provides integration with Redis LangCache managed service for semantic caching of prompts and responses.
openclaw skills install openclaw-langcacheThis skill integrates Redis LangCache, a fully-managed semantic caching service, into OpenClaw workflows. LangCache stores LLM prompts and responses, returning cached results for semantically similar queries to reduce costs and latency.
Before using LangCache, ensure the following environment variables are configured:
LANGCACHE_HOST=<your-langcache-host>
LANGCACHE_CACHE_ID=<your-cache-id>
LANGCACHE_API_KEY=<your-api-key>
Store these in ~/.openclaw/secrets.env or configure them in the OpenClaw settings.
Before calling an LLM, check if a semantically similar response exists:
./scripts/langcache.sh search "What is semantic caching?"
With similarity threshold (0.0-1.0, higher = stricter match):
./scripts/langcache.sh search "What is semantic caching?" --threshold 0.95
With attribute filtering:
./scripts/langcache.sh search "What is semantic caching?" --attr "model=gpt-5"
After receiving an LLM response, cache it for future use:
./scripts/langcache.sh store "What is semantic caching?" "Semantic caching stores responses based on meaning similarity..."
With attributes for filtering/organization:
./scripts/langcache.sh store "prompt" "response" --attr "model=gpt-5" --attr "user_id=123"
By entry ID:
./scripts/langcache.sh delete --id "<entry-id>"
By attributes:
./scripts/langcache.sh delete --attr "user_id=123"
Clear all entries (use with caution):
./scripts/langcache.sh flush
The recommended pattern for integrating LangCache into agent workflows:
1. Receive user prompt
2. Search LangCache for similar cached response
3. If cache hit (similarity >= threshold):
- Return cached response immediately
- Log cache hit for observability
4. If cache miss:
- Call LLM API
- Store prompt + response in LangCache
- Return LLM response
This policy is enforced automatically. All cache operations MUST respect these rules.
| Category | Examples | Threshold |
|---|---|---|
| Factual Q&A | "What is X?", "How does Y work?" | 0.90 |
| Definitions / docs / help text | API docs, command help, explanations | 0.90 |
| Command explanations | "What does git rebase do?" | 0.92 |
| Reusable reply templates | "polite no", "follow-up", "scheduling", "intro" | 0.88 |
| Style transforms | "make this warmer/shorter/firmer" | 0.85 |
| Generic communication scripts | negotiation templates, professional responses | 0.88 |
These patterns are blocked at the code level - cache operations will refuse to store them.
| Category | Patterns to Detect | Reason |
|---|---|---|
| Temporal info | today, tomorrow, this week, deadline, ETA, "in X minutes", appointments, schedules | Stale immediately |
| Credentials | API keys, tokens, passwords, OTP, 2FA codes, secrets | Security risk |
| Identifiers | phone numbers, emails, addresses, account IDs, order numbers, message IDs, chat IDs, JIDs | Privacy / PII |
| Personal context | names + relationships, private history, "who said what", specific conversations | Privacy / context-dependent |
The following regex patterns trigger a hard block:
# Temporal
\b(today|tomorrow|tonight|yesterday)\b
\b(this|next|last)\s+(week|month|year|monday|tuesday|...)\b
\b(in\s+\d+\s+(minutes?|hours?|days?))\b
\b(deadline|eta|appointment|schedule[d]?)\b
# Credentials
\b(api[_-]?key|token|password|secret|otp|2fa)\b
\b(bearer|auth[orization]*)\s+\S+
# Identifiers
\b\d{10,}\b # phone numbers, long IDs
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+ # emails
\b(order|account|message|chat)[_-]?id\b
# Personal context
\b(my\s+(wife|husband|partner|friend|boss|mom|dad|brother|sister))\b
\b(said\s+to\s+me|told\s+me|between\s+us)\b
Use attributes to partition the cache:
model: LLM model used (useful when switching models)category: factual, template, style, commandskill: Which skill generated the responseversion: API or prompt versionLangCache supports two search strategies:
Combine both for hybrid search:
./scripts/langcache.sh search "prompt" --strategy "exact,semantic"
Monitor cache performance: