Skip to content

Commit ad4b325

Browse files
committed
docs: restructure README with comparison table, badges, and roadmap
- Add PyPI/npm download badges and GitHub Discussions badge - Add emoji feature highlights and problem statement table - Add comparison table vs HTTP A2A, ngrok, and direct TCP - Add framework integration matrix and public roadmap - Add examples index linking to all 5 example directories
1 parent f186819 commit ad4b325

1 file changed

Lines changed: 61 additions & 23 deletions

File tree

README.md

Lines changed: 61 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,56 @@
99
</p>
1010

1111
<p align="center">
12-
<a href="https://github.com/AgentAnycast/agentanycast-python"><img src="https://img.shields.io/pypi/v/agentanycast?label=Python%20SDK&color=blue" alt="PyPI"></a>
13-
<a href="https://github.com/AgentAnycast/agentanycast-ts"><img src="https://img.shields.io/npm/v/agentanycast?label=TypeScript%20SDK&color=blue" alt="npm"></a>
14-
<a href="https://github.com/AgentAnycast/agentanycast-node/releases"><img src="https://img.shields.io/github/v/release/AgentAnycast/agentanycast-node?label=Daemon" alt="Release"></a>
12+
<a href="https://pypi.org/project/agentanycast/"><img src="https://img.shields.io/pypi/v/agentanycast?label=Python%20SDK&color=blue" alt="PyPI"></a>
13+
<a href="https://www.npmjs.com/package/agentanycast"><img src="https://img.shields.io/npm/v/agentanycast?label=TypeScript%20SDK&color=blue" alt="npm"></a>
14+
<a href="https://pypi.org/project/agentanycast/"><img src="https://img.shields.io/pypi/dm/agentanycast?label=PyPI%20downloads&color=orange" alt="PyPI Downloads"></a>
15+
<a href="https://www.npmjs.com/package/agentanycast"><img src="https://img.shields.io/npm/dm/agentanycast?label=npm%20downloads&color=orange" alt="npm Downloads"></a>
1516
<a href="#license"><img src="https://img.shields.io/badge/license-Apache%202.0%20%2F%20FSL-green" alt="License"></a>
17+
<a href="https://github.com/AgentAnycast/agentanycast/discussions"><img src="https://img.shields.io/badge/community-discussions-blue?logo=github" alt="Discussions"></a>
1618
</p>
1719

1820
---
1921

