Autonomous Critical Infrastructure Dispatch Orchestrator
Microsoft Agents League Hackathon 2026 β Reasoning Agents Track
"When a transformer overloads at 2 AM, the average utility takes 47 minutes to dispatch a repair crew. Every minute costs $9,000 in cascading damages. OmniDispatch reduces that to 3 seconds β with full human oversight."
Critical infrastructure failures (power grid overloads, telecom outages, pipeline leaks) require immediate coordinated response across three isolated domains:
| Domain | Challenge |
|---|---|
| IoT Telemetry | Sensor feeds arrive continuously β which ones are critical? |
| Regulatory Compliance | Union labor rules, safety certifications, and SLA deadlines must be verified before dispatch |
| Workforce Logistics | Who is nearby, certified, and available right now? |
Today, human operators manually cross-reference these three systems. It takes an average of 47 minutes from telemetry alert to technician dispatch. OmniDispatch eliminates this bottleneck.
OmniDispatch is a multi-agent AI orchestration platform that:
- Fans out three specialized AI agents in parallel using the
ConcurrentBuilderpattern - Merges their outputs instantly through a custom zero-latency aggregator (no extra LLM call)
- Halts the execution graph for Human-in-the-Loop (HITL) approval before any dispatch is authorized
- Traces every agent span via OpenTelemetry for full auditability
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OMNIDISPATCH ARCHITECTURE β
β β
β Telemetry Alert βββ ConcurrentBuilder (Fan-Out) β
β βββ Analysis Agent (IoT Classification) β
β βββ Policy Agent (Azure AI Search RAG) β
β βββ Logistics Agent (SQL MCP Routing) β
β β β
β Custom Aggregator (Zero-Latency Merge) β
β β β
β HITL Signature Lock β΅ HUMAN OPERATOR β
β β β
β Dispatch Authorized βββ Field Units β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Metric | Manual Process | OmniDispatch |
|---|---|---|
| Alert β Dispatch | 47 minutes | < 3 seconds |
| Agent Reasoning | Sequential human review | 3 parallel AI agents |
| Compliance Check | Manual policy lookup | Automated RAG grounding |
| Audit Trail | Paper-based | Cryptographic + OTel traced |
| Oversight | No formal approval | HITL always_require enforcement |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Microsoft Copilot Canvas β
β - Interactive Fluent UI HTML Map Widget (Port 3000) β
β - OpenAPI-discovered tools via MCP Protocol β
βββββββββββββββββ¬ββββββββββββββββββββββββββββββ²ββββββββββββββββ
β β
[1] Telemetry Alert [5] Renders Widget (HTML)
β β
βββββββββββββββββΌββββββββββββββββββββββββββββββ΄ββββββββββββββββ
β Azure AI Foundry Agent Service β
β - FastAPI (Port 8088, Responses Protocol) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Microsoft Agent Framework v1.0 (MAF) β β
β β - ConcurrentBuilder Orchestrator β β
β β β β
β β βββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββ β β
β β β Analysis Agentβ Policy Agent β Logistics β β β
β β β(Azure OpenAI) β(AI Search RAG) β Agent β β β
β β βββββββββ¬ββββββββ΄βββββββββ¬βββββββββ΄ββββββ¬ββββββ β β
β β ββββββββββββββββ β ββββββββββββββ β β
β β βΌ βΌ βΌ β β
β β [2] Custom Aggregator β β
β β (Zero-Latency) β β
β β β β β
β β [3] Cryptographic HITL β β
β β (approval_mode='always_require') β οΏ½οΏ½
β ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β
[4] Dispatch Signed & Approved
βΌ
[Field Dispatch Hardware Units]
| Layer | Technology | Purpose |
|---|---|---|
| Compute | Azure AI Foundry Hosted Agents | Container deployment, Responses Protocol (Port 8088) |
| Orchestration | Microsoft Agent Framework v1.0 | ConcurrentBuilder for parallel fan-out execution |
| LLM | Azure OpenAI (GPT-4o) | Real-time reasoning for analysis, policy, and logistics agents |
| Knowledge (RAG) | Azure AI Search + Foundry IQ | Semantic vector search over safety regulations and SLA policies |
| MCP Server | Node.js / Express | Exposes tools and renders Fluent UI widgets for Copilot Canvas |
| UX | React + TanStack Start | Real-time Control Room with OTel Gantt trace, voice alerts, PDF export |
| Safety | MAF @ai_function |
approval_mode='always_require' for HITL dispatch halt |
| Observability | OpenTelemetry + Azure App Insights | End-to-end trace spans for every agent and tool call |
| IaC | Bicep + Azure Developer CLI (azd) |
One-command provisioning and deployment |
- Live WebSocket Streaming: Telemetry alerts broadcast instantly to the React dashboard
- OTel Waterfall Gantt Trace: Animated visualization of parallel agent execution with per-span latency
- Voice Synthesis Alerts: Web Speech API announces critical incidents and dispatch confirmations
- Severity Heatmap: Color-coded grid sectors (Critical/High/Moderate/Low) on the canvas map
- Multi-Incident Queue: Handles concurrent incidents with auto-load on dispatch completion
- PDF Audit Export: One-click compliance report with cryptographic hashes
- ConcurrentBuilder Pattern: Three agents execute simultaneously, not sequentially
- Custom Aggregator: Compiles parallel outputs without triggering additional LLM inference
- Hybrid Agents: Transparently use Azure OpenAI when configured, fall back to deterministic mocks
- HITL Enforcement:
@ai_function(approval_mode='always_require')halts the execution graph - Cryptographic Audit Trail: Every dispatch generates a unique
AUDIT-{id}-{uuid}token - Compliance Grounding: Policy agent retrieves real regulations from Azure AI Search
OmniDispatch/
βββ azure.yaml # Azure Developer CLI deployment manifest
βββ infra/
β βββ main.bicep # Infrastructure-as-Code (all Azure resources)
βββ agent/
β βββ Dockerfile # Multi-stage production container (non-root)
β βββ agent.yaml # Foundry Agent Service manifest
β βββ requirements.txt # Python dependencies (Azure SDKs included)
β βββ .env.example # Environment variable template
β βββ main.py # FastAPI server (Responses Protocol, WebSocket, Telemetry)
β βββ agent_logic.py # HybridAgent orchestration (Azure OpenAI + AI Search + MAF)
β βββ mock_services.py # Deterministic fallback agents and mock databases
β βββ telemetry_generator.py # IoT sensor simulator for live demos
β βββ test_system.py # Automated verification tests
βββ mcp-server/
β βββ server.js # MCP tool endpoints + Copilot Canvas integration
β βββ ai-plugin.json # Copilot plugin manifest (tool discovery)
β βββ public/
β βββ openapi.json # OpenAPI 3.1 specification
β βββ map_widget.html # Fluent UI interactive dispatch map
βββ Frontend/
β βββ src/
β βββ routes/
β βββ index.tsx # Landing page
β βββ control-room.tsx # Real-time dispatch console (WebSocket, OTel, Voice)
β βββ architecture.tsx # System architecture visualization
β βββ agents.tsx # Agent capability showcase
β βββ compliance.tsx # Regulatory compliance dashboard
β βββ deployments.tsx # Deployment status monitor
βββ run_local.ps1 # One-command local startup script
- Python 3.11+
- Node.js 18+
- (Optional) Azure subscription for real AI services
# Clone the repository
git clone https://github.com/your-org/OmniDispatch.git
cd OmniDispatch
# Run the automated startup script
.\run_local.ps1This starts three services:
| Service | URL | Purpose |
|---|---|---|
| React Frontend | http://localhost:8082 | Control Room dashboard |
| Python Agent Service | http://localhost:8088 | Responses Protocol + WebSocket |
| MCP Server | http://localhost:3000 | Copilot Canvas tools + widgets |
# Copy the environment template
cp agent/.env.example agent/.env
# Fill in your Azure credentials
# See the "Azure Setup Guide" section below# Install Azure Developer CLI
winget install Microsoft.Azd
# One-command provisioning and deployment
azd upTo connect OmniDispatch to real Azure AI services:
- Go to Azure Portal β Create β "Azure OpenAI"
- Deploy a
gpt-4omodel - Copy the Endpoint and API Key from the resource's "Keys and Endpoint" page
- Go to Azure Portal β Create β "Azure AI Search"
- Create an index named
omnidispatch-policies - Upload safety regulation documents (PDFs)
- Enable Semantic Search configuration
# In agent/.env
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_KEY=your-key
AZURE_OPENAI_DEPLOYMENT=gpt-4o
AZURE_SEARCH_ENDPOINT=https://your-search.search.windows.net
AZURE_SEARCH_KEY=your-key
AZURE_SEARCH_INDEX=omnidispatch-policies| Component | With Azure Credentials | Without Credentials |
|---|---|---|
| Analysis Agent | Real GPT-4o inference on telemetry data | Deterministic mock classification |
| Policy Agent | RAG retrieval from Azure AI Search index | Mock safety policy database |
| Logistics Agent | Real GPT-4o reasoning over workforce data | Mock proximity calculations |
| ConcurrentBuilder | Real parallel execution pattern | Identical parallel mock execution |
| HITL Approval | Full approval_mode='always_require' |
Identical approval enforcement |
| OTel Tracing | Azure App Insights export | Console span export |
| WebSocket Streaming | Identical real-time broadcast | Identical real-time broadcast |
| Control Room UI | Identical live dashboard | Identical live dashboard |
Note: The HITL approval, WebSocket streaming, OTel tracing, PDF export, and Control Room are fully real in both modes. Only the LLM inference and RAG search switch between Azure and mock.
# Run automated verification tests
cd agent
python test_system.py
# Check system health and Azure connectivity
curl http://localhost:8088/
# Send a test telemetry alert
curl -X POST http://localhost:8088/telemetry -H "Content-Type: application/json" -d '{"incident_id":"INC-TEST-001","failure_type":"Transformer Overload","severity":"Critical","grid_zone":"North-East Sector (NE-04)","metrics":{"temperature_c":115.4,"coolant_level_percent":14.2,"load_percentage":138.5}}'| Criterion (Weight) | OmniDispatch Implementation | Evidence |
|---|---|---|
| Reasoning & Multi-step (20%) | ConcurrentBuilder fans out 3 agents in parallel. Custom Aggregator merges without extra LLM call. |
agent_logic.py β HybridAgent class + register_aggregator() |
| Reliability & Safety (20%) | @ai_function(approval_mode='always_require') halts execution graph. UUID audit tokens. Cryptographic hash in PDF reports. |
agent_logic.py β dispatch_technicians() decorator |
| Accuracy & Relevance (20%) | Azure AI Search RAG for policy grounding. Semantic search over safety regulations. Real GPT-4o inference. | agent_logic.py β search_policy_index() + Azure OpenAI integration |
| User Experience (15%) | Fluent UI widgets in Copilot Canvas. React Control Room with OTel Gantt, voice alerts, heatmap, PDF export. | control-room.tsx + map_widget.html |
| Creativity (15%) | Novel domain (critical infrastructure). Real-time WebSocket telemetry. Multi-incident queue. Voice synthesis. | Full system integration across all components |
OmniDispatch integrates with Microsoft Copilot Canvas via the Model Context Protocol (MCP):
- Plugin Discovery:
ai-plugin.json+openapi.jsonat/.well-known/ai-plugin.json - Tool Invocation: Copilot calls
/tools/show_assignments_on_mapto render interactive HTML widgets - Theme Adaptation: Widgets detect Copilot's light/dark mode via CSS media queries
- Real-Time Data: Widget connects to the Agent Service WebSocket for live incident updates
Copilot Canvas ββ MCP Server (Port 3000) ββ Agent Service (Port 8088)
β β
Tool Discovery WebSocket Streaming
Widget Rendering Telemetry Processing
OpenAPI Spec HITL Approval
Advertisement.mp4
The demo shows:
- A live telemetry alert arriving via WebSocket
- Three agents executing in parallel (visible on the OTel Gantt trace)
- Voice synthesis announcing the incident
- Human operator authorizing the dispatch
- PDF audit report generation
MIT License β See LICENSE for details.
β OMNIDISPATCH // AUTONOMOUS DISPATCH, DONE RESPONSIBLY β
Built for the Microsoft Agents League Hackathon 2026