Skip to content

StructuredOutputMiddlewareConfig

Defined in: packages/ai/src/activities/chat/middleware/types.ts:429

Config passed to onStructuredOutputConfig.

Mirrors ChatMiddlewareConfig minus tools and toolChoice (the final structured-output call is a single typed-response request, not an agentic loop — tools cannot be forwarded to it), plus the outputSchema being sent to the provider. Middleware may transform the schema (e.g., inject $defs, strip vendor-incompatible keywords) by returning a partial that includes outputSchema.

Extends

Properties

activities?

ts
optional activities?: ActivityRecord[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:361

Frontend-only AG-UI activity sidecar. Persistence loads and saves this when an ActivityStore is configured. Never model input.

Inherited from

ChatMiddlewareConfig.activities


messages

ts
messages: ModelMessage<
  | string
  | ContentPart<unknown, unknown, unknown, unknown, unknown>[]
  | null>[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:356

Canonical conversation history. Middleware and persistence read this.

Inherited from

ChatMiddlewareConfig.messages


metadata?

ts
optional metadata?: Record<string, unknown>;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:368

Inherited from

ChatMiddlewareConfig.metadata


modelOptions?

ts
optional modelOptions?: Record<string, unknown>;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:369

Inherited from

ChatMiddlewareConfig.modelOptions


outputSchema

ts
outputSchema: JSONSchema;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:434

JSON Schema being sent to the provider for structured output.


promptCache?

ts
optional promptCache?: ResolvedPromptCache;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:382

The prompt cache of the next model call. A returned value stays until a middleware changes it.

Inherited from

ChatMiddlewareConfig.promptCache


providerMessages?

ts
optional providerMessages?: ModelMessage<
  | string
  | ContentPart<unknown, unknown, unknown, unknown, unknown>[]
  | null>[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:363

Provider-only context. Defaults to messages when it is not set.

Inherited from

ChatMiddlewareConfig.providerMessages


reasoning?

ts
optional reasoning?: ReasoningRequest;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:371

How hard the model thinks at this call. A middleware can set or change it.

Inherited from

ChatMiddlewareConfig.reasoning


resume?

ts
optional resume?: RunAgentResumeItem[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:366

Inherited from

ChatMiddlewareConfig.resume


resumeToolState?

ts
optional resumeToolState?: ChatResumeToolState;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:367

Inherited from

ChatMiddlewareConfig.resumeToolState


systemPrompts

ts
systemPrompts: SystemPrompt[];

Defined in: packages/ai/src/activities/chat/middleware/types.ts:364

Inherited from

ChatMiddlewareConfig.systemPrompts


wrapFetch?

ts
optional wrapFetch?: FetchWrapper;

Defined in: packages/ai/src/activities/chat/middleware/types.ts:388

Wraps the fetch of the next model call. A returned wrapper chains inside the wrappers before it, so it does not replace them. It applies to that call only. The next call starts again from the chat() option.

Inherited from

ChatMiddlewareConfig.wrapFetch