Defined in: packages/typescript/ai/src/types.ts:728
Options passed into the SDK and further piped to the AI provider.
TProviderOptionsSuperset extends Record<string, any> = Record<string, any>
TProviderOptionsForModel = TProviderOptionsSuperset
optional abortController: AbortController;optional abortController: AbortController;Defined in: packages/typescript/ai/src/types.ts:832
AbortController for request cancellation.
Allows you to cancel an in-progress request using an AbortController. Useful for implementing timeouts or user-initiated cancellations.
const abortController = new AbortController();
setTimeout(() => abortController.abort(), 5000); // Cancel after 5 seconds
await chat({ ..., abortController });const abortController = new AbortController();
setTimeout(() => abortController.abort(), 5000); // Cancel after 5 seconds
await chat({ ..., abortController });https://developer.mozilla.org/en-US/docs/Web/API/AbortController
optional agentLoopStrategy: AgentLoopStrategy;optional agentLoopStrategy: AgentLoopStrategy;Defined in: packages/typescript/ai/src/types.ts:750
optional conversationId: string;optional conversationId: string;Defined in: packages/typescript/ai/src/types.ts:818
Use threadId instead. conversationId is the legacy pre-AG-UI name for the same concept (a stable per-conversation identifier used to correlate client/server devtools events). When conversationId is omitted, the runtime falls back to threadId automatically, so most callers can simply pass threadId (or rely on chatParamsFromRequest, which surfaces it on params).
Will be removed in a future major release.
logger: InternalLogger;logger: InternalLogger;Defined in: packages/typescript/ai/src/types.ts:839
Internal logger threaded from the chat entry point. Adapter implementations must call logger.request() before SDK calls, logger.provider() for each chunk received, and logger.errors() in catch blocks.
optional maxTokens: number;optional maxTokens: number;Defined in: packages/typescript/ai/src/types.ts:785
The maximum number of tokens to generate in the response.
Provider usage:
messages: ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];messages: ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[];Defined in: packages/typescript/ai/src/types.ts:733
optional metadata: Record<string, any>;optional metadata: Record<string, any>;Defined in: packages/typescript/ai/src/types.ts:796
Additional metadata to attach to the request. Can be used for tracking, debugging, or passing custom information. Structure and constraints vary by provider.
Provider usage:
model: string;model: string;Defined in: packages/typescript/ai/src/types.ts:732
optional modelOptions: TProviderOptionsForModel;optional modelOptions: TProviderOptionsForModel;Defined in: packages/typescript/ai/src/types.ts:797
optional outputSchema: SchemaInput;optional outputSchema: SchemaInput;Defined in: packages/typescript/ai/src/types.ts:807
Schema for structured output. When provided, the adapter should use the provider's native structured output API to ensure the response conforms to this schema. The schema will be converted to JSON Schema format before being sent to the provider. Supports any Standard JSON Schema compliant library (Zod, ArkType, Valibot, etc.).
optional parentRunId: string;optional parentRunId: string;Defined in: packages/typescript/ai/src/types.ts:856
Parent run ID for AG-UI protocol nested run correlation. Surfaced for observability/middleware; not consumed by the LLM call.
optional request: Request | RequestInit;optional request: Request | RequestInit;Defined in: packages/typescript/ai/src/types.ts:798
optional runId: string;optional runId: string;Defined in: packages/typescript/ai/src/types.ts:851
Run ID for AG-UI protocol run correlation. When provided, this will be used in RunStartedEvent and RunFinishedEvent. If not provided, a unique ID will be generated.
optional systemPrompts: SystemPrompt[];optional systemPrompts: SystemPrompt[];Defined in: packages/typescript/ai/src/types.ts:749
System prompts to include with the request.
Accepts plain strings (the common case) or { content, metadata } objects that let providers attach typed metadata (e.g. Anthropic cache_control for prompt caching) per prompt. At the chat call site the adapter narrows metadata's type via ~types['systemPromptMetadata'] — providers that don't declare one default to never, which makes the field carry no meaningful value (TypeScript will only accept undefined there). Provider-foreign metadata that reaches an adapter via JS / as any is silently dropped, never written to the wire.
SystemPrompt
optional temperature: number;optional temperature: number;Defined in: packages/typescript/ai/src/types.ts:763
Controls the randomness of the output. Higher values (e.g., 0.8) make output more random, lower values (e.g., 0.2) make it more focused and deterministic. Range: [0.0, 2.0]
Note: Generally recommended to use either temperature or topP, but not both.
Provider usage:
optional threadId: string;optional threadId: string;Defined in: packages/typescript/ai/src/types.ts:845
Thread ID for AG-UI protocol run correlation. When provided, this will be used in RunStartedEvent and RunFinishedEvent.
optional tools: Tool<any, any, any>[];optional tools: Tool<any, any, any>[];Defined in: packages/typescript/ai/src/types.ts:734
optional topP: number;optional topP: number;Defined in: packages/typescript/ai/src/types.ts:776
Nucleus sampling parameter. An alternative to temperature sampling. The model considers the results of tokens with topP probability mass. For example, 0.1 means only tokens comprising the top 10% probability mass are considered.
Note: Generally recommended to use either temperature or topP, but not both.
Provider usage: