Create dynamic tools with runtime-generated schemas using dynamicTool. Demonstrates unit conversion tools where schema adapts based on conversion type (temperature, length, weight, currency) and supports dynamic model selection.
Use this when you need to build tools with dynamicTool whose Zod schemas change per request, like a converter whose inputs differ by conversion type.
Similar patterns, and when each one is the better fit.

Tool Call RepairUse this when your model often sends tool arguments that fail schema validation and you want them fixed before execution without extra chat turns.
Multi-Step Tool PatternUse this when a chat agent must call several typed tools in a row, feeding each result into the next step, with a step limit to stop runaway loops.
Tool API ContextUse this when you call generateText or streamText directly and want one tool definition to adapt to each user's preferences or session settings.
Tool Context: experimental_contextUse this when a multi-tenant agent must scope every tool call to the authenticated request so a prompt injection cannot reach another user's data.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI SDK APIs
streamTextconvertToModelMessagesdynamicTooluseChatprepareSendMessagesRequestProviders
app/page.tsxapp/layout.tsxapp/api/dynamic-tool/route.tscomponents/dynamic-tool-demo.tsxcomponents/converter-config-form.tsx/tools/dynamic-tool-executor.ts/tools/dynamic-tool-ui.tsxnpm packages
10
Registry components
tools/dynamic-tool-executor.tsCore dynamic tool creation logic using dynamicTool(). Creates tools at runtime based on conversion type — dynamically generates tool name, description, Zod inputSchema, and execute function.
dynamic-tool/route.tsAPI route demonstrating runtime tool configuration. Receives toolConfig from the client, validates it, calls createDynamicConverterTool, and passes to streamText.
Create dynamic tools with runtime-generated schemas using dynamicTool. Demonstrates unit conversion tools where schema adapts based on conversion type (temperature, length, weight, currency) and supports dynamic model selection.
Use this when you need to build tools with dynamicTool whose Zod schemas change per request, like a converter whose inputs differ by conversion type.
Similar patterns, and when each one is the better fit.

Tool Call RepairUse this when your model often sends tool arguments that fail schema validation and you want them fixed before execution without extra chat turns.
Multi-Step Tool PatternUse this when a chat agent must call several typed tools in a row, feeding each result into the next step, with a step limit to stop runaway loops.
Tool API ContextUse this when you call generateText or streamText directly and want one tool definition to adapt to each user's preferences or session settings.
Tool Context: experimental_contextUse this when a multi-tenant agent must scope every tool call to the authenticated request so a prompt injection cannot reach another user's data.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI SDK APIs
streamTextconvertToModelMessagesdynamicTooluseChatprepareSendMessagesRequestProviders
app/page.tsxapp/layout.tsxapp/api/dynamic-tool/route.tscomponents/dynamic-tool-demo.tsxcomponents/converter-config-form.tsx/tools/dynamic-tool-executor.ts/tools/dynamic-tool-ui.tsxnpm packages
10
Registry components
tools/dynamic-tool-executor.tsCore dynamic tool creation logic using dynamicTool(). Creates tools at runtime based on conversion type — dynamically generates tool name, description, Zod inputSchema, and execute function.
dynamic-tool/route.tsAPI route demonstrating runtime tool configuration. Receives toolConfig from the client, validates it, calls createDynamicConverterTool, and passes to streamText.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
Create dynamic tools with runtime-generated schemas using dynamicTool. Demonstrates unit conversion tools where schema adapts based on conversion type (temperature, length, weight, currency) and supports dynamic model selection.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
Create dynamic tools with runtime-generated schemas using dynamicTool. Demonstrates unit conversion tools where schema adapts based on conversion type (temperature, length, weight, currency) and supports dynamic model selection.