ADK Go 2.0 (announcement)
Google‘s launch post for ADK Go 2.0 (v2.0.0, 30 Jun 2026,
github.com/google/adk-go) — a major release that reshapes the framework around a
graph-based workflow engine. T3 vendor blog; feature claims are the
maker’s, treat as a dated snapshot. The pitch: production agents must “classify, branch, fan out to
specialists, gather results, ask a human to approve something, retry on failure, and loop until done,” so
ad-hoc control flow doesn’t hold up — model it as an explicit graph instead.
The headline: “a graph is an agent”
The workflow engine is a graph of typed nodes joined by conditional edges, run by a scheduler that handles concurrent execution, state persistence, and pause/resume. And a graph runs on the same runtime as a single agent — no special harness — so single-agent and multi-agent execution unify. Details on graph-based-agent-workflow; the node/edge/routing model, resilience knobs, and HITL all live there.
First-class human-in-the-loop
HITL becomes a built-in primitive, not bolted-on: any node can pause and request human input
(NewRequestInputEvent), the workflow durably waits in session state, and resume happens by
handoff (answer flows to the next node) or re-entry (the paused node re-runs, response via
ctx.ResumedInput(...)). Resume survives process restarts — ADK reconstructs a paused workflow by
scanning session history — and both the console and Web UI understand HITL natively. This is the
durable pause/resume thesis made a core API surface (see also adk-long-running-agents).
Unified runtime and agent modes
The runner now drives all agents through the same node runtime that powers graphs, so even a standalone
LlmAgent gets HITL. LLM agents gain modes — Chat / Task / SingleTurn — that auto-install
mode-specific helper tools. Context handling collapses: ToolContext and CallbackContext merge into one
agent.Context across tools, callbacks, and nodes.
Cross-runtime and lineage
ADK Go 2.0 follows Python ADK 2.0’s graph-first direction, “designed from the ground up to feel like”
each language. The resume format is shared with Python ADK, so a paused workflow can resume across
runtimes; it plugs into A2A for cross-language multi-agent teams — extending the
already-demonstrated Go-validator-from-Python-orchestrator pipeline. Breaking
changes from 1.x are mechanical (node signatures take agent.Context not agent.InvocationContext; custom
contexts need IsolationScope() / ResumedInput(id); session.NewEvent now takes a context.Context);
runner.Run/RunLive and agenttool signatures are unchanged.
Why it matters here
It’s the strongest instance yet of this wiki’s “structure substitutes for capability” thesis: reliability (retries, timeouts, concurrency caps, isolation, durable resume) is provided by a declarative graph runtime wrapped around the model, not by the model itself. And “a graph is an agent” folds orchestration into the base runtime rather than a separate layer.
Related
adk · graph-based-agent-workflow · google · durable-agents · agent-orchestration · a2a-protocol · adk-a2a-cross-language · adk-long-running-agents · agentic-coding-harness