AgentSkillsCN

warnerco-schematica

深度开发并扩展WARNERCO Robotics Schematica系统——一款融合FastAPI、FastMCP、LangGraph编排机制,以及三层记忆体系(JSON/Chroma/Azure AI Search)的代理式RAG应用。当您着手Schematica后端开发、新增方案设计、调整LangGraph流程、更新仪表盘,或计划部署至Azure时,此技能定能大显身手。

SKILL.md
--- frontmatter
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

code
┌─────────────────────────────────────────────────────────────┐
│                     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

code
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

bash
cd src/warnerco/backend

# Local development
uv sync
uv run uvicorn app.main:app --reload --port 8000

# Index schematics into Chroma
uv run python -c "from app.adapters.chroma_store import ChromaMemoryStore; import asyncio; asyncio.run(ChromaMemoryStore().index_all())"

# MCP stdio server (for Claude Desktop)
uv run warnerco-mcp

Memory Backend Selection

Set MEMORY_BACKEND in .env:

BackendUse CaseConfig
jsonFastest startup, keyword searchDefault
chromaLocal semantic searchRecommended for dev
azure_searchEnterprise deploymentRequires Azure resources

MCP Tools

ToolDescription
warn_list_robotsList schematics with filters
warn_get_robotGet schematic by ID
warn_semantic_searchNatural language search
warn_memory_statsBackend statistics
warn_add_relationshipCreate graph triplet (subject, predicate, object)
warn_graph_neighborsGet connected entities
warn_graph_pathFind shortest path between entities
warn_graph_statsGraph node/edge statistics
warn_scratchpad_writeStore session observation
warn_scratchpad_readRetrieve session entries
warn_scratchpad_clearClear session entries
warn_scratchpad_statsToken budget statistics

LangGraph Flow

7-node hybrid retrieval-augmented generation:

  1. parse_intent - Classify query (lookup/diagnostic/analytics/search)
  2. query_graph - Enrich with knowledge graph relationships
  3. inject_scratchpad - Add session working memory
  4. retrieve - Fetch candidates from memory backend
  5. compress_context - Minimize token bloat
  6. reason - LLM generates response (Azure OpenAI gpt-4o-mini)
  7. respond - Format for dashboards/MCP

Adding Schematics

Edit data/schematics/schematics.json:

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

MethodPathDescription
GET/api/robotsList schematics
GET/api/robots/{id}Get by ID
POST/api/searchSemantic search
GET/api/memory/statsBackend stats
GET/docsOpenAPI docs