Reusable demo apps powered by Redis Iris
Multi-domain AI agent demos for Redis Iris: Redis's unified context engine for AI agents.
Every domain runs Context Retriever, Agent Memory, LangCache, and Semantic Routign.
| Solution | What it does |
|---|---|
| Semantic Routing | Blocks off-topic queries before they reach the LLM |
| LangCache | Returns cached responses for semantically similar questions |
| Agent Memory | Enriches prompts with short-term session context + long-term user knowledge |
| Context Retriever | Give agents clean, schema-first paths through all business data |
The legacy/context-engine-demos/ directory contains an archived copy of the original redis/context-engine-demos repository — the first-generation demo that showcased Context Retriever only. The current repo supersedes it with Semantic Routing, LangCache, Agent Memory, and domain-specific branding.
- Python 3.11+
- Node.js 18+
- uv (Python package manager)
| Service | What you need |
|---|---|
| Redis database | Host, port, password |
| Context Surfaces | Admin key |
| Agent Memory | Base URL, store ID, API key |
| LangCache | Host, cache ID, API key |
| OpenAI | API key |
make install # Install Python + JS dependencies
cp .env.example .env # Fill in credentials
make setup # Generate data, load Redis, seed memory + cache
make dev # Start at localhost:3040make dev # Data persists in RedisIf the agent has no tools (Redis was flushed, instance recycled), reload:
make reset # Reload data + re-seed
make dev # Update the DEMO_DOMAIN in .env
make setup
make dev- Sets
DEMO_DOMAINin.env - Generates Context Surface models from the domain schema
- Generates synthetic data (JSONL files)
- Flushes Redis database
- Creates a new Context Surface (writes
CTX_SURFACE_ID+MCP_AGENT_KEYto.env) - Loads data into Redis (creates search indexes)
- Seeds Agent Memory (clears existing, seeds 2 long-term memories per domain)
- Seeds LangCache (flushes cache, seeds 1 cached response per domain)
- Semantic Routing initializes automatically when the server starts
make reset does steps 4-9 only (faster — reuses existing models and data files).
make create-domain DOMAIN=my-industryThis scaffolds the required files under domains/my-industry/. See the domain-pack-authoring skill for the full contract, checklist, and Iris-specific requirements (guardrail routes, seed memories, LangCache entries, landing page backgrounds).
Each domain implements the DomainPack protocol defined in backend/app/core/domain_contract.py.
backend/
app/
main.py # FastAPI app, SSE streaming, 7-phase pipeline
langgraph_agent.py # LangGraph ReAct agent
memory_service.py # Redis Agent Memory client
context_surface_service.py # MCP tool wrapper
guardrail_service.py # Semantic routing guardrail
langcache_service.py # Semantic cache client
settings.py # Pydantic BaseSettings
core/
domain_contract.py # DomainPack protocol + configs
domain_schema.py # EntitySpec definition
domains/
reddash/ # Food delivery
electrohub/ # Electronics retail
finance-researcher/ # Financial research
healthcare/ # Patient portal
radish-bank/ # Retail banking
frontend/
src/
App.tsx # React chat UI, SSE handler
components/ # ConversationView, ActivityPanel, EmptyState
scripts/ # Setup, data loading, seeding, validation
.codex/skills/
domain-pack-authoring/ # AI skill for creating new domains
| Target | What it does |
|---|---|
make domains |
List available domains |
make setup [DOMAIN=X] |
Full setup: models, data, Redis, seed |
make reset |
Reload current domain into Redis + re-seed |
make dev |
Start backend (:8040) + frontend (:3040) |
make install |
Install Python + JS dependencies |
make create-domain DOMAIN=X |
Scaffold a new domain |
make seed-memories |
Re-seed long-term memories for current domain |
make seed-langcache |
Re-seed LangCache entries for current domain |
make flush-redis |
Wipe Redis database |
All targets read DEMO_DOMAIN from .env — no need to pass DOMAIN= unless switching.
MIT




