If you're running AI agents in production, you have a context distribution problem. Every agent independently fetches shared state. At 5 agents × 3 reads × 100 daily sessions, that's $1,387/year in read-only API costs before a single token of generation.
SignalMesh is the fix. Here's how to deploy it in 5 minutes.
What You're Deploying
SignalMesh is a 7-endpoint REST API that runs as a standalone service. Agents broadcast context to named frequencies. Other agents tune in. No message broker, no separate cache layer, no schema required.
Architecture:
[Your agents]
↓ broadcast()
[SignalMesh service] ← single container, ~50MB RAM
↓ tune_in()
[Your agents] ← 1.69µs reads, 0 network calls internally
Deploy Option 1: Docker (5 minutes)
# Clone
git clone https://github.com/Ig0tU/SignalMesh
cd SignalMesh
# Build
docker build -t signalmesh .
# Run
docker run -d \
--name signalmesh \
-p 7860:7860 \
--restart unless-stopped \
signalmesh
# Verify
curl http://localhost:7860/ui/status
That's it. The mesh is live at http://localhost:7860.
Deploy Option 2: HuggingFace Spaces (2 minutes, free tier)
# Fork the repo on HF
huggingface-cli repo create SignalMesh --type space --sdk gradio
# Push
git remote add hf https://huggingface.co/spaces/YOUR_USERNAME/SignalMesh
git push hf main
The public instance is already running at https://acecalisto3-signalmesh.hf.space — you can use it directly without deploying your own.
Deploy Option 3: Docker Compose (multi-service)
# docker-compose.yml
version: '3.8'
services:
signalmesh:
build: ./SignalMesh
ports:
- "7860:7860"
restart: unless-stopped
environment:
- LOG_LEVEL=INFO
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7860/ui/status"]
interval: 30s
timeout: 10s
retries: 3
your_agent_service:
build: ./agents
environment:
- SIGNALMESH_URL=http://signalmesh:7860
depends_on:
signalmesh:
condition: service_healthy
The 7 API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/broadcast |
POST | Send signal to a frequency |
/api/tune_in |
POST | Receive matching signals by keyword |
/api/tune/{frequency} |
GET | Direct frequency read |
/api/frequencies |
GET | List all active frequencies |
/api/status |
GET | Mesh health + signal count |
/api/grid |
GET | Spatial agent grid state |
/api/trails |
GET | Learned keyword mappings |
All endpoints: CORS open, no auth by default, JSON in/out.
Point Your Agents At It
import requests
MESH = "http://localhost:7860" # or https://acecalisto3-signalmesh.hf.space
# Broadcast from your data pipeline
requests.post(f"{MESH}/api/broadcast", json={
"name": "system_state",
"source_type": "context",
"data": {"queue_depth": 3, "active_agents": 12},
"metadata": {}
})
# Read from any agent
context = requests.post(f"{MESH}/api/tune_in", json={
"keywords": ["system_state", "queue"]
}).json()
Production Checklist
- [ ] Add
X-SignalMesh-Keyheader auth (setSIGNALMESH_KEYenv var) - [ ] Set frequency buffer size to match your payload sizes (
MAX_BUFFER=100) - [ ] Add Prometheus scraping at
/metrics(or poll/ui/status) - [ ] Set up a watchdog to restart on OOM (rare but possible with 1MB+ payloads)
- [ ] Use private frequency naming (
team/service/context) to avoid collisions
Monitoring
# Real-time frequency activity
watch -n 2 'curl -s https://acecalisto3-signalmesh.hf.space/ui/frequencies | python3 -m json.tool'
# Signal count over time
curl https://acecalisto3-signalmesh.hf.space/ui/status | jq '.total_signals'
# Keyword mapping health (see how the mesh resolved edge cases)
curl https://acecalisto3-signalmesh.hf.space/ui/trails
FAQ
What's the memory usage in production?
~50MB base + payload sizes × buffer depth. Default: 100 signals × 27 frequencies × avg payload = typically under 500MB.
Does it persist across restarts?
No — the mesh is in-memory by default. Add a Redis adapter for persistence (on the roadmap). For most use cases, agents re-broadcast on startup and the mesh refills within seconds.
Can I run multiple mesh instances?
Yes, but they don't sync by default. For multi-node setups, use the enterprise managed deployment or add a shared Redis backend.
How do I upgrade?
git pull origin main
docker build -t signalmesh .
docker stop signalmesh && docker rm signalmesh
docker run -d --name signalmesh -p 7860:7860 signalmesh
- Live demo: https://kyklos.io
- HF Space: https://acecalisto3-signalmesh.hf.space
- GitHub: https://github.com/Ig0tU/SignalMesh
- Enterprise / managed hosting: abra.autopreneur@gmail.com
Top comments (0)