Skip to content
Putting technology to work.
Insights to guide decisions and action.

Search articles

Google's ADK now covers five languages: checks before building in your existing system's language

Table of contents · 6 items

Your business systems run on Java or Go, yet only the AI agents are built separately in Python and run on separate servers. As agents gain more features, the APIs connecting them and the operational effort also grow. Google's AI agent development kit, "Agent Development Kit (ADK)," is moving away from this assumption that agents are built in Python.

On October 13, 2026 (US time), the Google Cloud blog explained, with code for each language, that ADK can be used in five languages.

Google’s Agent Development Kit (ADK) removes that trade-off with coverage for Python, Go, TypeScript, Java, and Kotlin.

In this article, we compared that guide with the documentation in each language's repository, and for Python and TypeScript we actually built tool definitions and checked the output. For development teams considering building agents in the same language as their existing systems, we outline what to check before choosing.

What the five languages have in common

According to the guide, the ADK for each of the five languages is built to suit that language, but they share common mechanisms.

  • MCP (Model Context Protocol) client: included in every language. Tools exposed as MCP servers can be called from agents in any language
  • A2A (Agent2Agent) protocol: a mechanism for agents to communicate with each other over HTTP. It connects even agents written in different languages or frameworks

In other words, even without standardizing on one language across the company, the premise is that you connect tools through MCP servers and agents through A2A. The basics of MCP are covered in the complete guide to MCP.

Differences by language

Here we summarize the characteristics of each language described in the guide, from the perspective of pairing them with business systems.

LanguageHow tool definitions are generatedSuited for / characteristics noted in the guide
PythonGenerated automatically from function type hints and docstringsThe reference implementation. Broadest Google Cloud integration and model support. Can be built into CI with the evaluation command
GoGenerated from struct tags using genericsFor production backends. A base image of about 2 MiB with fast startup. Supported ADK 2.0 graph-based workflows second, after Python
TypeScriptGenerated from Zod schemasRuns not only in Node.js services but also inside a browser tab. Can use WebMCP and Chrome's on-device models
JavaGenerated from @Schema annotations on argumentsFor Maven, Gradle and Spring Boot environments. Includes bridges to Spring AI and LangChain4j
KotlinGenerated at build time with KSPCatches type errors at build time. Can run agents on-device on Android

A diagram showing the relationship among Google's ADK in five languages. The Python, Go, TypeScript, Java and Kotlin ADKs all have an MCP client and the A2A protocol, so tools and agents can be shared across languages. As of October 25, 2026, the READMEs of the Java and Kotlin repositories include preview (Pre-GA) terms

One thing to check before choosing is the availability stage. When we checked each repository's README on October 25, 2026, the Java and Kotlin READMEs had a "Preview" section stating that they are subject to Google Cloud's "Pre-GA Offerings Terms" and that support may be limited. The Python, Go and TypeScript READMEs had no such section. The Kotlin README also says it has "moved to a stable release cadence," so the meaning of the stage can be read differently depending on the document. Before putting it into a client's production system, it is safer to check the README for the language you use and the contract terms.

We built tool definitions and checked them

Whether an agent can call a tool correctly depends on the tool description passed to the model (name, description and arguments). We wrote the weather tool example from the guide as is in Python and TypeScript and output the tool definitions that ADK generates. We did not call a model.

The test environment was Linux, Python 3.11.17 with google-adk 2.13.0, and Node.js 22.22.0 with @google/adk 2.3.0 and zod 4.6.7 (obtained from PyPI and npm on October 25, 2026). To view the definitions, we used the tools' internal methods (_get_declaration() in Python and _getDeclaration() in TypeScript).

Python: the docstring's "Args:" did not become argument descriptions

Following the guide's example, when we passed a function with argument descriptions written in the docstring's Args:, the output was as follows (excerpt).

{
  "description": "Retrieves the current weather report for a specified city.\n\nArgs:\n    city (str): The name of the city for which to retrieve the weather report.",
  "name": "get_weather",
  "parameters_json_schema": {
    "properties": { "city": { "title": "City", "type": "string" } },
    "required": ["city"]
  }
}

The entire docstring went into the tool description, and the argument city received no description. The model has to infer the meaning of the argument from the tool's description text. ADK's official documentation ("Function tools" on adk.dev) says that "argument descriptions are taken from the docstring," but as far as we could tell from reading the 2.13.0 source code, the argument fields are generated from the type information of the function's arguments, and we found no processing that reads the docstring's Args:. Reading it as the docstring content being passed to the model as the tool's description text, rather than as argument fields, matches this output. We also confirmed that rewriting the argument as Annotated[str, Field(description="The name of the city.")] adds "description": "The name of the city." to city. For tools with many arguments, or arguments that use business terminology, we think this style conveys intent better (the editorial team's judgment).

TypeScript: Zod descriptions went in as is, and input of the wrong type was stopped

In TypeScript, Zod's z.string().describe("The name of the city.") went as is into the description of city in the tool definition.

Furthermore, when we ran the tool with city: 123 (a number), the tool function was not called, and execution stopped with a Zod validation error, expected string, received number. This confirms the behavior described in the guide, in which "runtime input validation and the schema sent to the model are generated from a single definition."

We did not run the three languages other than Python and TypeScript (Go, Java and Kotlin) this time.

Deciding whether to build in your existing system's language

From here on are the editorial team's suggestions.

  • If you want to keep most tools inside your existing system: using the ADK in the same language saves you from building new APIs just to call business logic. However, check the availability stage described above
  • If you want to systematize evaluation (scoring agent quality): the guide says Python has the most complete evaluation tooling, and that you can test the whole system with Python evaluation even if production uses another language. Separating the production language from the evaluation language is also an option
  • If you work across languages: split tools out as MCP servers and connect agents to each other with A2A. The same tools can then be used from the ADK in any language

The basic concepts of agents are covered in What is an AI agent?, and an example of connecting internal screens from Google's enterprise agent platform is covered in MCP Apps in Gemini Enterprise.

Scope of verification

On October 25, 2026, we checked the Google Cloud blog post "One Agent Development Kit, five languages" (October 13, 2026) and the READMEs (main branch) of google/adk-python, adk-go, adk-js, adk-java and adk-kotlin on GitHub (document research). We also installed the Python and TypeScript ADKs in the editorial team's test environment (Linux) and output the tool definitions from the guide's example (hands-on testing). We did not try running agents with model calls, behavior in Go, Java or Kotlin, deployment to Google Cloud, or the agents-cli command.

Before publication, on October 27, 2026, we rechecked the blog post, each README, the documentation on adk.dev (moved from google.github.io/adk-docs), PyPI, npm, Maven Central and the Go modules. The Preview sections in the Java and Kotlin READMEs remained, and google-adk 2.13.0 and @google/adk 2.3.0, which we used for testing, were still the latest versions for each language on that date.

For designing how to build AI agents into existing business systems or choosing languages and architecture, contact us through consultation on development, AI, and automation.

References

Share this articleXFacebook
Kakeru Suzuki

Fascinated by the possibilities of technology, has had a deep interest in programming and digital art since student days

Turn this article's theme into your company's next step

Concrete steps forward for your organization.

We organize your desired architecture, legacy systems, and operational requirements to formulate your next steps toward execution.

  • Desired architecture
  • Integration with existing environments
  • Operational requirements
Consult on development & operations initiatives

You can consult with us from the initial conceptual stage. Details from this article will be carried over to the inquiry form.

Receive the latest articles by email