a2aproject / a2aproject/a2a-cli
feat: add support for SLIMRPC custom protocol binding
- Lingua principale
- Go
- Stelle
- 95
- Fork
- 4
- Merge medio
- 3g 2h
- PR unite (30g)
- 24
Descrizione
## Summary
Add support for the [SLIMRPC custom protocol binding](https://github.com/a2aproject/experimental-cpb-slimrpc) as an optional transport in the A2A CLI, selectable via `--transport slimrpc`.
## Background
SLIMRPC is Protobuf RPC over [SLIM](https://github.com/agntcy/slim) (Secure Low-Latency Interactive Messaging) — a transport layer designed for agentic workloads that provides:
- Peer-to-peer architecture with NAT/firewall traversal (no centralized broker)
- Hierarchical name-based addressing (`org/namespace/service`) instead of URLs
- End-to-end encryption via [MLS](https://www.rfc-editor.org/rfc/rfc9420)
- Native multicast and group communication
- Bidirectional low-latency messaging
The protocol binding identifier is `https://a2a-protocol.org/bindings/experimental-slimrpc/v1`. Reference Go implementation: [`github.com/agntcy/slim-a2a-go`](https://github.com/agntcy/slim-a2a-go).
## Proposed Changes
- Add `slimrpc` to the `--transport` flag (alongside `rest`, `jsonrpc`, `grpc`)
- Add SLIM-specific flags:
- `--slim-endpoint` — SLIM node endpoint (default `http://127.0.0.1:46357`)
- `--slim-local-name` — local SLIM identity (`org/namespace/app`, default `agntcy/a2a-cli/client`)
- `--slim-secret` — shared secret for app authentication (optional)
- CGO-gated implementation: the SLIM bindings require CGO (`github.com/agntcy/slim-bindings-go/v2`); a stub with a clear error message is compiled when `CGO_ENABLED=0`
- CI: run `slim-bindings-setup` to install the native library before build/test
## Usage
```
a2a send --transport slimrpc --endpoint agntcy/demo/echo_agent \
--slim-endpoint http://127.0.0.1:46357 \
--slim-secret my_secret \
"hello"
```
## References
- Spec: https://github.com/a2aproject/experimental-cpb-slimrpc
- Go library: https://github.com/agntcy/slim-a2a-go
- SLIM project: https://github.com/agntcy/slim
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.