| name | warnerco-schematica |
| description | Develop and extend the WARNERCO Robotics Schematica system - an agentic RAG application with FastAPI, FastMCP, LangGraph orchestration, and 3-tier memory (JSON/Chroma/Azure AI Search). Use when working on the schematica backend, adding schematics, modifying the LangGraph flow, updating dashboards, or deploying to Azure. |
WARNERCO Robotics Schematica
Agentic robot schematics system with semantic memory and retrieval-augmented generation.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ FastAPI + FastMCP │
├─────────────────────────────────────────────────────────────┤
│ LangGraph Flow (7-node Hybrid RAG) │
│ parse_intent -> query_graph -> inject_scratchpad -> retrieve│
│ -> compress -> reason -> respond │
├─────────────────────────────────────────────────────────────┤
│ Hybrid Memory Layer │
│ +-------------------+ +-------------------+ +-----------+│
│ | Vector Store | | Graph Store | | Scratchpad|│
│ | JSON->Chroma-> | | SQLite + NetworkX | | In-memory |│
│ | Azure AI Search | | (Knowledge Graph) | | (Session) |│
│ +-------------------+ +-------------------+ +-----------+│
└─────────────────────────────────────────────────────────────┘
Project Structure
src/warnerco/backend/
├── app/
│ ├── main.py # FastAPI application
│ ├── config.py # Settings and environment
│ ├── models.py # Pydantic schemas
│ ├── routes.py # API endpoints
│ ├── mcp_tools.py # FastMCP tool definitions
│ ├── adapters/ # Memory backend implementations
│ │ ├── json_store.py
│ │ ├── chroma_store.py
│ │ ├── azure_search_store.py
│ │ ├── graph_store.py
│ │ └── scratchpad_store.py
│ └── langgraph/
│ └── flow.py # 7-node hybrid RAG orchestration
├── data/
│ ├── schematics/ # JSON source of truth
│ └── chroma/ # Vector embeddings
├── static/dash/ # SPA dashboards
└── .env # Configuration
Commands
cd src/warnerco/backend
uv sync
uv run uvicorn app.main:app --reload --port 8000
uv run python -c "from app.adapters.chroma_store import ChromaMemoryStore; import asyncio; asyncio.run(ChromaMemoryStore().index_all())"
uv run warnerco-mcp
Memory Backend Selection
Set MEMORY_BACKEND in .env:
| Backend | Use Case | Config |
|---|
json | Fastest startup, keyword search | Default |
chroma | Local semantic search | Recommended for dev |
azure_search | Enterprise deployment | Requires Azure resources |
MCP Tools
| Tool | Description |
|---|
warn_list_robots | List schematics with filters |
warn_get_robot | Get schematic by ID |
warn_semantic_search | Natural language search |
warn_memory_stats | Backend statistics |
warn_add_relationship | Create graph triplet (subject, predicate, object) |
warn_graph_neighbors | Get connected entities |
warn_graph_path | Find shortest path between entities |
warn_graph_stats | Graph node/edge statistics |
warn_scratchpad_write | Store session observation |
warn_scratchpad_read | Retrieve session entries |
warn_scratchpad_clear | Clear session entries |
warn_scratchpad_stats | Token budget statistics |
LangGraph Flow
7-node hybrid retrieval-augmented generation:
- parse_intent - Classify query (lookup/diagnostic/analytics/search)
- query_graph - Enrich with knowledge graph relationships
- inject_scratchpad - Add session working memory
- retrieve - Fetch candidates from memory backend
- compress_context - Minimize token bloat
- reason - LLM generates response (Azure OpenAI gpt-4o-mini)
- respond - Format for dashboards/MCP
Adding Schematics
Edit data/schematics/schematics.json:
{
"id": "WRN-00026",
"model": "WC-900",
"name": "New Robot Name",
"component": "component description",
"version": "v1.0",
"summary": "Technical summary...",
"category": "sensors",
"status": "active",
"tags": ["tag1", "tag2"],
"specifications": {
"spec_key": "spec_value"
},
"url": "https://schematics.warnerco.io/..."
}
Then re-index: uv run python -c "...index_all()"
Dashboards
- Schematics Browser (
/dash/schematics/) - Search, filter, view robot data
- Memory Learning (
/dash/memory/) - Educational RAG visualization
Azure Deployment
See references/azure-deployment.md for:
- Container App setup
- APIM configuration
- AI Search indexing
- OpenAI model deployment
API Endpoints
| Method | Path | Description |
|---|
| GET | /api/robots | List schematics |
| GET | /api/robots/{id} | Get by ID |
| POST | /api/search | Semantic search |
| GET | /api/memory/stats | Backend stats |
| GET | /docs | OpenAPI docs |