Model or dataset
google/adk-go avatar
google/adk-go

ADK Go: Google's code-first agent toolkit for Go developers who want control

An open-source, code-first Go toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.

8,793 stars1,007 forksGoApache-2.0

At a glance

What is it?
The Agent Development Kit for Go brings a code-first, model-agnostic approach to building AI agents in Go, with a focus on concurrency and cloud deployment. It is a strong fit for teams that want explicit orchestration logic rather than a visual or config-driven framework.
Who is it for?
Adopt ADK Go if you are a Go developer building cloud-native agents, especially on Google Cloud Run or Vertex AI, and you want agent logic, tools, and orchestration defined in code for versioning and testability. Do not adopt it if you need a visual builder, a Python-centric ecosystem, or if you prefer a configuration-driven framework that hides orchestration details.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What ADK Go actually solves

ADK Go is Google's Go implementation of the Agent Development Kit, a framework that applies software engineering principles to AI agent construction. The problem it targets is the gap between a proof-of-concept agent and a production service: agents need tools, orchestration, state, and deployment paths, and most agent frameworks force you into a scripting language or a heavyweight runtime. ADK Go gives Go developers a way to define agents, tools, and multi-agent workflows directly in Go code, which means the same type safety, testing, and versioning that apply to a REST API also apply to an agent. The README is explicit about the intended audience: developers building cloud-native agent applications who want to use Go's strengths in concurrency and performance. This is not a no-code tool. It is for engineers who are comfortable writing agent logic as functions and structs, and who want to keep that logic under normal source control.

Code-first architecture and how it differs from config-driven frameworks

The central design choice in ADK Go is that agent logic is code, not configuration. The README lists 'Code-First Development' as a key feature, stating that you define agent logic, tools, and orchestration directly in Go. This is a deliberate contrast to frameworks that use YAML or JSON schemas to describe agents, where the orchestration flow is hidden behind a parser. In ADK Go, the orchestration is a Go program. You write functions that act as tools, you compose agents as structs or interfaces, and you control the flow with normal control structures. The documentation points to a machine-readable index at adk.dev/llms.txt, which is generated from the adk-docs repository and includes the Go API reference and samples. This suggests that the project treats the Go API as the source of truth, and the docs are built to be fed to coding agents. That is a practical consequence of the code-first approach: the documentation is structured for AI assistants to consume and generate code against, not just for humans to read.

Getting started: installation and first steps from the README

Installation is a single command: go get google.golang.org/adk/v2. The module path reveals that the current major version is v2, though the repository also shows v1.6.1 releases, which indicates an active v1 maintenance line. The README does not show a hello-world example, so you cannot see an agent definition in a few lines from the supplied material. What you do get is a pointer to the examples directory in the repository and to the full documentation at adk.dev/llms-full.txt. For a coding agent, the README suggests a prompt like: 'Plan and implement an agent that reviews customer issues and generates a report. Use the ADK Go framework, referring to https://adk.dev/llms-full.txt for sample code.' That is a realistic onboarding path: clone the repo, read the samples, and adapt them. The lack of a minimal snippet in the README is a small friction point, but the presence of an examples tree and a machine-readable full doc file compensates.

Multi-agent systems and the tool ecosystem

ADK Go supports 'Modular Multi-Agent Systems', which the README describes as composing multiple specialized agents to build scalable applications. This is a common requirement in production agents, where a single model call is not enough and you need a router, a planner, or separate agents for distinct subtasks. The toolkit provides a 'Rich Tool Ecosystem' with pre-built tools, custom functions, and integration of existing tools. The repository topics include mcp, which stands for Model Context Protocol, and a2a, which is the Agent-to-Agent protocol. That suggests ADK Go can interoperate with external tools and agents that follow those protocols, rather than forcing everything into a proprietary format. However, the README does not specify which MCP servers or A2A agents are supported out of the box. You would need to inspect the examples or the Go doc to see concrete implementations. The model-agnostic claim is also broad: the README says ADK is optimized for Gemini but model-agnostic, and the topics list includes gemini and vertex-ai, so expect first-class support for Google's models and Vertex AI, with other providers available but less documented.

Deployment story and cloud-native fit

