Dynamic Tool
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.
View Full Pattern on Desktop

Problems Solved
- Create tools with runtime-generated schemas
- Adapt tool schemas based on user selection
- Support dynamic model selection
- Demonstrate dynamic tool creation patterns
- Handle tools with unknown schemas at compile time
Use Cases
- Unit conversion tools with dynamic schemas
- MCP (Model Context Protocol) tools
- User-defined functions at runtime
- Tools loaded from external sources
- Dynamic tool configuration based on user input
AI SDK APIs
Tags
Requirements
- Node.js
- 18+
- Memory
- 512MB
- Other
- AI API key (OpenAI, Anthropic, or Google)
Environment Variables
External Services
Ready to use?
View the full interactive pattern with live preview and copy the source code.
View PatternView Pattern on DesktopRelated Patterns


Tool Input Lifecycle Hooks
Explore tool input lifecycle hooks: onInputStart, onInputDelta, and onInputAvailable. See how to track tool input generation in real-time during streaming.


Preliminary Tool Results
Return preliminary tool results using async iterables. Stream status updates during tool execution before the final result is available.


Tool API Context
Pass arbitrary context from generateText/streamText to tool execution via experimental_context. Access context in tool execute functions for dynamic behavior.


Tool Call Repair
Repair invalid tool calls using experimental_repairToolCall. Fix schema validation errors without requiring additional steps that pollute message history.