Choosing between Google Agent Development Kit vs LangGraph comes down to how much orchestration control you need versus how much managed infrastructure you want. ADK trades flexibility for tight integration with Vertex AI; LangGraph trades convenience for explicit, graph-based state machines you run yourself.
Capabilities
ADK primitives
Google’s Agent Development Kit (ADK) is a Python/TypeScript framework that models agents as declarative objects with bound tools, instructions, and sub-agents. It ships with built-in evaluators, trace export to Vertex, and one-command deployment to Google Cloud’s managed agent runtime. The primitive is the Agent class, which wraps a model (Gemini by default) and a set of tool functions.
ADK supports sequential and parallel sub-agents, but the orchestration logic is largely hidden behind the framework’s runner. You get session management, memory, and grounding via Vertex features such as Vertex Search or BigQuery connectors. For many standard support or retrieval agents, this is enough.
LangGraph primitives
LangGraph models agent logic as a stateful graph. Nodes are functions; edges define transitions; you can branch, loop, and inject human approval mid-flight. It is model-agnostic and runtime-agnostic. The core abstraction is the StateGraph, compiled into a runnable.
from langgraph.graph import StateGraph, END
def call_model(state):
# state["messages"] is a list of dicts
return {"messages": state["messages"] + [{"role": "assistant", "content": "ok"}]}
def should_continue(state):
return "end" if state.get("done") else "call_model"
sg = StateGraph(dict)
sg.add_node("call_model", call_model)
sg.add_edge("call_model", "should_continue")
sg.add_conditional_edges("should_continue", should_continue, {"call_model": "call_model", "end": END})
app = sg.compile()
LangGraph persists state via checkpointers, enabling time-travel debugging and resumable flows. You can attach a Postgres or Redis checkpointer with three lines of code.
Cost Model
ADK is open-source under Apache 2.0, but the managed path bills through Vertex AI: per-token model usage, plus agent hosting and request fees for the runtime. If you self-host the ADK runner outside Google Cloud, you avoid hosting fees but lose managed tracing and scaling.
LangGraph is MIT-licensed. Running it yourself costs only compute and LLM tokens. LangGraph Platform adds a usage-based fee for hosted persistence and scaling, but you can self-host the open-source package on any Kubernetes cluster. There is no framework tax.
Both frameworks are LLM-gateway agnostic. You can point either at an OpenAI-compatible endpoint such as n4n.ai, which fronts 240+ models with automatic fallback when a provider is degraded and per-token metering on your client credentials. That removes the need to hard-code model providers inside agent code.
Latency and Throughput
ADK’s managed runner adds a network hop to Vertex services even for local tool execution if you use cloud sessions. For latency-sensitive loops, run the ADK runner in-process and disable cloud session sync. Expect single-digit millisecond framework overhead plus your LLM call.
LangGraph executes entirely in your process. The only latency is your node logic and LLM calls. Throughput scales with your worker pool; there is no framework-imposed throttle. If you need high concurrency, deploy LangGraph behind a queue or use the platform’s built-in autoscaling.
Streaming works in both: ADK proxies Gemini’s native stream; LangGraph passes through whatever the model client yields. Neither adds meaningful buffering.
Ergonomics
ADK reads like configuration. You declare an agent, attach tools, and call runner.run(). The framework hides the control flow, which is great until you need a non-standard loop.
adk deploy agent --project my-gcp-project --region us-central1
That single command packages and ships the agent. The downside: debugging non-trivial flows means fighting the abstraction. Local testing requires mocking the runner’s session store.
LangGraph forces you to draw the graph. That is more code, but the data flow is explicit. New engineers can read the graph and understand exactly when a tool is called. The trade-off is boilerplate for simple linear chains. The LangGraph Studio visualizer helps, but you still write Python.
Ecosystem
ADK plugs into Google Cloud: BigQuery, Cloud Functions, Vertex Search, IAM, Model Garden. If your stack is already GCP, the integration is near zero-effort. Secret management and VPC scoping are inherited.
LangGraph sits in the LangChain ecosystem. Thousands of off-the-shelf tools, vector store connectors, and the LangSmith observability suite. It also has a JS variant with parity. Community Slack and GitHub discussions are active; ADK’s community is smaller and concentrated on Google Cloud forums.
Limits
ADK’s managed features assume Vertex. Exit costs are high if you later migrate off GCP. The open-source core is young; breaking changes are frequent between minor versions.
LangGraph requires you to build deployment, auth, and scaling. The graph metaphor is powerful but can become spaghetti in large teams without strict conventions. Conditional edge logic scattered across functions hurts readability if undocumented.
Testing and Observability
ADK emits OpenTelemetry spans to Vertex Trace automatically. You get token counts and tool latency without extra code. Unit testing an agent means invoking the runner with a fake session.
LangGraph gives you full state snapshots at every step. You can assert on intermediate state in pytest. For observability, LangSmith or a self-hosted LangGraph server records each transition. If you don’t use the platform, you wire your own logging.
Head-to-Head
| Dimension | Google Agent Development Kit | LangGraph |
|---|---|---|
| Orchestration | Declarative agents, hidden runner | Explicit state graph, visible edges |
| Model support | Gemini-first, others via Vertex | Any LLM with OpenAI-style API |
| Deployment | One-command to Vertex | Self-host or LangGraph Platform |
| Cost | Vertex token + hosting fees | Free OSS; platform fee optional |
| Latency | Extra hop if cloud sessions on | In-process, minimal overhead |
| Ecosystem | GCP native | LangChain + community |
| Learning curve | Low for simple agents | Moderate, graph mental model |
| Lock-in | High on managed path | None at framework level |
Which to Choose
Pick ADK if
- Your infrastructure is Google Cloud and you want managed agent hosting.
- Your agents are mostly linear with tool calls and you value declarative brevity.
- You need built-in evaluation and trace export without standing up your own observability.
- You are comfortable with Gemini as the primary model and Vertex for the rest.
Pick LangGraph if
- You require fine-grained control over loops, branching, and human-in-the-loop.
- You are multi-cloud or on-prem and cannot accept Vertex lock-in.
- Your team already uses LangChain components and wants composable nodes.
- You need to swap LLM providers at runtime based on cost or rate limits.
Edge cases
If you need to support 240+ models with automatic fallback across providers, either framework works, but you must wire the LLM client yourself. Use a gateway that honors routing directives and cache-control hints to avoid rewriting agent code when a provider fails.
For a quick prototype that might become production, start with LangGraph; the migration to a custom runtime is easier than extracting from ADK’s managed runner. If you are a GCP shop with a narrow agent scope, ADK gets you to production fastest.