langcache

Review·Scanned 2/18/2026

This skill integrates Redis LangCache for semantic caching and includes CLI and SDK examples. It reads ~/.openclaw/secrets.env, requires LANGCACHE_HOST, LANGCACHE_CACHE_ID, LANGCACHE_API_KEY (and OPENAI_API_KEY in examples), calls https://${LANGCACHE_HOST}/v1/caches/${LANGCACHE_CACHE_ID}, and provides runnable scripts like ./scripts/langcache.sh.

from clawhub.ai·v1.0.0·48.0 KB·0 installs
Scanned from 1.0.0 at 0b9b197 · Transparency log ↗
$ vett add clawhub.ai/manvinder01/langcacheReview findings below

Redis LangCache Semantic Caching

This 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.

Prerequisites

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.

Core Operations

Search for Cached Response

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"

Store New Response

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"

Delete Cached Entries

By entry ID:

./scripts/langcache.sh delete --id "<entry-id>"

By attributes:

./scripts/langcache.sh delete --attr "user_id=123"

Flush Cache

Clear all entries (use with caution):

./scripts/langcache.sh flush

Integration Pattern

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

Default Caching Policy

This policy is enforced automatically. All cache operations MUST respect these rules.

CACHEABLE (white-list)

CategoryExamplesThreshold
Factual Q&A"What is X?", "How does Y work?"0.90
Definitions / docs / help textAPI docs, command help, explanations0.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 scriptsnegotiation templates, professional responses0.88

NEVER CACHE (hard blocks)

These patterns are blocked at the code level - cache operations will refuse to store them.

CategoryPatterns to DetectReason
Temporal infotoday, tomorrow, this week, deadline, ETA, "in X minutes", appointments, schedulesStale immediately
CredentialsAPI keys, tokens, passwords, OTP, 2FA codes, secretsSecurity risk
Identifiersphone numbers, emails, addresses, account IDs, order numbers, message IDs, chat IDs, JIDsPrivacy / PII
Personal contextnames + relationships, private history, "who said what", specific conversationsPrivacy / context-dependent

Detection Patterns

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

Attribute Strategies

Use attributes to partition the cache:

  • model: LLM model used (useful when switching models)
  • category: factual, template, style, command
  • skill: Which skill generated the response
  • version: API or prompt version

Search Strategies

LangCache supports two search strategies:

  • semantic (default): Vector similarity matching
  • exact: Case-insensitive exact match

Combine both for hybrid search:

./scripts/langcache.sh search "prompt" --strategy "exact,semantic"

Observability

Monitor cache performance:

  • Track hit/miss ratios
  • Log similarity scores for hits
  • Alert on high miss rates (may indicate threshold too high)
  • Review stored entries periodically for relevance

References

  • API Reference - Complete REST API documentation
  • Best Practices - Optimization techniques

Examples

  • examples/basic-caching.sh - Simple cache workflow
  • examples/agent-integration.py - Python integration pattern