An open API service indexing awesome lists of open source software.

https://github.com/skorotkiewicz/acp-p2p

A P2P (POC) of the ACP for decentralized agent communication
https://github.com/skorotkiewicz/acp-p2p

acp p2p-network rust

Last synced: about 1 month ago
JSON representation

A P2P (POC) of the ACP for decentralized agent communication

Awesome Lists containing this project

README

          

# acp-p2p

a peer-to-peer implementation of the Agent Client Protocol (ACP) for decentralized agent communication.

## installation

```bash
# clone the repository
git clone --depth 1 https://github.com/skorotkiewicz/acp-p2p
cd acp-p2p

# build with ACP features enabled
cargo build --release --features acp
# or
just build-all
```

## usage

```bash
# run the agent
./target/release/agent --alias alice --caps rust,math
```

examples

```bash
# connect to a specific peer at startup
just run --peer /ip4/127.0.0.1/tcp/12345/p2p/ --alias alice

# generate ephemeral identity (don't persist to file)
just run --ephemeral --alias test

# disable mDNS discovery
just run --no-mdns --alias isolated

# custom listen address
just run --listen /ip4/0.0.0.0/tcp/9000
```

the agent is configured via command-line arguments:

- `--alias ` - human-readable alias for this agent
- `--caps ` - comma-separated capability tags (e.g. rust,math,python)
- `--peer ` - peer multiaddr to connect to at startup
- `--ephemeral` - generate a new in-memory identity (don't persist)
- `--no-mdns` - disable automatic peer discovery
- `--listen ` - custom listen address (can be repeated)

once running, the agent accepts interactive commands:

- `ask ` - broadcast a question to all peers
- `ask --caps rust,math ` - ask agents with specific capabilities
- `ask @rust,math ` - short form for capability routing
- `acp ` - broadcast ACP JSON-RPC payload (requires acp feature)
- `dial ` - manually connect to a peer
- `peers` - list known peers
- `quit` - exit the mesh

features

- peer-to-peer networking using libp2p
- agent client protocol (ACP) implementation
- support for gossipsub messaging
- automatic peer discovery via mDNS
- async runtime with Tokio
- command-line interface with clap

## contributing

contributions are welcome! please feel free to submit a pull request.

## license

MIT license