Skip to content

Releases: a2aproject/a2a-go

v2.2.1

29 Apr 13:39
02de8b1

Choose a tag to compare

2.2.1 (2026-04-29)

Optimizations

Bug Fixes

  • compat package fixes (#328) (21e166c)
  • deserialize REST streaming error events into typed A2A errors (#318) (#319) (8a250ad)
  • extra query and fast client rejection in local executor (#330) (f307ca9)
  • task push notification configurations (#329) (c78fb4d)
  • update error handling to match spec (#327) (1aa72ce)

v0.3.15

15 Apr 10:06

Choose a tag to compare

0.3.15 (2026-04-15)

Bug Fixes

  • fix message rejected during input_required resumption due to execution cleanup race (#303)

v0.3.14

15 Apr 10:05

Choose a tag to compare

0.3.14 (2026-04-15)

Bug Fixes

  • fix unnecessary task store get in local execution mode

v2.2.0

10 Apr 14:04
f2e7ced

Choose a tag to compare

2.2.0 (2026-04-10)

Features

Bug Fixes

  • incorrect decoding of CreateTaskPushConfig request body (#314) (769dfe4)

v2.1.0

01 Apr 14:59
357b8c6

Choose a tag to compare

2.1.0 (2026-04-01)

Features

Bug Fixes

v0.3.13

30 Mar 08:53
2836447

Choose a tag to compare

0.3.13 (2026-03-30)

Bug Fixes

  • call cleanup even for cancelation with concurrent execution for API predictability
  • fix a2asrv.TaskStore.Save call with non-nil prev task even if nothing was stored
  • fix panic handler not called for cancelation with concurrent execution
  • fix heartbeater timer leak
  • fix infinite jsonrpc sse loop on panic supression
  • fix client interceptor not being able to supress error in after

v2.0.1

24 Mar 13:09
6108e34

Choose a tag to compare

2.0.1 (2026-03-24)

Features

  • a2acompat: add HTTP+JSON REST support to a2av0 compat layer (#280) (bac00e7)
  • agent executor cleaner (#276) (9c95980)

Bug Fixes

  • ensure correct concurrent cancellation results (#287) (d0f8981), closes #245

Documentation

  • a2aclient: add Example_* test functions for pkg.go.dev documentation (#263) (f8dae97)
  • update diagrams, docs and instructions (#289) (ed33c7a)

v0.3.12

20 Mar 15:41
2a38ed7

Choose a tag to compare

0.3.12 (2026-03-20)

Bug Fixes

  • add logging for failed execution and cancelation, fix nil-pointer on cancelation error (commit)
  • fix concurrent cancellations handled incorrectly ([#286])

v2.0.0

17 Mar 13:08
027015d

Choose a tag to compare

Release notes

Implements A2A spec 1.0 revision with JSONRPC, gRPC and REST protocol bindings. SDK major version is now v2, meaning the module id has changed:

go get github.com/a2aproject/a2a-go/v2

Changes

Non-breaking changes

  • a2aclient.Factory implements protocol version negotiation.
  • New errors added: ExtensionSupportRequiredError and VersionNotSupportedError.
  • Client sends A2A-Version header.
  • a2a package provides Part constructor functions.
  • a2asrv.NewTenantRESTHandler provides a utility for setting up multi-tenant deployments.
  • ListTasks RPC implementation.
  • a2asrv.WithCapabilityChecks handler option rejecting requests for which no support is declared in a2a.AgentCapabilities.

Spec-specific breaking changes

In addition to breaking core type changes updates:

  • Agent output validations: task must be the first event emitted by AgentExecutor, artifact parts must be non-empty.
  • Final field removed from TaskStatusUpdateEvent, state is used to determine whether event is final.
  • RPCs renamed: TaskSubscription -> SubscribeToTask, GetAgentCard -> GetExtendedAgentCard.
  • JSONRPC uses the same method naming as gRPC.
  • a2a.Task snapshot is emitted as the first event on task resubscription.

SDK breaking changes:

For motivation behind some of the changes refer to the change announcement.

  • a2asrv.AgentExecutor changes: Execute and Cancel now return iter.Seq2[a2a.Event, error] instead of writing events to a queue.
  • a2asrv/taskstore package gets introduced with TaskStore interface and the the default in-memory implementation.
  • a2a.TaskVersion gets moved to a2asrv/taskstore.
  • TaskStore.Save method gets replaced with separate Create and Update methods.
  • TaskStore.Update is called with a2a.Event set to user a2a.Message on task history update.
  • TaskStore.Get return types is taskstore.StoredTask which is (task, version) pair.
  • eventqueue.Queue gets replaced with separate eventqueue.Reader and eventqueue.Writer. eventqueue.Manager methods updated appropriately.
  • eventqueue.Message gets introduced for grouping a2a.Task, taskstore.TaskVersion and a2a.ProtocolVersion.
  • a2aclient.CallInterceptor and a2asrv.CallInterceptor can now return a value from Before to return a result without performing the actual call.
  • a2aclient.WithInterceptors gets renamed to a2aclient.WithCallInterceptors and a2asrv.WithCallInterceptor gets renamed to a2asrv.WithCallInterceptors and takes vararg so that methods are consistent with each other.
  • a2asrv.User get changed from an interface to a struct with an Attributes map[string]any field.
  • a2asrv.RequestContext gets renamed into a2asrv.ExecutorContext. User and ServiceParams are added to the struct, these should be used intead of CallContext.
  • a2asrv.ReqMeta and a2aclient.CallMeta are renamed to ServiceParams.
  • a2asrv.PushSender and a2asrv.PushConfigStore are moved to a2asrv/push.
  • a2aclient.ServiceParams are now passed explicitly to a2aclient.Transport.
  • Methods which attach something to context.Context start with Attach prefix, methods used to create constructor-function options start with With.
  • a2aclient.NewStaticServiceParamsInjector replaced with a2aclient.AttachServiceParams for sending request headers.
  • gRPC transport for a2aclient was moved to a2agrpc package. This removes gRPC as the mandatory dependency from the client.

v0.3 compatibility:

Backward compatibility implementation as discussed in A2A spec repo is provided by github.com/a2aproject/a2a-gov/v2/a2acompat/a2av0 package.

a2acompat works against the old github.com/a2aproject/a2a-go library and provides adapters for common dependencies.

a2agrpc and a2apb are versioned, where v0 contains mappers from v0.3.6 types to core types, and v1 implements the latest protocol version.

For an example backward-compatibility setup refer to e2e/compat.

v0.3.10

17 Mar 10:17
e1ea200

Choose a tag to compare

0.3.10 (2026-03-17)

Bug Fixes

  • fix wrong allocation target size
  • terminate subscription after terminal event has been received
  • fix missing break after error
  • fix subscribing to a different taskID in case of work queue override
  • fix response not sent for methods not returning values
  • fix panic write attempt to unbuffered channel