Google ADK: A Framework for Agents and Workflow Agents
The ADK for TypeScript gives LlmAgent, FunctionTool, sessions, state, deterministic workflow agents, and evals. It's worth taking when all these primitives are needed as a single Google-native runtime model, not one by one - otherwise the direct Interactions API is simpler.
Current quickstart requirement. As of the verification date, the TypeScript ADK requires Node.js 24.13.0 or newer and npm 11.8.0 or newer. This requirement applies to the ADK chapter, not to all three direct-API SDKs.
npm install @google/adk
npm install -D @google/adk-devtoolsAn agent is assembled from a FunctionTool and an LlmAgent - similar to other frameworks, but with Google semantics.
import { FunctionTool, LlmAgent } from "@google/adk";
import { z } from "zod";
export function makeRootAgent(context: TrustedToolContext) {
const orderTool = new FunctionTool({
name: "order_read",
description: "Read the current user's verified public order view.",
parameters: z.object({ order_id: z.string() }),
async execute(input) {
return orderRead(input, context);
}
});
return new LlmAgent({
name: "commerce_support",
model: process.env.GOOGLE_MODEL ?? "gemini-3.6-flash",
description: "Resolves supported store policy and order questions.",
instruction: buildPrompt(context.locale),
tools: [orderTool]
});
}What exactly the ADK gives is convenient to see by the needs.
Need · ADK primitive
- A fixed order - A Sequential workflow agent
- Independent branches - A Parallel workflow agent
- Repeat until a condition - A Loop workflow agent with an explicit limit
- Conversation memory - Session and state services
- Regression testing - ADK Evaluation and environment simulation
A fixed order is covered by a Sequential workflow agent, independent branches by Parallel, repeat-until-condition by Loop with an explicit limit, conversation memory by session and state, regression testing by ADK Evaluation and environment simulation. And the main advice about when you even need an LLM agent.
A workflow agent saves on uncertainty. If the order of retrieval, validation, and generation is known, fix it in code. An LLM agent is needed only where the choice of the next step really depends on the meaning of an intermediate result.
Three providers are covered. Now let's reduce their differences to one map - because identical method names hide different semantics.