Google ADK agent generator

Describe an agent for Google's Agent Development Kit in TypeScript and download the project adk web runs — an LlmAgent or a workflow root, its instruction, function tools, Google Search, sub-agents, MCP toolsets and structured output. No account, nothing leaves your browser.

The name is the identity

ADK validates agent names and throws otherwise; the name is what the model transfers to and the file the agent lives in. So names are checked here, never slugged — the same rule the Eve generator follows, for the same reason.

Rules from the docs, enforced

Google Search alone on its agent. No tools with an output schema. A loop that can end. A workflow root with no tools of its own. Each is reported next to the row that breaks it, because each is a runtime failure rather than a style choice.

Runs three ways

npm run web for the ADK dev UI, npm run run for the terminal, and npm start for index.ts, which drives the agent through InMemoryRunner the way the docs do.

How to scaffold a Google ADK agent in TypeScript

Four steps from an empty form to a project adk web runs. Every field is a property of new LlmAgent({ … }) or a workflow agent, and the preview shows the file it lands in.

  1. Choose the root

    An llm root reasons with a Gemini model and an instruction; a sequential, parallel or loop root is a workflow agent that runs its sub-agents as steps and shares data through session state.

  2. Add function tools and Google Search

    Each FunctionTool gets a Zod schema and, optionally, the requestConfirmation pattern. GOOGLE_SEARCH must be alone on its agent — a search sub-agent reached through AgentTool is the documented shape.

  3. Add sub-agents, MCP toolsets and output

    Sub-agents are reached by transfer or as an AgentTool, or run as workflow steps with an outputKey. MCPToolset connects stdio or SSE servers. outputSchema makes the root answer in JSON.

  4. Download and run

    npm install, set GEMINI_API_KEY, then npm run web for the ADK dev UI, npm run run for the terminal, or npm start for the InMemoryRunner script.

What the download contains

agent.ts
Exports rootAgent — the LlmAgent, SequentialAgent, ParallelAgent or LoopAgent the ADK CLI loads.
instruction.md
The root's instruction, read at load so {state_key} placeholders stay intact for ADK to fill.
tools/*.ts
One FunctionTool per file; tools/exit_loop.ts when a loop step can escalate out.
agents/<name>.ts
A sub-agent named after its identifier, with its own tools under agents/<name>/tools/.
mcp/*.ts
MCPToolset instances with StdioConnectionParams or SseConnectionParams and an optional tool filter.
output-schema.ts
The @google/genai Schema the root answers in, when structured output is on.
index.ts
A programmatic run through InMemoryRunner, createSession and runAsync, printing the final response.

Google ADK, answered

The longer version is in the guide Google ADK in TypeScript: LlmAgent, workflows and the rules the runtime enforces. This is an unofficial tool built against the public ADK documentation — the framework itself, and the last word on anything below, lives at adk.dev.

Design the app the agent works for

An agent usually sits behind a product. In the Nodlume workspace you draw that product on a visual structure canvas and export a real Next.js, Tauri, Expo, Ink or extension project from it. This page's siblings are the OpenAI Agents SDK, LangChain Deep Agents and Vercel Eve generators — the same form, for four runtimes.

We'd like to use Google cookies to understand how Nodlume is used and to measure our advertising. Nothing loads until you choose, and declining does not affect anything in the app.