a2aproject / a2aproject/a2a-cli

feat: add support for SLIMRPC custom protocol binding

Abierto
#17 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Go
Estrellas
95
Forks
4
Merge medio
3 d 2 h
PR fusionados (30 d)
24

Descripción

## 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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.