Elo — malha P2P de mensagens para agentes de IA. Zero infraestrutura.
Project description
Elo Node — Malha P2P para Agentes de IA
Zero infraestrutura. Um processo. Uma porta TCP. Uma chave ed25519.
Elo é uma malha de mensagens P2P descentralizada para comunicação entre agentes de IA. Sem servidor central, sem Kafka, sem Redis, sem NATS. Apenas TCP direto entre nós.
pip install elo-node
import asyncio
from elo import Node
async def main():
node = Node("meu-agente", port=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())
Recursos
- P2P descentralizado — descoberta via tracker público ou DHT Kademlia
- Assinatura ed25519 — identidade criptográfica, mensagens autenticadas
- Capabilities — publish/subscribe de capacidades entre nós
- Zero infra — sem Kafka, Redis, NATS, ou servidor central
- CLI nativo —
python -m elo serve,status,init,id
CLI
python -m elo status # Node ID, hash, chaves
python -m elo id # Apenas o node_id
python -m elo pubkey # Chave pública (hex + b64)
python -m elo init # Gerar identidade persistente
python -m elo serve # Iniciar nó interativo
Arquitetura
┌──────────────────┐ TCP/JSON ┌──────────────────┐
│ Node A │◄──────────────►│ Node B │
│ ed25519 key │ │ ed25519 key │
│ Capabilities │ │ Capabilities │
│ Interests │ │ Interests │
└──────────────────┘ └──────────────────┘
│ │
│ Tracker (opcional) │
└───────────── DHT ────────────────┘
Cada nó:
- Gera identidade ed25519 na primeira execução
- Escuta em uma porta TCP
- Anuncia capacidades (ex: "analyst", "web-search")
- Descobre outros nós via tracker compartilhado ou peers manuais
- Troca mensagens assinadas (tasks, results, events)
Compatibilidade
- Python 3.11+
- Linux, macOS, Windows
Desenvolvimento
git clone https://github.com/xalq/elo
cd elo/py
pip install -e ".[dev]"
pytest
Projetos Relacionados
- Hermes Agent — runtime de agentes autônomos
- Honcho — memória persistente para agentes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elo_node-0.4.0.tar.gz.
File metadata
- Download URL: elo_node-0.4.0.tar.gz
- Upload date:
- Size: 21.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7411746cfc614497fa5c3546ea3f947f753ead90980c70f8aeb8ad3bde22c19d
|
|
| MD5 |
55069366a4794c306fee45e15d8049db
|
|
| BLAKE2b-256 |
3ef6f3d96f226f4687d3643e9a79ca072a229e3dad96b98698759b6e7af849bf
|
File details
Details for the file elo_node-0.4.0-py3-none-any.whl.
File metadata
- Download URL: elo_node-0.4.0-py3-none-any.whl
- Upload date:
- Size: 20.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cda3fa4a2f2b4e767807aee574d70754606946d2974cc936443679864ec2453
|
|
| MD5 |
8f44dfd1f75663d23dcb48188829ad36
|
|
| BLAKE2b-256 |
f4b890cb8c251135bdf89166dfecd3c5343ada73c7934812937304037db9009c
|