Agent behavior lives in ordinary Go code
ADK Go is a library for defining agents, tools, orchestration, sessions, evaluation, and deployment in Go. The project emphasizes code-first construction rather than a visual builder. That gives normal benefits: prompts and routing can be versioned with application code, tools can use typed functions, and agent behavior can sit beside unit tests and existing service packages. The Apache-2.0 license permits commercial use and modification.
Google calls the toolkit model agnostic while saying it is optimized for Gemini. The current module imports Google's Gen AI client and OpenAI's Go client, alongside MCP and A2A packages. Issue 1358 asks for a broader gateway and describes current backend support as Gemini plus the OpenAI Responses wire format. Teams using another provider should confirm the actual adapter path instead of reading model agnostic as universal plug-and-play support.
The 132-second build is clean but not quick
Our sandbox installed 289 Go packages in 42 seconds. The build then succeeded in 132 seconds, which was the longest successful build among this review set. The checkout was only 14.4 MB, with 803 files and about 141,609 lines of source, so the time belongs to compiling a broad Go dependency graph rather than unpacking a large repository.
The measured commit was 0a51e15 in a golang:1.24-bookworm container with 3 CPUs, 8 GB of RAM, and no secrets. Current main now declares Go 1.26.6 in go.mod, which means a contributor checking out today's branch needs a newer toolchain than our lab image. Pin the ADK version and Go toolchain together in CI so a branch update does not silently change compiler requirements.
What happened when we ran it
Our run completed installation in 42 seconds, compiled in 132 seconds, and finished tests in 43 seconds. go test reported 72 passed and 0 failed out of 72. The repository had 3 CI workflow files, no Dockerfile, and no top-level tests directory. Go package tests can live beside source, so the missing directory does not conflict with the passing test result.
These checks did not call Gemini, OpenAI, Vertex AI, MCP, A2A, Cloud Run, or any persistent session service. They prove that the measured code and dependencies built and that the supplied test command passed in our sandbox. A production evaluation still needs model responses, tool failures, concurrent runs, cancellation, session recovery, and credential boundaries under the application's own workload.
MCP text works while four content classes can disappear
ADK Go includes an MCP toolset, which makes external tool servers available to agents. Open issue 1391 reports that v2.2.0 preserves text blocks but silently drops embedded resources, resource links, images, and audio. The reporter reproduced this with GitHub's MCP server: a file-read call returned a success line while the embedded file body never reached the model.
Silent loss is worse than a typed error because the agent may continue with incomplete evidence. Test every selected MCP server using the content it returns, including large files that may switch from embedded data to resource links. Until the conversion is fixed in the pinned version, wrap responses into text where safe or avoid tools whose correctness depends on binary and resource blocks. Add a regression case so an SDK upgrade cannot reintroduce hidden truncation.
A2A isolation needs a payload-level test
Agent-to-agent support lets a coordinator delegate work to remote agents. Issue 1220 reports that an isolation-scoped workflow node builds its outbound A2A message from the shared session event list rather than only the seeded task input. The reproduction says earlier user text and tool results can be sent to the remote server, while later dispatches reuse a prior context ID.
That is a security and correctness concern for multi-tenant systems. A remote agent may receive information outside its intended branch, and reused context can mix independent jobs. Before enabling A2A, log a redacted representation of the outbound request, place unique markers in sibling branches, and assert that each remote call receives only its allowed marker and a fresh context. Framework isolation should be verified at the network payload, not inferred from an in-process scope name.
Version 2.2.0 fixes ownership, races, and live sessions
The August 10, 2026 release includes user-ownership enforcement for Vertex AI session deletion, a path-traversal fix for configurable agent tools, ordering for confirmed tool calls, artifact concurrency repair, and better cancellation propagation. It also closes live connections on history-send failures and preserves streaming usage metadata. Those changes show the project is addressing production behavior beyond demonstration agents.
GitHub reported 8,709 stars, 321 combined issues and pull requests, and a last push on August 26, 2026. Same-day work covered workflow dispatch, analytics, compaction, and examples. The volume signals an active project with a wide surface, not 321 confirmed bugs. Buyers should read issues for the exact packages they import because an in-memory chat agent and an A2A service have different risk profiles.
Go teams get the strongest reason to choose it
ADK Go fits best when agents must live inside an established Go service, share its observability and deployment practices, and use Gemini or a supported model interface. go get google.golang.org/adk/v2 is a simple entry point, while the measured 289-package graph and 132-second build show that the library is substantial. Cloud Run support and Go's concurrency model are useful, though neither guarantees correct agent behavior.
The clean 72-test result earns a real prototype. Build one agent with a bounded tool set, an in-memory session, and recorded model fixtures before adding remote state. Then test MCP response types, A2A payload isolation, retries, and cancellation under race-enabled CI. ADK Go supplies the framework; the application team still owns permission design, prompt behavior, data retention, model cost, and every remote boundary.

