This repo is a minimal Redis Agent Kit example.
It shows:
- background task execution with workers
- live progress and token streaming over SSE
- a real LangGraph agent behind the task interface
- REST, A2A, and ACP exposure from one app
The main point is that this does not require much code. The API entry point stays small in app.py, and the actual agent implementation lives in langgraph_agent.py.
- app.py - API entry point, AgentKit wiring, and HTTP routes
- langgraph_agent.py - LangGraph graph definition and agent execution logic
index.html- small browser UI for the demobenchmark_scale.py- runs concurrent inline vs queued benchmarks against the same agent and writes CSV outputplot_benchmark_results.py- turns benchmark CSVs into PNG charts with pandas/matplotlibartifacts/benchmark_sample/- sample benchmark CSVs and charts checked into the repo
uv syncCreate a .env file with your API key before you start the server or worker:
OPENAI_API_KEY=your-key-heredocker run -d -p 6379:6379 redis:8Start the API:
uv run uvicorn app:app --reloadStart the worker in a second terminal:
uv run rak worker --name minimal_release_demo --tasks app:tasksOpen the demo:
open http://localhost:8000/demo- UI:
GET /demo - Task state:
GET /tasks/{task_id} - Task stream:
GET /tasks/{task_id}/stream - Task input:
POST /tasks/{task_id}/input - A2A discovery:
GET /.well-known/agent.json - OpenAPI docs:
GET /docs