Skip to main content

Elo — malha P2P de mensagens para agentes de IA. Zero infraestrutura.

Project description

Elo Node — P2P Message Mesh for AI Agents

Zero infrastructure. One process. One TCP port. One ed25519 key.

Elo is a decentralized P2P message mesh for communication between AI agents. No central server, no Kafka, no Redis, no NATS. Just direct TCP between nodes.

pip install elo-node
import asyncio
from elo import Node

async def main():
    node = Node("my-agent", port=7878, peers=["100.91.215.113:7878"])
    await node.connect()
    await node.register(agents=["analyst"], tools=["web-search"])

    @node.on_task
    async def handle(task):
        return {"result": f"processed by {node.node_id}"}

    await node.run()

asyncio.run(main())

Features

  • Decentralized P2P — discovery via public tracker or Kademlia DHT
  • ed25519 signatures — cryptographic identity, authenticated messages
  • Capabilities — publish/subscribe of agent skills across the mesh
  • Relay via tracker — nodes behind NAT/Docker can communicate through a tracker
  • Zero infra — no Kafka, Redis, NATS, or central server
  • Native CLIpython -m elo serve, status, init, id

CLI

python -m elo status       # Node ID, hash, keys
python -m elo id           # Just the node_id
python -m elo pubkey       # Public key (hex + b64)
python -m elo init         # Generate persistent identity
python -m elo serve        # Start an interactive node

Key Concepts

  • peers= is required for outbound connections. Without it the node only listens.
  • send_task() auto-fallback: direct → InterestTable → QUERY → tracker relay → NO_PEER
  • HELLO_ACK with known_peers: tracker shares all peers on handshake (v0.4.4+)
  • discover_peers_network() — QUERY broadcast across the mesh

Changelog

Version Highlights
0.4.5 Multi-response discover, tracker returns all peers on query
0.4.4 HELLO_ACK with known_peers, send_task auto-fallback tracker
0.4.3 Relay via tracker, send_task_via_tracker()
0.4.0 Initial release

Compatibility

  • Python 3.11+
  • Linux, macOS, Windows

Development

git clone https://github.com/andreocc/elo
cd elo/py
pip install -e ".[dev]"
pytest

Related Projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elo_node-0.4.10.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elo_node-0.4.10-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file elo_node-0.4.10.tar.gz.

File metadata

  • Download URL: elo_node-0.4.10.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for elo_node-0.4.10.tar.gz
Algorithm Hash digest
SHA256 02b3c7049440f8c5ddbd433e1b59d01a7009b2ca9599442e35e6301260e7c4b2
MD5 694e46963bb3c1acb7d629eefb8ec87d
BLAKE2b-256 1fd42df31186a295c508f286823aef8f9fecbf1ec1d6a75c2df58e0f41619a1c

See more details on using hashes here.

File details

Details for the file elo_node-0.4.10-py3-none-any.whl.

File metadata

  • Download URL: elo_node-0.4.10-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for elo_node-0.4.10-py3-none-any.whl
Algorithm Hash digest
SHA256 dad7f9c6f8fe1c8bef1e1a5fb46e3ec4d7a85971ff449183a97c21b711c908f1
MD5 3e3748dfb4965cfaa8a7da30fb9b3e31
BLAKE2b-256 dde667d3eb3cff265aa326f072042f6ad94b63119ec4793b8213c4200b8cfb22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page