ADK ships a dev UI, a TypeScript build and a recipes collection — and Google’s own agents CLI deploys LangChain without it

Evidence note: almost everything described below about the Agent Development Kit (ADK) and its surrounding Google Cloud products comes from primary vendor material — Google’s own developer blog posts and repositories published under its GitHub organization. Primary attestation means the fact is that Google announced it; it is not the same as an independent test, and no third party has reproduced the performance or security figures quoted here. A small number of claims in this space are not corroborated even by a primary source and are marked as open where they appear. One section is built from PlayAgit’s own pipeline records and is labelled as such, with sample sizes and dates inside each sentence.

What the Agent Development Kit actually ships

ADK is published as open source under Google’s own GitHub organization — a fact attested by Google itself rather than by an outside audit. Alongside the main kit, three adjacent repositories define the surface a developer actually gets:

  • A TypeScript implementation, published as adk-js, for teams whose tooling is Node-based rather than Python.
  • A developer web UI, published as adk-web. Reports describe the adk web command as ADK’s built-in developer and debugging interface, integrated directly with the kit — but that integration claim is not independently corroborated and the available evidence does not establish how tightly coupled the UI is to a given ADK version.
  • A recipes collection, adk-recipes, which Google’s own repository description presents as a set of agent recipes, reference patterns, and vertical plugins built with ADK (evidence level: primary repository description; no independent review of coverage or maintenance cadence).

That is the inside of the boundary: a runtime, two language bindings, a local UI, and a pattern library. Nothing in that list is a security control or a deployment system.

The voice path: a live model, non-blocking tools, and three scheduling behaviors

Google’s developer blog describes building a voice agent that "never goes silent" using ADK together with a live Gemini model — named in that post as gemini-3.8-live — and non-blocking tools in Python (step-by-step guide on Google’s developer blog) (evidence level: vendor announcement; model name and behavior as reported by Google, not independently tested).

The interesting part for anyone already prototyping is the naming of three response scheduling behaviors — WHEN_IDLE, INTERRUPT and SILENT — which Google states control when and how a tool result is delivered back into a live conversation. In a voice loop, that is the difference between a tool answer landing mid-sentence, waiting for a pause, or never being spoken at all. Latency and interruption numbers for these modes are not given in a form that can be checked from outside; the mechanism is announced, the behavior under load is open. Developers tracking the live-audio side of this stack may also find context in our write-up on what developers are actually shipping on Gemini’s live transcribe variant.

Streaming tools and background execution

The same Google material states that ADK supports streaming tools that yield incremental progress updates, and background execution patterns for long-running backend queries (evidence level: primary vendor documentation of capability; no benchmark of throughput, cancellation behavior or failure handling). For a game-tooling or internal-automation agent, this is the pattern that matters most in practice: a query that takes forty seconds against a warehouse should emit "still working" rather than block a turn. Whether ADK’s implementation handles partial failure cleanly is not addressed by the announcement and remains an open question.

ADK is a client, not a platform: agents speaking the Model Context Protocol

A deep-dive write-up in the Google Cloud publication on Medium frames ADK primarily as a Model Context Protocol (MCP) client rather than as a tool-hosting platform (ADK as MCP client, a deep dive) (evidence level: single practitioner analysis published on a vendor-adjacent channel; not an official specification statement).

The framing is load-bearing for a migration decision. If the agent’s capabilities arrive over MCP, the capability surface lives in the MCP servers, not in ADK — and an equivalent client in another framework can speak to the same servers. That is the first concrete reason the framework looks swappable.

Where the defenses actually live

Google’s developer blog describes an architecture it calls Project Chrysalis, combining the Gemini Enterprise Agent Platform, ADK, and BigQuery with a four-gate defense-in-depth security stack (architecting governed, self-evolving agents). Google names the four gates as Model Armor, Cloud KMS, Binary Authorization, and Open Policy Agent (OPA).

Note what that list is: one managed prompt/response filter, one key management service, one container admission control, and one general-purpose policy engine. Not one of the four is part of ADK. A team that moves off ADK keeps all four; a team that adopts ADK gets none of them by default.

This section carries the article’s strongest vendor-only claim. The same post states that the governed, self-evolving ADK-based agents it describes remediate live production outages in 1.8 seconds (evidence level: figure announced by Google in its own architecture post; no independent reproduction, and the post does not supply a test harness, incident sample size, or failure-rate breakdown that an outside team could re-run). Treat 1.8 seconds as an architecture illustration, not a service-level expectation.

Tokens are a separate product too

Google announced DPoP (Demonstrating Proof-of-Possession) support in its OAuth platform to sender-constrain refresh tokens, which Google describes as neutralizing information-stealing malware and adversary-in-the-middle attacks (DPoP support announcement) (evidence level: vendor announcement and vendor threat-model claim; the efficacy claim has not been independently evaluated).

The design trade-off Google states explicitly is worth copying as a pattern regardless of framework: long-lived refresh tokens are cryptographically bound to the client, while short-lived access tokens remain standard Bearer tokens — deliberately, to avoid imposing proof-of-possession overhead on high-queries-per-second API paths. Google also points developers building multi-agent or MCP workloads toward Cloud Secure Token Service (STS) for token delegation across agent chains (evidence level: primary guidance; no published measurement of added latency per hop).

Again: OAuth-level token binding and STS are account- and platform-level products. They sit outside ADK and apply equally to a LangGraph or custom stack.

The turn: one deployment and evaluation CLI, many frameworks

The clearest signal that Google does not treat ADK as the commitment comes from Google itself. Its Agents CLI Extension System is presented as a unified deployment and evaluation workflow that works with ADK as well as other frameworks — LangChain, LangGraph, and custom enterprise stacks (powering the agent development lifecycle with any framework). The same post states that a first-party LangChain template can scaffold, run, and deploy agents without requiring ADK (evidence level: primary vendor announcement; feature parity between templates is not characterized).