22+
<p align="center">
23+
<img src="docs/assets/demo.svg" alt="AgentAnycast Demo" width="100%">
24+
</p>
25+
2026
AgentAnycast is a decentralized P2P runtime for the [A2A (Agent-to-Agent)](https://github.com/a2aproject/A2A) protocol, powered by [libp2p](https://libp2p.io/). It lets AI agents securely communicate across any network — your laptop, a corporate server, or the other side of the internet — without public IPs, VPNs, or any infrastructure setup.
2127

22-
Same A2A semantics you already know (Agent Card, Task, Message, Artifact), with automatic NAT traversal and end-to-end encryption built in.
28+
- 🔒 **End-to-end encrypted** — Noise_XX protocol. Relay servers see only ciphertext.
29+
- 🌐 **NAT traversal built in** — AutoNAT + DCUtR + Circuit Relay. Works from behind any firewall.
30+
- 🎯 **Skill-based routing** — Send tasks by capability, not by address. The network finds the right agent.
31+
- 🔌 **Framework adapters** — One-line integration with CrewAI, LangGraph, and MCP tools.
32+
- 🪪 **Decentralized identity** — Ed25519 keys + W3C DID:key. No certificates, no DNS, no accounts.
33+
- 🚀 **Zero config**`pip install agentanycast` and you're live. The daemon is auto-managed.
2334

2435
```bash
2536
pip install agentanycast # or: npm install agentanycast
2637
```
2738

2839
## Why
2940

30-
A2A requires every agent to be an HTTP server with a public URL. This excludes most real-world agents:
41+
[A2A](https://github.com/a2aproject/A2A) is the emerging standard for agent-to-agent communication — but it requires every agent to be an **HTTP server with a public URL**. This excludes most real-world agents:
42+
43+
| Problem | Impact |
44+
|---|---|
45+
| **Agents behind NAT** | Laptops, dev machines, edge devices can't accept incoming connections |
46+
| **Agents behind firewalls** | Corporate networks don't expose internal services to the internet |
47+
| **Privacy-sensitive agents** | Routing prompts through a centralized gateway is a non-starter |
3148

32-
- **Agents behind NAT** — laptops, dev machines, edge devices can't accept incoming connections
33-
- **Agents behind firewalls** — corporate networks don't expose internal services to the internet
34-
- **Privacy-sensitive agents** — routing prompts through a centralized gateway is a non-starter
49+
No mainstream agent framework solves this. They all assume agents share the same process or the same cloud. **AgentAnycast is the transport layer that closes this gap.**
3550

36-
No mainstream agent framework solves cross-network communication. They all assume agents share the same process or cloud. AgentAnycast is the transport layer that closes this gap.
51+
### How does it compare?
52+
53+
| | AgentAnycast | HTTP A2A | ngrok / Tailscale | Direct TCP |
54+
|---|---|---|---|---|
55+
| Zero config || ❌ Need public IP | ❌ Need account | ❌ Port forwarding |
56+
| E2E encryption | ✅ Noise_XX | ❌ TLS only | Partial ||
57+
| NAT traversal | ✅ Automatic ||||
58+
| Decentralized | ✅ DHT + DID ||||
59+
| A2A protocol | ✅ Native ||||
60+
| Skill discovery | ✅ Anycast ||||
61+
| Framework adapters | ✅ CrewAI, LangGraph, MCP | Manual |||
3762

3863
## What It Does
3964

@@ -149,20 +174,9 @@ await node.send_task(url="https://agent.example.com", message=msg)
149174

150175
Sidecar architecture — a local Go daemon handles P2P networking, and your SDK communicates with it over gRPC.
151176

152-
```
153-
┌──────────────┐
154-
│ Your App │ Python or TypeScript — your agent logic
155-
└──────┬───────┘
156-
│ gRPC (local)
157-
┌──────▼───────┐
158-
│ Daemon │ Go binary, auto-managed by the SDK
159-
│ (libp2p) │ handles P2P connections, encryption, NAT traversal
160-
└──────┬───────┘
161-
│ TCP / QUIC
162-
┌──────▼───────┐
163-
│ Network │ mDNS (LAN) / Relay (WAN) / DHT (decentralized)
164-
└──────────────┘
165-
```
177+
<p align="center">
178+
<img src="docs/assets/architecture.svg" alt="AgentAnycast Architecture" width="100%">
179+
</p>
166180

167181
- **On a local network** — agents discover each other automatically via mDNS. Nothing to configure.
168182
- **Across networks** — deploy a lightweight relay server. Agents connect through it, and the relay can't read any traffic.
@@ -229,6 +243,16 @@ The relay **cannot read your traffic** — it only forwards ciphertext. It also
229243
| **[agentanycast-relay](https://github.com/AgentAnycast/agentanycast-relay)** | Relay server + skill registry | Go |
230244
| **[agentanycast-proto](https://github.com/AgentAnycast/agentanycast-proto)** | Protocol Buffer definitions (gRPC + A2A data models) | Protobuf |
231245

246+
## Examples
247+
248+
| Example | What it shows |
249+
|---|---|
250+
| **[Hello World](examples/01-hello-world/)** | Two agents communicating over encrypted P2P |
251+
| **[CrewAI over P2P](examples/02-crewai-p2p/)** | Expose a CrewAI crew as a network-reachable agent |
252+
| **[LangGraph over P2P](examples/03-langgraph-agent/)** | Expose a LangGraph graph as a P2P agent |
253+
| **[MCP Bridge](examples/04-mcp-bridge/)** | Map MCP tools to A2A skills on the P2P network |
254+
| **[Skill Discovery](examples/05-skill-discovery/)** | Find agents by capability with anycast routing |
255+
232256
## Documentation
233257

234258
| Guide | What you'll learn |
@@ -240,6 +264,20 @@ The relay **cannot read your traffic** — it only forwards ciphertext. It also
240264
| **[Protocol Reference](docs/protocol.md)** | Wire format, task lifecycle, gRPC service definition |
241265
| **[Examples](docs/examples.md)** | Recipes: skill routing, framework adapters, streaming, LLM agents |
242266

267+
## Roadmap
268+
269+
AgentAnycast follows a phased release plan:
270+
271+
- **v0.1** ✅ — Core P2P runtime: libp2p networking, Noise_XX encryption, gRPC sidecar, Python SDK
272+
- **v0.2** ✅ — Production hardening: NAT traversal (AutoNAT + DCUtR + Relay), HTTP bridge, offline queue, streaming
273+
- **v0.3** ✅ — Ecosystem expansion: TypeScript SDK, DHT-based discovery, DID:key identity, MCP bridging, AGNTCY integration
274+
- **v0.4** 🔜 — Developer experience: MCP Server for P2P networking, more framework adapters, interactive playground
275+
- **v0.5** 🔜 — Enterprise features: multi-relay federation, access control policies, audit logging
276+
277+
## For AI Coding Assistants
278+
279+
This project provides an [`llms.txt`](llms.txt) file for AI agent discoverability and a [`.cursorrules`](.cursorrules) file for Cursor IDE integration.
280+
243281
## Contributing
244282

245283
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

0 commit comments

Comments
 (0)