Agntcy.SlimA2A
0.2.0
dotnet add package Agntcy.SlimA2A --version 0.2.0
NuGet\Install-Package Agntcy.SlimA2A -Version 0.2.0
<PackageReference Include="Agntcy.SlimA2A" Version="0.2.0" />
<PackageVersion Include="Agntcy.SlimA2A" Version="0.2.0" />
<PackageReference Include="Agntcy.SlimA2A" />
paket add Agntcy.SlimA2A --version 0.2.0
#r "nuget: Agntcy.SlimA2A, 0.2.0"
#:package Agntcy.SlimA2A@0.2.0
#addin nuget:?package=Agntcy.SlimA2A&version=0.2.0
#tool nuget:?package=Agntcy.SlimA2A&version=0.2.0
slim-a2a-dotnet
.NET library that maps the A2A gRPC contract to a2a-dotnet (IA2AClient / IA2ARequestHandler) over SLIMRPC, similar to slim-a2a-go / slim-a2a-python.
Dependencies
Agntcy.Slim / Agntcy.Slim.SlimRpc are consumed from NuGet (Agntcy.Slim.SlimRpc), pinned to 2.0.0. In 2.0 the SLIMRPC FFI types (Channel, Server, Context, RpcException, …) moved out of uniffi.slim_bindings into their own uniffi.slim_rpc namespace, so the generated stubs and the SLIMRPC plugin must be on 2.x together.
A2A is consumed from NuGet (A2A preview) so the solution builds with the stock .NET 8 SDK. You can instead use a ProjectReference to a local a2a-dotnet clone if you need unreleased API changes.
Codegen
Install the SlimRPC
protocplugin soprotoc-gen-slimrpc-csharpis on yourPATH(published as agntcy-protoc-slimrpc-plugin on crates.io):cargo install agntcy-protoc-slimrpc-plugin --version 2.0.0From
src/SlimA2A.Protos:buf generate
The A2A proto git ref is pinned in buf.gen.yaml; re-verify when bumping a2a-dotnet / spec versions. When you upgrade the plugin, align the cargo install version (and CI) with the release you want.
Build & test
dotnet build SlimA2A.sln
dotnet test SlimA2A.sln
Echo sample
examples/EchoAgent hosts an A2AServer + InMemoryTaskStore + ChannelEventNotifier behind SlimA2AHandler (same stack idea as the HTTP JSON-RPC samples, but transport is SLIMRPC).
Requires a running SLIM server and compatible shared secret (see slim .NET examples). Demo default secret matches slim samples; override with SLIM_SHARED_SECRET (min 32 characters). SLIM_SERVER defaults to http://localhost:46357.
# terminal 1 — SLIM server (use your usual slim server setup)
# terminal 2
dotnet run --project examples/EchoAgent/EchoAgent.csproj -- server
# terminal 3
dotnet run --project examples/EchoAgent/EchoAgent.csproj -- client
Optional env: SLIM_A2A_SERVER_NAME, SLIM_A2A_CLIENT_NAME (SLIM identities, defaults agntcy/a2a/echo and agntcy/a2a/client).
CLI overrides env for endpoint and secret: --server, --shared-secret (server and client must use the same secret as the SLIM server).
Security note
The sample insecure client config and demo shared secret are for local development only, not for production.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- A2A (>= 1.0.0-preview)
- Agntcy.Slim.SlimRpc (>= 2.0.0)
- Google.Api.CommonProtos (>= 2.15.0)
- Google.Protobuf (>= 3.28.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0 | 88 | 8/7/2026 |
| 0.1.0-preview.1 | 1,343 | 6/26/2026 |