The README states that agents can be 'easily containerized and deployed, with strong support for cloud-native environments like Google Cloud Run.' This is a key selling point for Go developers, because Go compiles to a static binary, which makes container images small and startup fast. Cloud Run is a serverless container platform, so an ADK Go agent can be an HTTP service that receives requests and returns agent responses, without managing servers. The code-first approach aligns with infrastructure-as-code practices: you can version the agent logic, run unit tests against it, and deploy it through a CI/CD pipeline. The repository has a nightly check workflow, which indicates a commitment to keeping the main branch in a working state. That is a good sign for production use, but it is not a guarantee of stability. The release cadence shown in the recent releases, with v1.6.1 and v2.3.0 both updated in the same week, suggests active development and a dual-version maintenance strategy, which can be a maintenance burden for adopters who need to track API changes.

Limitations and cases where it is the wrong tool

The most obvious limitation is the absence of a high-level visual or declarative layer. If your team is used to LangGraph's graph JSON or CrewAI's role-based YAML, ADK Go will feel low-level. You have to write orchestration logic yourself, which gives you control but also places the responsibility for correctness on you. The README does not include a quickstart snippet, so the initial learning curve is steeper than it could be. Another limitation is the narrowness of the Go ecosystem relative to Python. Many agent libraries, such as toolkits for vector databases or document loaders, are Python-first. In Go, you may need to write your own integrations. The README mentions compatibility with other frameworks, but it does not detail how that compatibility works in practice. For a developer who wants to prototype quickly with a large pre-built tool catalog, Python ADK or another Python framework is likely a better fit. ADK Go is also tied to Google's cloud stack in its deployment guidance; while you can deploy anywhere, the documentation's emphasis on Cloud Run and Vertex AI means you will find more examples and support for those environments than for, say, AWS Lambda or a bare-metal Kubernetes cluster.

Alternatives: Python ADK and LangGraph

The most direct alternative is the Python version of ADK, which the README links to as github.com/google/adk-python. The difference is not just the language. Python ADK has a larger community and a broader set of pre-built integrations, and it is likely where Google invests most in new features first. If your team is already in Python, you gain faster iteration and a richer tool ecosystem, but you lose Go's compile-time safety and straightforward concurrency. Another alternative is LangGraph, which takes a graph-based approach where agents are nodes and edges in a state machine. LangGraph is language-agnostic but most mature in Python, and it offers a visual debugging interface and a declarative state model. ADK Go, by contrast, is code-first and does not impose a graph abstraction; you can implement the same flow with plain Go control flow, but you have to design the state management yourself. For a Go shop that wants to avoid Python entirely, ADK Go is a reasonable choice, but for a team that values a graph visualization and a large ecosystem, LangGraph is worth evaluating. The trade-off is between staying in Go and adopting a framework with more built-in structure.

Licence, maintenance, and upgrade considerations

ADK Go is licensed under Apache 2.0, which is permissive for commercial use, modification, and distribution. There is an exception: the internal/httprr directory has its own license file, so if you use that internal package, you need to check its terms. The README notes this explicitly. Since httprr is under an internal path, it is not part of the public API, but it is a sign that the project is careful about licensing. On maintenance, the repository shows a nightly CI check, which is a good practice for catching regressions. The last push date is September 2026, and the recent releases include both a v1.6.1 and a v2.3.0, indicating that v1 is still receiving patches while v2 is the active development line. If you adopt v2, you should be prepared for API changes as the framework matures. The v1 line may be more stable but likely receives only bug fixes. For a production deployment, you should pin the module version and review the changelog for breaking changes before upgrading. The Go module path google.golang.org/adk/v2 tells you that v2 is a major version with a separate module path, so v1 and v2 can coexist in a dependency graph, but you should not mix them in the same agent.

Editorial conclusion

Adopt ADK Go if you are a Go developer building cloud-native agents, especially on Google Cloud Run or Vertex AI, and you want agent logic, tools, and orchestration defined in code for versioning and testability. Do not adopt it if you need a visual builder, a Python-centric ecosystem, or if you prefer a configuration-driven framework that hides orchestration details. Before adopting, verify the current release version and the state of the v2 API, since the repository shows both v1.6.x and v2.3.0 releases, and confirm that the specific model providers and MCP servers you plan to use are supported by the Go implementation, as the documentation describes model-agnostic support but does not list every integration.

Official sources

  1. google/adk-go on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Community notes

Community notes