Agent Development Kit (ADK) for Go
TL;DR
ADK for Go is Google's Apache-2.0 Go edition of the Agent Development Kit. Version 2 adds graph-based workflows, collaborative agent teams and human-input nodes alongside LLM agents, workflow agents, MCP toolsets and experimental A2A. It suits Go teams building cloud-native agents, often deployed on Google Cloud. A separate v1 line still receives backported fixes.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Go |
| License | Apache-2.0 |
| Pricing model | Open core |
| Orchestration pattern | Graph |
| GitHub stars | 8,839 (as of 2026-09-30) |
| GitHub forks | 1,022 |
| Last push | 2026-09-30 |
| Latest release | v2.4.0 |
| Repository | google/adk-go |
| Website | adk.dev |
| Documentation | adk.dev |
| Last verified | 2026-09-30 |
Key features
llmagent.New(llmagent.Config{...})builds an agent from a model, instruction, tools, sub-agents and anOutputKeyfor session state. (source)- Graph-based workflows (ADK Go 2.0+) in the
workflowpackage: agent, function and tool nodes joined by edges, with branches, joins, parallel workers and retries. (source) - Human input nodes that pause a graph workflow until a person replies, with Go samples in the guide. (source)
- Collaborative agent teams in which sub-agents run in chat, task or single-turn mode under a coordinator (Go 2.0+). (source)
- Template workflow agents:
sequentialagent,parallelagentandloopagent. (source) mcptoolsetconnects agents to MCP servers and exposes their tools. (source)- A2A support through
remoteagent(consume) andserver/adka2a(expose), with Go quickstarts for both directions. (source) - Session services for in-memory, database and Vertex AI storage, and model packages for Gemini, OpenAI and Apigee. (source)
Architecture and orchestration pattern
Pattern: Graph
ADK for Go 2.x offers several ways to structure agents. An llmagent runs a model-and-tool loop and can list sub-agents that the model may transfer control to. Template workflow agents (sequentialagent, parallelagent, loopagent) run sub-agents in a fixed pattern. Since 2.0, the workflow package adds graph-based workflows in which agents, functions and tools are nodes joined by edges, with branching, joins, parallel workers, retries and human-input nodes, plus collaborative teams where a coordinator delegates to sub-agents in chat, task or single-turn mode.
A runner executes the root agent against a session. Session services keep event history and state in memory, in a database or in Vertex AI; memory services add cross-session search. An agent's OutputKey stores its answer in session state for later agents. The cmd/launcher package turns one program into a CLI, a REST API server or the ADK Web dev UI.
The repository maintains two lines: v2 under the module path google.golang.org/adk/v2, which changed some APIs (for example session.NewEvent now takes a context and tool and callback contexts were merged), and v1, which receives backported fixes.
Human in the loop
Two mechanisms are documented with Go samples. Tool confirmation, marked Experimental, is enabled by setting RequireConfirmation: true in functiontool.Config, which pauses each call for a yes/no answer; a tool can also request a structured confirmation through its context and read the reply when called again. The guide notes that confirmation does not work with the database or Vertex AI session services. In graph workflows (ADK Go 2.0+), a human-input node pauses the workflow until the user replies, and the reply becomes the next node's input. Answers can be given in the ADK Web UI or sent through the REST API server.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client: the tool/mcptoolset package in adk-go connects agents to MCP servers and wraps their tools; the docs' agent-as-MCP-server guide only shows Python. |
| A2A | Partial evidence | Client (remoteagent) and server (server/adka2a, A2A launcher) exist in Go, but the Go exposing and consuming quickstarts are labeled Experimental. |
| AG-UI | Unknown | The ADK AG-UI page lists Go in its support badge, but its tutorial uses CopilotKit's ADK template, the AG-UI repository's adk-middleware has only Python and TypeScript packages, and adk-go contains no AG-UI code; no Go setup is documented. |
Best for
- Go services that need agents inside one compiled binary, with sessions in their own database (shortlist)
- Workflows that mix deterministic nodes, LLM agents and human-input steps in one graph
- Teams deploying Gemini-based agents to Cloud Run, GKE or Google's Agent Runtime
Not for
- Production chat front ends built on ADK Web, which the quickstart says is for development only
- Projects that need A2A beyond experimental status
- Codebases that cannot move to the v2 module path and its breaking API changes, unless they stay on the v1 maintenance line
Quickstart
go get google.golang.org/adk/v2 // imports: context, os, google.golang.org/genai, and from google.golang.org/adk/v2:
// agent, agent/llmagent, agent/workflowagents/sequentialagent, cmd/launcher, cmd/launcher/full, model/gemini
func main() {
ctx := context.Background()
m, _ := gemini.NewModel(ctx, "gemini-flash-latest", &genai.ClientConfig{APIKey: os.Getenv("GOOGLE_API_KEY")})
drafter, _ := llmagent.New(llmagent.Config{Name: "drafter", Model: m,
Instruction: "Draft a short release note for the user's change.", OutputKey: "draft"})
editor, _ := llmagent.New(llmagent.Config{Name: "editor", Model: m,
Instruction: "Shorten this note to two sentences: {draft}"})
notes, _ := sequentialagent.New(sequentialagent.Config{
AgentConfig: agent.Config{Name: "notes", SubAgents: []agent.Agent{drafter, editor}}})
cfg := &launcher.Config{AgentLoader: agent.NewSingleLoader(notes)}
_ = full.NewLauncher().Execute(ctx, cfg, os.Args[1:]) // `go run . web api webui` opens the dev UI
}
Common pitfalls
- The quickstart asks for Go 1.25+ and ADK Go v2.0.0+, but the v2
go.modcurrently declaresgo 1.26.6, so an older toolchain has to download a newer one. - Import paths use the
/v2module suffix (google.golang.org/adk/v2/...); v1 code must be migrated (for examplesession.NewEventnow takes acontext.Context, and tool and callback contexts were merged). GOOGLE_API_KEYmust be set for Gemini API models.- ADK Web (
go run agent.go web api webui) is for development only. - Tool confirmation is experimental and does not support the database or Vertex AI session services.
Pros
- Graph-based workflows and human-input nodes from ADK 2.0 are available in Go, not only in Python. (source)
- Deployment to Google's managed Agent Runtime is documented for Go (from v1.2.0) as well as Cloud Run and GKE. (source)
- One launcher serves the same agent as a CLI, a REST API and the ADK Web UI. (source)
- Model packages go beyond Gemini, with an OpenAI adapter built on the official openai-go client and an Apigee gateway option. (source)
- Frequent releases: v2.0.0 (2026-06-30) to v2.4.0 (2026-09-11), with fixes backported to v1.7.0. (source)
Cons
- v2 introduced breaking API changes and a new module path, while v1 continues as a separate backport line, so examples must match the line in use. (source)
- The Go A2A quickstarts are labeled Experimental. (source)
- Tool confirmation is experimental and not supported with database or Vertex AI session services. (source)
- The ADK Web UI started by the launcher is meant for development, not production. (source)
Alternatives
FAQ
Does ADK for Go support MCP?
Yes, as a client: the mcptoolset package loads tools from MCP servers. The guide for exposing an ADK agent as an MCP server only shows Python.
Does ADK for Go support A2A?
Yes, in both directions (remoteagent to consume, server/adka2a to expose), but the Go A2A quickstarts are labeled Experimental.
Which version should I use, v1 or v2?
The quickstart targets v2 (go get google.golang.org/adk/v2), which adds graph workflows and collaborative teams. v1 still gets backported fixes, most recently v1.7.0 on 2026-09-14.
Is ADK for Go free?
The library is Apache-2.0. Google charges for managed services such as Agent Runtime and its sessions, listed on the Gemini Enterprise Agent Platform pricing page.
How does ADK for Go differ from the Java edition?
Go has ADK 2.0 graph workflows, collaborative agent teams and Agent Runtime deployment documented; these pages do not cover Java.
Sources
- ADK Go GitHub repository
- ADK Go README
- ADK Go v2 notes (README-v2.md)
- ADK Go LICENSE
- ADK Go go.mod
- ADK Go releases
- Release v2.4.0 notes
- Release v1.7.0 notes
- Release v2.0.0
- workflow package (source)
- workflowagents packages (source)
- mcptoolset package (source)
- remoteagent package (source)
- server/adka2a package (source)
- session packages (source)
- model packages (source)
- ADK docs home
- Go quickstart (docs)
- Graph-based workflows (docs)
- Human input in graphs (docs)
- Collaborative agent teams (docs)
- Action confirmations (docs)
- A2A quickstart, exposing (Go)
- A2A quickstart, consuming (Go)
- Deploy to Agent Runtime (docs)
- Deploy to Cloud Run (docs)
- AG-UI integration for ADK (docs)
- AG-UI adk-middleware (AG-UI repository)
- Gemini Enterprise Agent Platform pricing