A decentralized CPU inference optimization and telemetry agent built on the Fetch.ai / ASI uagents SDK. Designed for CPU-only and edge endpoints where GPU acceleration is unavailable, this node profiles hardware telemetry, computes tokenomics optimization scores, and emits structured metrics suitable for ASI:Chain node observability.
┌─────────────────────────────────────────────────────┐
│ ASI Telemetry Node │
│ │
│ ┌──────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ CPU Prof │──▶│ RAM Prof │──▶│ Tokenomics │ │
│ │ psutil │ │ psutil │ │ Optimization │ │
│ └──────────┘ └────────────┘ └───────┬───────┘ │
│ │ │
│ ┌───────▼───────┐ │
│ │ Telemetry │ │
│ │ Report Model │ │
│ └───────┬───────┘ │
│ │ │
│ ┌───────────────▼────────┐ │
│ │ uAgents Interval Loop │ │
│ │ (15s default) │ │
│ └───────────────┬────────┘ │
│ │ │
│ ┌───────────────▼────────┐ │
│ │ ASI:Chain Broadcast │ │
│ │ (structured logs) │ │
│ └────────────────────────┘ │
└─────────────────────────────────────────────────────┘
Not every node on a decentralized inference network has a GPU. Edge devices, repurposed servers, and low-power endpoints contribute compute capacity through CPU-based workloads. This agent is built specifically for those nodes — it:
- Profiles CPU utilization via
psutil.cpu_percent()with configurable observation windows - Tracks RAM consumption (used / total / percentage) to detect memory pressure
- Computes tokenomics optimization scores — a logarithmic resource overhead ratio that rates how efficiently the node handles inference load relative to a baseline
- Assigns optimization grades (A–F) for quick at-a-glance node health assessment
overhead_ratio = (cpu_ratio + ram_ratio) / 2
score = OPTIMAL / (1 + ln(1 + overhead_ratio))
Where cpu_ratio = current_cpu / baseline_cpu and ram_ratio = current_ram / baseline_ram. Lower resource usage relative to baseline yields higher scores — incentivizing efficient nodes on the ASI:Chain.
# Clone
git clone https://github.com/O96a/asi-telemetry-node.git
cd asi-telemetry-node
# Environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Configure
cp .env.example .env # edit if needed
# Run
python main.pyAll parameters are environment-driven via .env:
| Variable | Default | Description |
|---|---|---|
AGENT_NAME |
asi-telemetry-node |
Agent identity on the network |
AGENT_PORT |
8000 |
uAgents mailbox port |
BENCH_INTERVAL_SECONDS |
15 |
Profiling sweep interval |
BENCH_CPU_DURATION |
1 |
CPU measurement window (seconds) |
BENCH_TOKEN_SIMULATION_ROUNDS |
10 |
Simulation iterations per sweep |
TOKEN_BASELINE_CPU_PERCENT |
50.0 |
Baseline CPU for scoring |
TOKEN_BASELINE_RAM_GB |
4.0 |
Baseline RAM for scoring |
TOKEN_OPTIMAL_SCORE |
100.0 |
Maximum achievable score |
Each sweep logs a structured telemetry line:
[TELEMETRY] CPU=12.3% | RAM=2.14/7.68 GB (27.9%) | Score=87.42 Grade=A | Overhead=0.4265 | TS=1723490400
asi-telemetry-node/
├── main.py # Agent definition, telemetry logic, benchmarking
├── requirements.txt # Pinned dependencies
├── .env # Local configuration (gitignored)
├── .gitignore # Excludes venv/, __pycache__/, .env
└── README.md # This file
This workspace serves as a decentralized node telemetry asset for the ASI:Chain ecosystem. By deploying this agent on CPU-only or edge endpoints, network operators gain:
- Real-time hardware profiling without GPU dependencies
- Tokenomics-informed optimization scoring for resource allocation decisions
- Standardized telemetry payloads via the
TelemetryReportmodel, ready for broadcast to other ASI agents or chain-level consumers - Edge-native performance profiling — the framework is designed for environments where every CPU cycle and megabyte of RAM matters
The agent's uagents interval loop emits TelemetryReport structures that can be consumed by:
- Other ASI agents for cross-node optimization
- Chain-level coordinators for load balancing
- Dashboard aggregators for fleet observability
MIT — see repository for details.