ADK, by Google’s own framing, is one framework among several behind a shared lifecycle tool.

What changes when the framework is replaceable

Google states that platform teams can author custom extensions to that CLI which enforce governance policies at deployment time — the example given is automated software bill of materials (SBOM) scanning (evidence level: primary vendor announcement of an extensibility mechanism; no public example of a production governance extension has been independently reviewed).

That relocates the hard part. If the gate that can refuse a deployment lives in the CLI extension layer, then the artifact a small team should invest in is the extension and its policy, not the agent framework underneath it. Deployment-time enforcement is also the only layer in this whole map that can say no on behalf of an organization — a point that connects to our records on why agent execution records have to be replayable.

Authorization moves down to the action — an open proposal, not a shipped product

A zero-trust pattern for agents circulating in practitioner discussion gives each agent a cryptographic identity: a private key plus a manifest declaring which actions are permitted, with the agent required to request a signature for each individual action, issued only after policy checks pass. The stated point of the design is the distinction between granting broad capability ("the agent may make payments") and authorizing one specific act ("the agent may make this payment"), with pluggable modules reportedly including Google AP2 and Mastercard Verifiable Intent.

None of that is corroborated by the sources available here, and no primary specification backing it can be cited. It is included because the shape of the idea is the logical end-point of everything above — authorization descending from the session to the action — but its existence, maturity, and module list are all open. Readers should not plan around it.

What we learned

Per-item verdicts, applied at the smallest reviewable unit, are the part of this pattern PlayAgit can speak to from its own operation rather than from an announcement.

In PlayAgit’s own pipeline runs — 197 runs between 28 August and 26 October 2026, as of 26 October 2026 — the quality gate issued a verdict on 1,997 drafts: 1,687 published, 192 sent back to revise, and 118 rejected. That is a rejection or revision on roughly one draft in six (derived from the three counts above; same run set, n=1,997).

The sourcing picture from the same run set is the more uncomfortable number. Across 7,358 research dossiers holding 38,044 claims, PlayAgit’s own records for 28 August to 26 October 2026 show 2,285 claims independently cross-checked and 9,025 primary-attested — about 6% independently corroborated and about 24% attested by the subject’s own source (derived percentages; same run set, n=38,044 claims). These are PlayAgit’s internal measurements of its own process, not an external audit, and they describe only what this pipeline recorded. The gap between those two figures is precisely why this article separates "Google announced it" from "someone else checked it" — and why a self-report, as our write-up on an agent that reported sending an email it never sent describes, is the weakest evidence in the stack.

A public course that assembles the whole stack

For a reader who wants the boundary map as runnable material rather than prose, a publicly available hands-on course builds a FinOps multi-agent platform on Google Cloud, combining ADK with MCP, LiteLLM, Vertex AI, LangGraph, GKE, and zero-trust practices (ai-agent-platforms-on-gcp) (evidence level: the repository’s own description; course content and currency not independently reviewed). Separately, agent-to-agent interoperability (A2A) is reported to be used alongside ADK in Google Cloud multi-agent platform builds — that specific pairing is not corroborated by the sources here and should be treated as unverified.

Note the composition itself: ADK appears as one component among seven, next to a competing orchestration framework.

Developer takeaway: pick the governance layer before the framework

For a solo developer or small team weighing a commitment, the boundary map yields a decision rule rather than a feature comparison:

  1. Inside ADK: runtime, Python and TypeScript bindings, a local developer UI (integration details unconfirmed), a recipes library, the MCP client role, live-voice response scheduling, streaming tools and background execution.
  2. Outside ADK, and framework-neutral: Model Armor, Cloud KMS, Binary Authorization, OPA, OAuth refresh-token binding, the Secure Token Service, and the deployment-time CLI extension layer.
  3. Therefore: the expensive, hard-to-reverse commitment is list 2. Google’s own first-party LangChain template deploying without ADK is the evidence that list 1 is comparatively swappable.

The migration cost a small team should actually fear is not rewriting agent code — it is re-earning the deployment gate, the key custody and the token policy.

Proposed follow-up test (not performed). The three response scheduling behaviors are the one ADK-internal feature here that a two-hour test could settle: build one voice agent with a deliberately slow tool, run the identical tool under WHEN_IDLE, INTERRUPT and SILENT, and record time-to-first-audio, whether the tool result ever reaches the user, and what happens when a second tool call arrives mid-delivery. Nothing in this article measures that; it is a proposal, and the numbers do not exist yet. Prior PlayAgit runs suggest single-variable swaps can move agent behavior measurably while leaving convergence unresolved — see how one remote swap moved an agent’s unprompted pushes by 11 points.

How we apply this in Vision

The same priority — governance layer first, generator second — is how Vision’s own pipeline is arranged, and its recorded funnel shows what that costs.

In PlayAgit’s own pipeline runs across 197 runs from 28 August to 26 October 2026 (as of 26 October 2026), 41,663 topic candidates were discovered across 4 categories from 224 distinct source hosts. Of 50,073 scored topics in that same run set, 19,664 were held before production and 20,904 rejected, with 9,505 reaching production — meaning fewer than one scored topic in five cleared the gate (derived from those counts; same run set, n=50,073). The published output over that window, by PlayAgit’s own records for those two months, was 1,751 posts: 411 new and 446 updated.

These are internal measurements of one pipeline, not an independent benchmark of anything, and they are reported here only to make the architectural point concrete: the component that decides what does not ship did the majority of the work. Changing the model or framework that drafts a piece would not change those hold-and-reject ratios; changing the gate would.