defaultSettingsMiddleware()
defaultSettingsMiddleware is a middleware function that applies default settings to language model calls. This is useful when you want to establish consistent default parameters across multiple model invocations.
To apply default system instructions, use
defaultInstructionsMiddleware.
import { defaultSettingsMiddleware } from 'ai';
const middleware = defaultSettingsMiddleware({ settings: { temperature: 0.7, maxOutputTokens: 1000, // other settings... },});Import
import { defaultSettingsMiddleware } from "ai"API Signature
Parameters
The middleware accepts a configuration object with the following properties:
settings: An object containing default parameter values to apply to language model calls. These can include any validLanguageModelV4CallOptionsproperties and optional provider metadata.
Returns
Returns a middleware object that:
- Merges the default settings with the parameters provided in each model call
- Ensures that explicitly provided parameters take precedence over defaults
- Merges provider metadata objects
Usage Example
import { streamText, wrapLanguageModel, defaultSettingsMiddleware } from 'ai';
// Create a model with default settingsconst modelWithDefaults = wrapLanguageModel({ model: gateway('anthropic/claude-sonnet-4.5'), middleware: defaultSettingsMiddleware({ settings: { providerOptions: { openai: { reasoningEffort: 'high', }, }, }, }),});
// Use the model - default settings will be appliedconst result = await streamText({ model: modelWithDefaults, prompt: 'Your prompt here', // These parameters will override the defaults temperature: 0.8,});How It Works
The middleware:
- Takes a set of default settings as configuration
- Merges these defaults with the parameters provided in each model call
- Ensures that explicitly provided parameters take precedence over defaults
- Merges provider metadata objects from both sources