A2A protocol over slimrpc
Project description
SLIMA2A
SLIMA2A is a native integration of A2A built on top of SLIM.
Server usage
import srpc
from a2a.server.request_handlers import DefaultRequestHandler
from slima2a.handler import SRPCHandler
from slima2a.types.a2a_pb2_srpc import add_A2AServiceServicer_to_server
agent_executor = MyAgentExecutor()
request_handler = DefaultRequestHandler(
agent_executor=agent_executor, task_store=InMemoryTaskStore()
)
servicer = SRPCHandler(agent_card, request_handler)
server = srpc.Server(
local="agntcy/demo/server",
slim={
"endpoint": "http://localhost:46357",
"tls": {
"insecure": True,
},
},
shared_secret="secret",
)
a2a_pb2_srpc.add_A2AServiceServicer_to_server(
servicer
server,
)
await server.start()
Client Usage
from srpc import SRPCChannel
from a2a.client import ClientFactory, minimal_agent_card
from slima2a.client_transport import SRPCTransport, ClientConfig
def channel_factory(topic) -> SRPCChannel:
channel = srpc.Channel(
local="agntcy/demo/client",
remote="agntcy/demo/server",
slim={
"endpoint": "http://localhost:46357",
"tls": {
"insecure": True,
},
},
shared_secret="secret",
)
return channel
client_config = ClientConfig(
supported_transports=["JSONRPC", "srpc"],
streaming=args.stream,
httpx_client=httpx_client,
srpc_channel_factory=channel_factory,
)
client_factory = ClientFactory(client_config)
client_factory.register("srpc", SRPCTransport.create)
ac = minimal_agent_card("agntcy/demo/server", ["srpc"])
client = factory.create(ac)
try:
response = client.send_message(...)
except srpc.SRPCResponseError as e:
...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
slima2a-0.2.0.tar.gz
(10.3 kB
view details)
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 slima2a-0.2.0.tar.gz.
File metadata
- Download URL: slima2a-0.2.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d3a0b2581d2ab0c9781b45bad3afcab06b619537682cda0e9b5620f342400d3
|
|
| MD5 |
ab96a09f105df33a13312aa20bacd55a
|
|
| BLAKE2b-256 |
d08d33bb73dd205d6a7ef63acc612154410a5b580d2da624cd70fbceba9d0c01
|
File details
Details for the file slima2a-0.2.0-py3-none-any.whl.
File metadata
- Download URL: slima2a-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3de3bcc65f755b5cd0159a8bc93876d9a91e01a18da57e4fb374a471c1e08261
|
|
| MD5 |
faf36910b7a8a83d2baa0c8d1178211d
|
|
| BLAKE2b-256 |
7045e06dd0c099ccbb2923ad8b5f6dbd20251af2645878ede251323b4d73a156
|