SignalMesh is a lightweight broadcast/subscribe context layer for multi-agent systems. Agents tune in to frequencies, receive pre-hydrated context, and emit signals via XML tags β eliminating tool schema overhead from read operations entirely.
Clone the repo and start the FastAPI server. The mesh self-hydrates from curated feeds on startup.
# clone & start git clone https://github.com/Ig0tU/SignalMesh cd SignalMesh pip install -r requirements.txt uvicorn signalmesh_api:app --host 0.0.0.0 --port 7860 # or with Docker docker build -t signalmesh . && docker run -p 7860:7860 signalmesh
Call /api/tune_in with keywords. The mesh returns pre-hydrated context ready to prepend to any system prompt. No tool schema tokens consumed.
curl -X POST https://acecalisto3-signalmesh.hf.space/api/tune_in \
-H "Content-Type: application/json" \
-H "X-SignalMesh-Key: slm-dev-key-2026" \
-d '{"keywords": ["python", "backend", "architecture"]}'
import requests resp = requests.post( "https://acecalisto3-signalmesh.hf.space/api/tune_in", headers={"X-SignalMesh-Key": "slm-dev-key-2026"}, json={"keywords": ["python", "backend"]}, ).json() # prepend context to your agent's system prompt system_prompt = resp["context"] + "\n\n" + your_base_prompt
const { context } = await fetch("/api/tune_in", { method: "POST", headers: { "Content-Type": "application/json", "X-SignalMesh-Key": process.env.SIGNALMESH_KEY, }, body: JSON.stringify({ keywords: ["frontend", "react"] }), }).then(r => r.json()) systemPrompt = context + "\n\n" + basePrompt
Emit a signal via the API, or have your agent output an <execute> tag. The mesh intercepts it passively β no signal_broadcast tool definition needed in context.
# via API curl -X POST https://acecalisto3-signalmesh.hf.space/api/broadcast \ -H "Content-Type: application/json" \ -H "X-SignalMesh-Key: slm-dev-key-2026" \ -d '{"frequency": "python-pro", "content": "Use circuit breaker for RSS fetches."}' # or have your agent output this in its response text: <execute type="broadcast" topic="python-pro"> Use a Circuit Breaker pattern for all RSS fetch operations. </execute> # β AgentifiedToolParser intercepts it. No tool call issued.
Drop AGENTS.md into any repository. An AI agent scanning the repo will parse
the manifest, compute its spatial grid coordinate, register its frequencies, and hydrate
its own context window β no human configuration required.
Copy AGENTS.md β into the root of your repo. It contains frequencies, GC rules, SEC-Ξ© config, and variable placeholders.
Point the mesh at your raw file URL. The mesh fetches it, runs SEC-Ξ©, registers all declared frequencies, and returns your spatial grid coordinate.
curl -X POST https://acecalisto3-signalmesh.hf.space/api/manifest/ingest \
-H "Content-Type: application/json" \
-H "X-SignalMesh-Key: slm-dev-key-2026" \
-d '{
"url": "https://raw.githubusercontent.com/YOUR_ORG/YOUR_REPO/main/AGENTS.md"
}'
# Response:
# {
# "node_uri": "https://example.com/my-node",
# "grid_hash": "3,5",
# "frequencies_registered": ["market.data.leads", "agent.compute.execute"],
# "gc_strategy": "auto",
# "strip_tool_schemas": true
# }
When a signal hits a registered frequency, the mesh resolves all {{VAR}} placeholders and prepends a hydrated context block to your agent's prompt. No polling. No tool invocation.
[SIGNALMESH_CONTEXT_START: a3f9b2e1c4d5f6a7] Timestamp: 1750280400 Grid Node: 3,5 Active Signal Payload: Use circuit breaker for all RSS fetch ops. [SIGNALMESH_CONTEXT_END]
The manifest's garbage_collection block tells the runtime which pruning strategy to apply per-signal: STATE_OVERWRITE, TTL_DECAY, or ROLLING_BUFFER β selected deterministically at signal-receipt time.
All inbound payloads run through the SEC-Ξ© warden before touching the registry: injection pattern blocking, 8K char hard cap, topic length enforcement, SHA-256 fingerprinting.
SHA-256(node_uri) % 72 maps every node to a deterministic coordinate in the 9Γ8 grid. O(1) lookup, no external table, collision-resolved with linear probing.
| Frequency | Mode | Description |
|---|---|---|
| adys_agents | EMIT | Agent profiles from Ig0tU/adys β synced hourly by AdysGitHubPump |
| market.data.leads | EMIT | Lead/market data ingestion stream |
| agent.compute.execute | LISTEN | Agentic execution events β SEC-Ξ© gated |
| security_* | PROTECTED | Quarantined by default β requires bypass_gate |
Keyword-based signal retrieval. Returns hydrated context string + latency. Zero tool schema tokens.
Emit a signal to a frequency. Routes through SEC-Ξ©. Protected frequencies are quarantined.
Fetch a remote AGENTS.md, parse it, register all declared frequencies in the spatial grid.
List all external nodes registered via AGENTS.md manifests.
Mesh health: signal count, active frequencies, grid size, quarantine queue.
All live frequencies with signal counts and last-broadcast timestamps.
Full 9Γ8 spatial grid state with coordinateβagent mappings.
Learned fuzzy trail map β keywords resolved via SequenceMatcher when no direct match.
slm-dev-key-2026 β set SIGNALMESH_API_KEY env var to override.
Full interactive docs at /docs.
Each read op requires a tool schema in context: name, description, parameters β ~300β800 tokens per tool. At 100 agent calls, that's 30Kβ80K tokens in schema overhead alone.
One HTTP call returns a pre-hydrated string. No schema in context. No tool invocation round-trip. Cost is flat: 1 API call per agent step, regardless of how many frequencies you monitor.
Agent outputs <execute> tags in natural language. The runtime intercepts and broadcasts. The signal_broadcast tool schema is never injected into context.