> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentium.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Models and messages

> Public models and messages signatures and configuration in @agentium/core 4.0.0.

Import these **91 exports** from `@agentium/core`. Read the [models and messages guide](/models/overview) for setup and behavior, or return to the [package reference](/api-reference/core).

A `?` marks an optional field. These are declarations for lookup; run the examples in the linked guide. Follow related-type links for Agentium types and source links for imported dependency types.

## anthropic

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function anthropic(modelId: string, config?: {
    apiKey?: string;
}): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## AnthropicProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/anthropic.ts)

```typescript theme={null}
export declare class AnthropicProvider implements ModelProvider {
    readonly providerId = "anthropic";
    readonly modelId: string;
    constructor(modelId: string, config?: AnthropicConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## AudioPart

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface AudioPart {
    type: "audio";
    /** Base64-encoded audio data. */
    data: string;
    mimeType?: "audio/mp3" | "audio/wav" | "audio/ogg" | "audio/webm";
}
```

## awsBedrock

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function awsBedrock(modelId: string, config?: AwsBedrockConfig): ModelProvider;
```

Related: [`AwsBedrockConfig`](/api-reference/core/models#awsbedrockconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## AwsBedrockConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/aws-bedrock.ts)

```typescript theme={null}
export interface AwsBedrockConfig {
    region?: string;
    accessKeyId?: string;
    secretAccessKey?: string;
    sessionToken?: string;
}
```

## AwsBedrockProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/aws-bedrock.ts)

```typescript theme={null}
/**
 * Generic AWS Bedrock provider using the Converse API from
 * `@aws-sdk/client-bedrock-runtime`. Works with any model available on
 * Bedrock (Anthropic, Meta, Mistral, Amazon Titan, etc.).
 *
 * For Claude-specific features (like extended thinking) prefer `AwsClaudeProvider`.
 */
export declare class AwsBedrockProvider implements ModelProvider {
    readonly providerId = "aws-bedrock";
    readonly modelId: string;
    constructor(modelId: string, config?: AwsBedrockConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`AwsBedrockConfig`](/api-reference/core/models#awsbedrockconfig), [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## awsClaude

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function awsClaude(modelId: string, config?: AwsClaudeConfig): ModelProvider;
```

Related: [`AwsClaudeConfig`](/api-reference/core/models#awsclaudeconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## AwsClaudeConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/aws-claude.ts)

```typescript theme={null}
export interface AwsClaudeConfig {
    awsAccessKey?: string;
    awsSecretKey?: string;
    awsRegion?: string;
    awsSessionToken?: string;
}
```

## AwsClaudeProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/aws-claude.ts)

```typescript theme={null}
/**
 * Claude models on AWS Bedrock via the `@anthropic-ai/bedrock-sdk`.
 *
 * Uses the Anthropic Messages API routed through AWS Bedrock — same message
 * format as the direct Anthropic API but authenticated with AWS credentials.
 */
export declare class AwsClaudeProvider implements ModelProvider {
    readonly providerId = "aws-claude";
    readonly modelId: string;
    constructor(modelId: string, config?: AwsClaudeConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`AwsClaudeConfig`](/api-reference/core/models#awsclaudeconfig), [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## azureFoundry

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function azureFoundry(modelId: string, config?: AzureFoundryConfig): ModelProvider;
```

Related: [`AzureFoundryConfig`](/api-reference/core/models#azurefoundryconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## AzureFoundryConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/azure-foundry.ts)

```typescript theme={null}
export interface AzureFoundryConfig {
    apiKey?: string;
    endpoint?: string;
    apiVersion?: string;
}
```

## AzureFoundryProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/azure-foundry.ts)

```typescript theme={null}
/**
 * Azure AI Foundry provider — access Phi, Llama, Mistral, Cohere and other
 * open-source models hosted on Azure's model catalog.
 *
 * Uses the standard OpenAI SDK pointed at the Azure AI Foundry endpoint, since
 * Azure AI Foundry exposes an OpenAI-compatible API. GPT-5.4+ / GPT-6 tool
 * calls use Responses when the endpoint supports it.
 *
 * Requires: `npm install openai`
 */
export declare class AzureFoundryProvider implements ModelProvider {
    readonly providerId = "azure-foundry";
    readonly modelId: string;
    constructor(modelId: string, config?: AzureFoundryConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`AzureFoundryConfig`](/api-reference/core/models#azurefoundryconfig), [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## azureOpenai

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function azureOpenai(modelId: string, config?: AzureOpenAIConfig): ModelProvider;
```

Related: [`AzureOpenAIConfig`](/api-reference/core/models#azureopenaiconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## AzureOpenAIConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/azure-openai.ts)

```typescript theme={null}
export interface AzureOpenAIConfig {
    apiKey?: string;
    endpoint?: string;
    deployment?: string;
    apiVersion?: string;
}
```

## AzureOpenAIProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/azure-openai.ts)

```typescript theme={null}
/**
 * OpenAI models hosted on Azure via the `openai` SDK's `AzureOpenAI` class.
 *
 * GPT-5.4+ / GPT-6 tool calls go through Azure's Responses API when available,
 * and fall back to Chat Completions with `reasoning_effort: "none"`.
 *
 * Requires: `npm install openai`
 */
export declare class AzureOpenAIProvider implements ModelProvider {
    readonly providerId = "azure-openai";
    readonly modelId: string;
    constructor(modelId: string, config?: AzureOpenAIConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`AzureOpenAIConfig`](/api-reference/core/models#azureopenaiconfig), [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## ChatMessage

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ChatMessage {
    role: MessageRole;
    content: MessageContent | null;
    toolCalls?: ToolCall[];
    toolCallId?: string;
    name?: string;
    /**
     * Opaque provider payload replayed on the next request. Anthropic needs the
     * original `thinking` / `redacted_thinking` blocks (with signatures) before
     * `tool_use`; Gemini 2.5/3 needs `thoughtSignature` on function-call parts.
     * Dropping these 400s a tools + reasoning loop.
     */
    providerExtras?: Record<string, unknown>;
}
```

Related: [`MessageContent`](/api-reference/core/models#messagecontent), [`MessageRole`](/api-reference/core/models#messagerole), [`ToolCall`](/api-reference/core/models#toolcall).

## choice

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/jev-sdk.ts)

```typescript theme={null}
/** Lazy TypeSafe `choice()`, or the wire-format object if the SDK is not installed. */
export declare function choice(instructions: unknown, criteria: Record<string, unknown>): unknown;
```

## CircuitBreaker

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/circuit-breaker.ts)

```typescript theme={null}
export declare class CircuitBreaker {
    constructor(config?: Partial<CircuitBreakerConfig>);
    get state(): CircuitState;
    canAttempt(): boolean;
    recordSuccess(): void;
    recordFailure(error: unknown): ErrorClassification;
    reset(): void;
    get metrics(): {
        state: CircuitState;
        failureCount: number;
        lastFailureTime: number;
    };
}
```

Related: [`CircuitBreakerConfig`](/api-reference/core/models#circuitbreakerconfig), [`CircuitState`](/api-reference/core/models#circuitstate), [`ErrorClassification`](/api-reference/core/models#errorclassification).

## CircuitBreakerConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/circuit-breaker.ts)

```typescript theme={null}
export interface CircuitBreakerConfig {
    failureThreshold: number;
    cooldownMs: number;
    halfOpenMaxAttempts: number;
    classifyError?: (error: unknown) => ErrorClassification;
}
```

Related: [`ErrorClassification`](/api-reference/core/models#errorclassification).

## CircuitState

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/circuit-breaker.ts)

```typescript theme={null}
export type CircuitState = "closed" | "open" | "half-open";
```

## classifyComplexity

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/model-router.ts)

```typescript theme={null}
export declare function classifyComplexity(messages: ChatMessage[], options?: ModelConfig & {
    tools?: ToolDefinition[];
}): number;
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## cohere

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function cohere(modelId: string, config?: CohereConfig): ModelProvider;
```

Related: [`CohereConfig`](/api-reference/core/models#cohereconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## CohereConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/cohere.ts)

```typescript theme={null}
export interface CohereConfig {
    apiKey?: string;
}
```

## CohereProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/cohere.ts)

```typescript theme={null}
/**
 * Cohere provider using the `cohere-ai` SDK (v2 Chat API).
 *
 * Falls back to the `openai` SDK pointed at Cohere's OpenAI-compatible
 * endpoint if the native SDK is not installed.
 */
export declare class CohereProvider implements ModelProvider {
    readonly providerId = "cohere";
    readonly modelId: string;
    constructor(modelId: string, config?: CohereConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`CohereConfig`](/api-reference/core/models#cohereconfig), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## ContentPart

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export type ContentPart = TextPart | ImagePart | AudioPart | FilePart;
```

Related: [`AudioPart`](/api-reference/core/models#audiopart), [`FilePart`](/api-reference/core/models#filepart), [`ImagePart`](/api-reference/core/models#imagepart), [`TextPart`](/api-reference/core/models#textpart).

## deepseek

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function deepseek(modelId: string, config?: DeepSeekConfig): ModelProvider;
```

Related: [`DeepSeekConfig`](/api-reference/core/models#deepseekconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## DeepSeekConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/deepseek.ts)

```typescript theme={null}
export type DeepSeekConfig = OpenAICompatibleConfig;
```

Related: [`OpenAICompatibleConfig`](/api-reference/core/models#openaicompatibleconfig).

## DeepSeekProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/deepseek.ts)

```typescript theme={null}
export declare class DeepSeekProvider extends OpenAICompatibleProvider implements ModelProvider {
    constructor(modelId: string, config?: DeepSeekConfig);
}
```

Related: [`DeepSeekConfig`](/api-reference/core/models#deepseekconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`OpenAICompatibleProvider`](/api-reference/core/models#openaicompatibleprovider).

## defaultClassifyError

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/circuit-breaker.ts)

```typescript theme={null}
export declare function defaultClassifyError(error: unknown): ErrorClassification;
```

Related: [`ErrorClassification`](/api-reference/core/models#errorclassification).

## ErrorClassification

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/circuit-breaker.ts)

```typescript theme={null}
export type ErrorClassification = "retry" | "cascade" | "fatal";
```

## FallbackProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/fallback-provider.ts)

```typescript theme={null}
export declare class FallbackProvider implements ModelProvider {
    readonly providerId = "fallback";
    readonly modelId: string;
    constructor(config: FallbackProviderConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
    getBreaker(providerKey: string): CircuitBreaker | undefined;
    get providerKeys(): string[];
    resetAll(): void;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`CircuitBreaker`](/api-reference/core/models#circuitbreaker), [`FallbackProviderConfig`](/api-reference/core/models#fallbackproviderconfig), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## FallbackProviderConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/fallback-provider.ts)

```typescript theme={null}
export interface FallbackProviderConfig {
    providers: ModelProvider[];
    circuitBreaker?: Partial<CircuitBreakerConfig>;
    onFallback?: (from: string, to: string, error: unknown) => void;
}
```

Related: [`CircuitBreakerConfig`](/api-reference/core/models#circuitbreakerconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## FilePart

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface FilePart {
    type: "file";
    /** Base64-encoded file data OR a URL. */
    data: string;
    mimeType: string;
    filename?: string;
}
```

## geminiVisionLive

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
/**
 * Shorthand for `new GoogleVisionLiveProvider(modelId, config)`.
 *
 * @example
 * const agent = new VisionAgent({
 *   provider: geminiVisionLive(),
 * });
 */
export declare function geminiVisionLive(modelId?: string, config?: GoogleVisionLiveConfig): VisionProvider;
```

Related: [`GoogleVisionLiveConfig`](/api-reference/core/vision#googlevisionliveconfig), [`VisionProvider`](/api-reference/core/vision#visionprovider).

## getTextContent

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
/** Extract the text content from a MessageContent value. */
export declare function getTextContent(content: MessageContent | null): string;
```

Related: [`MessageContent`](/api-reference/core/models#messagecontent).

## google

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function google(modelId: string, config?: {
    apiKey?: string;
}): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## googleLive

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
/**
 * Shorthand for `new GoogleLiveProvider(modelId, config)`.
 *
 * @example
 * const agent = new VoiceAgent({
 *   provider: googleLive(),
 * });
 */
export declare function googleLive(modelId?: string, config?: GoogleLiveConfig): RealtimeProvider;
```

Related: [`GoogleLiveConfig`](/api-reference/core/voice#googleliveconfig), [`RealtimeProvider`](/api-reference/core/voice#realtimeprovider).

## GoogleProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/google.ts)

```typescript theme={null}
export declare class GoogleProvider implements ModelProvider {
    readonly providerId = "google";
    readonly modelId: string;
    constructor(modelId: string, config?: GoogleConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## ImagePart

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ImagePart {
    type: "image";
    /** Base64-encoded image data OR a URL. */
    data: string;
    mimeType?: "image/png" | "image/jpeg" | "image/gif" | "image/webp";
}
```

## isMultiModal

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
/** Check if content has multi-modal parts. */
export declare function isMultiModal(content: MessageContent | null): content is ContentPart[];
```

Related: [`ContentPart`](/api-reference/core/models#contentpart), [`MessageContent`](/api-reference/core/models#messagecontent).

## jev

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

````typescript theme={null}
/**
 * Jev (TypeSafe System One). Not a chat model — pass `questions`,
 * `structuredOutput`, or closed-set tools.
 *
 * @example
 * ```ts
 * const agent = new Agent({ name: "triage", model: jev("jev-latest") });
 * await agent.run(ticket, { questions: { urgent: noul("Is this urgent?") } });
 * ```
 */
export declare function jev(modelId?: string, config?: JevConfig): ModelProvider;
````

Related: [`JevConfig`](/api-reference/core/models#jevconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## JevConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/jev.ts)

```typescript theme={null}
export interface JevConfig {
    /** TypeSafe API key. Falls back to `TYPESAFE_API_KEY`. */
    apiKey?: string;
    /** TypeSafe API root. Falls back to `TYPESAFE_BASE_URL`, then `https://api.typesafe.ai`. */
    baseURL?: string;
    /**
     * Default TypeSafe questions (`choice` / `noul` / `score`).
     * Overridden by `agent.run(input, { questions })`.
     */
    questions?: JevQuestions;
}
```

Related: [`JevQuestions`](/api-reference/core/models#jevquestions).

## JevProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/jev.ts)

```typescript theme={null}
/**
 * Jev (TypeSafe System One) — decisions, not chat.
 *
 * `generate()` maps messages → `state`, asks typed questions, and returns
 * JSON answers (or a single closed-set `tool_calls` finish).
 */
export declare class JevProvider implements ModelProvider {
    readonly providerId = "jev";
    readonly modelId: string;
    /** Tests assign a mock client here. */
    client: any;
    constructor(modelId?: string, config?: JevConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`JevConfig`](/api-reference/core/models#jevconfig), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## JevQuestions

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/jev-sdk.ts)

```typescript theme={null}
export type JevQuestions = Record<string, unknown>;
```

## MessageContent

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
/** Convenience: plain string, or an array of multi-modal content parts. */
export type MessageContent = string | ContentPart[];
```

Related: [`ContentPart`](/api-reference/core/models#contentpart).

## MessageRole

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export type MessageRole = "system" | "user" | "assistant" | "tool";
```

## meta

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function meta(modelId: string, config?: MetaLlamaConfig): ModelProvider;
```

Related: [`MetaLlamaConfig`](/api-reference/core/models#metallamaconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## MetaLlamaConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/meta-llama.ts)

```typescript theme={null}
export type MetaLlamaConfig = OpenAICompatibleConfig;
```

Related: [`OpenAICompatibleConfig`](/api-reference/core/models#openaicompatibleconfig).

## MetaLlamaProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/meta-llama.ts)

```typescript theme={null}
export declare class MetaLlamaProvider extends OpenAICompatibleProvider implements ModelProvider {
    constructor(modelId: string, config?: MetaLlamaConfig);
}
```

Related: [`MetaLlamaConfig`](/api-reference/core/models#metallamaconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`OpenAICompatibleProvider`](/api-reference/core/models#openaicompatibleprovider).

## mistral

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function mistral(modelId: string, config?: MistralConfig): ModelProvider;
```

Related: [`MistralConfig`](/api-reference/core/models#mistralconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## MistralConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/mistral.ts)

```typescript theme={null}
export interface MistralConfig {
    apiKey?: string;
    baseURL?: string;
}
```

## MistralProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/mistral.ts)

```typescript theme={null}
/**
 * Mistral provider using the `@mistralai/mistralai` SDK.
 *
 * Falls back to the `openai` SDK pointed at Mistral's OpenAI-compatible
 * endpoint (https://api.mistral.ai/v1) if the native SDK is not installed.
 */
export declare class MistralProvider implements ModelProvider {
    readonly providerId = "mistral";
    readonly modelId: string;
    constructor(modelId: string, config?: MistralConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`MistralConfig`](/api-reference/core/models#mistralconfig), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## ModelConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ModelConfig {
    /** Cooperative cancellation, forwarded by compatible providers. */
    signal?: AbortSignal;
    temperature?: number;
    maxTokens?: number;
    topP?: number;
    stop?: string[];
    responseFormat?: "text" | "json" | {
        type: "json_schema";
        schema: Record<string, unknown>;
        name?: string;
    };
    /** Per-request API key override. When provided, the provider uses this key instead of the one set at construction. */
    apiKey?: string;
    /** Enable extended thinking / reasoning. */
    reasoning?: ReasoningConfig;
    /** Provider-specific request options (cache, compaction, Gemini grounding). */
    providerOptions?: ProviderOptions;
    /**
     * Jev questions for this call (`choice` / `noul` / `score`).
     * Ignored by chat providers.
     */
    questions?: Record<string, unknown>;
}
```

Related: [`ReasoningConfig`](/api-reference/core/models#reasoningconfig).

## ModelProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/provider.ts)

```typescript theme={null}
export interface ModelProvider {
    readonly providerId: string;
    readonly modelId: string;
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## modelRegistry

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare const modelRegistry: ModelRegistry;
```

Related: [`ModelRegistry`](/api-reference/core/models#modelregistry).

## ModelRegistry

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare class ModelRegistry {
    register(providerId: string, factory: ProviderFactory): void;
    resolve(providerId: string, modelId: string, config?: any): ModelProvider;
    has(providerId: string): boolean;
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## ModelResponse

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ModelResponse {
    message: ChatMessage;
    usage: TokenUsage;
    finishReason: "stop" | "tool_calls" | "length" | "content_filter";
    raw: unknown;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`TokenUsage`](/api-reference/core/models#tokenusage).

## ModelRouter

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/model-router.ts)

```typescript theme={null}
export declare class ModelRouter implements ModelProvider {
    readonly providerId = "router";
    readonly modelId: string;
    constructor(config: ModelRouterConfig);
    selectTier(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): {
        tierIndex: number;
        complexity: number;
        model: ModelProvider;
    };
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
    getOutcomeStats(): {
        tierIndex: number;
        total: number;
        successes: number;
        rate: number;
    }[];
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`ModelRouterConfig`](/api-reference/core/models#modelrouterconfig), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## ModelRouterConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/model-router.ts)

```typescript theme={null}
export interface ModelRouterConfig {
    tiers: ModelTier[];
    classifier?: "builtin" | ModelProvider;
    fallbackTier?: number;
    rules?: RoutingRule[];
    outcomeTracking?: boolean;
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelTier`](/api-reference/core/models#modeltier), [`RoutingRule`](/api-reference/core/models#routingrule).

## ModelTier

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/model-router.ts)

```typescript theme={null}
export interface ModelTier {
    model: ModelProvider;
    maxComplexity: number;
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## noul

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/jev-sdk.ts)

```typescript theme={null}
/** Lazy TypeSafe `noul()`, or the wire-format object if the SDK is not installed. */
export declare function noul(instructions?: unknown, criteria?: unknown): unknown;
```

## ollama

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function ollama(modelId: string, config?: {
    host?: string;
}): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## OllamaProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/ollama.ts)

```typescript theme={null}
export declare class OllamaProvider implements ModelProvider {
    readonly providerId = "ollama";
    readonly modelId: string;
    constructor(modelId: string, config?: OllamaConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## openai

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function openai(modelId: string, config?: {
    apiKey?: string;
    baseURL?: string;
}): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## OpenAICompatibleConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/openai-compatible.ts)

```typescript theme={null}
export interface OpenAICompatibleConfig {
    apiKey?: string;
    baseURL?: string;
}
```

## OpenAICompatibleProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/openai-compatible.ts)

```typescript theme={null}
/**
 * Generic provider for any API that follows the OpenAI Chat Completions
 * format. Subclasses only need to supply a `providerId`, default `baseURL`,
 * and the environment-variable name that holds the API key.
 *
 * GPT-5.4+ / GPT-6 with tools use `/v1/responses` when the gateway exposes it
 * (LiteLLM, OpenRouter, Azure). Otherwise Chat Completions gets
 * `reasoning_effort: "none"` so function tools do not 400.
 */
export declare class OpenAICompatibleProvider implements ModelProvider {
    readonly providerId: string;
    readonly modelId: string;
    constructor(providerId: string, modelId: string, defaults: ProviderDefaults, config?: OpenAICompatibleConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`OpenAICompatibleConfig`](/api-reference/core/models#openaicompatibleconfig), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## OpenAIProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/openai.ts)

```typescript theme={null}
export declare class OpenAIProvider implements ModelProvider {
    readonly providerId = "openai";
    readonly modelId: string;
    constructor(modelId: string, config?: OpenAIConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## openaiRealtime

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
/**
 * Shorthand for `new OpenAIRealtimeProvider(modelId, config)`.
 *
 * @example
 * const agent = new VoiceAgent({
 *   provider: openaiRealtime("gpt-realtime-2.1"),
 * });
 */
export declare function openaiRealtime(modelId?: string, config?: OpenAIRealtimeConfig): RealtimeProvider;
```

Related: [`OpenAIRealtimeConfig`](/api-reference/core/voice#openairealtimeconfig), [`RealtimeProvider`](/api-reference/core/voice#realtimeprovider).

## perplexity

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function perplexity(modelId: string, config?: PerplexityConfig): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`PerplexityConfig`](/api-reference/core/models#perplexityconfig).

## PerplexityConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/perplexity.ts)

```typescript theme={null}
export interface PerplexityConfig {
    apiKey?: string;
    baseURL?: string;
    /** Search-specific options (only available with the native SDK). */
    search?: PerplexitySearchOptions;
}
```

Related: [`PerplexitySearchOptions`](/api-reference/core/models#perplexitysearchoptions).

## PerplexityProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/perplexity.ts)

```typescript theme={null}
/**
 * Perplexity provider using the `@perplexity-ai/perplexity_ai` SDK.
 *
 * Falls back to the `openai` SDK pointed at Perplexity's OpenAI-compatible
 * endpoint (https://api.perplexity.ai) if the native SDK is not installed.
 *
 * The native SDK unlocks search-specific parameters (domain filtering,
 * recency, academic mode) and typed citation/source responses.
 */
export declare class PerplexityProvider implements ModelProvider {
    readonly providerId = "perplexity";
    readonly modelId: string;
    constructor(modelId: string, config?: PerplexityConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`PerplexityConfig`](/api-reference/core/models#perplexityconfig), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## PerplexitySearchOptions

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/perplexity.ts)

```typescript theme={null}
export interface PerplexitySearchOptions {
    /** Search mode: web (default), academic, or SEC filings. */
    searchMode?: "web" | "academic" | "sec";
    /** Restrict search to specific domains. */
    searchDomainFilter?: string[];
    /** Restrict search to a recent time window. */
    searchRecencyFilter?: "hour" | "day" | "week" | "month" | "year";
    /** Only return results after this date (YYYY-MM-DD). */
    searchAfterDate?: string;
    /** Only return results before this date (YYYY-MM-DD). */
    searchBeforeDate?: string;
    /** Return images in the response. */
    returnImages?: boolean;
    /** Return related questions. */
    returnRelatedQuestions?: boolean;
    /** Disable search entirely (use model as a pure LLM). */
    disableSearch?: boolean;
    /** Web search context size: low (default), medium, or high. */
    searchContextSize?: "low" | "medium" | "high";
}
```

## ReasoningConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ReasoningConfig {
    enabled: boolean;
    /**
     * Reasoning effort for OpenAI-family models (o-series, GPT-5.x, GPT-6).
     * `none` keeps function tools on Chat Completions; any other value with
     * tools is sent through the Responses API on GPT-5.4+ / GPT-6.
     * Anthropic maps this onto `output_config.effort`. DeepSeek accepts `low` / `high` / `max`.
     */
    effort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
    /** Token budget for thinking (Anthropic / Gemini / Cohere). */
    budgetTokens?: number;
    /** OpenAI Responses summary. Default `detailed`. */
    summary?: "auto" | "concise" | "detailed";
    /** GPT-5.6 / GPT-6 Responses execution mode. */
    mode?: "standard" | "pro";
    /** Which reasoning items later turns send back. Default is the model's own. */
    context?: "auto" | "current_turn" | "all_turns";
}
```

## ResponsesReplayEnvelope

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
/** JSON-persistable Responses output; never expose opaque items as display text. */
export interface ResponsesReplayEnvelope {
    version: 1;
    /** Normalized endpoint origin/path; credentials and query strings are excluded. */
    owner: string;
    /** Model identity when produced by an adapter. Switching it needs an explicit new continuation. */
    model?: string;
    items: unknown[];
}
```

## RoutingRule

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/model-router.ts)

```typescript theme={null}
export interface RoutingRule {
    condition: (messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }) => boolean;
    tier: number;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ToolDefinition`](/api-reference/core/models#tooldefinition).

## score

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/jev-sdk.ts)

```typescript theme={null}
/** Lazy TypeSafe `score()`. Criteria is an ordered rubric of at least two levels. */
export declare function score(instructions: unknown, criteria: unknown[]): unknown;
```

## StreamChunk

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export type StreamChunk = {
    type: "text";
    text: string;
} | {
    type: "thinking";
    text: string;
} | {
    type: "tool_call_start";
    toolCall: {
        id: string;
        name: string;
    };
} | {
    type: "tool_call_delta";
    toolCallId: string;
    argumentsDelta: string;
} | {
    type: "tool_call_end";
    toolCallId: string;
} | {
    type: "finish";
    finishReason: string;
    usage?: TokenUsage;
    providerExtras?: Record<string, unknown>;
};
```

Related: [`TokenUsage`](/api-reference/core/models#tokenusage).

## TextPart

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface TextPart {
    type: "text";
    text: string;
}
```

## TokenUsage

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface TokenUsage {
    promptTokens: number;
    completionTokens: number;
    totalTokens: number;
    reasoningTokens?: number;
    cachedTokens?: number;
    audioInputTokens?: number;
    audioOutputTokens?: number;
    /** Raw usage / metrics object returned by the underlying provider API (unmodified). */
    providerMetrics?: Record<string, unknown>;
}
```

## ToolCall

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ToolCall {
    id: string;
    name: string;
    arguments: Record<string, unknown>;
}
```

## ToolDefinition

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/types.ts)

```typescript theme={null}
export interface ToolDefinition {
    name: string;
    description: string;
    parameters: Record<string, unknown>;
    strict?: boolean;
}
```

## vercel

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function vercel(modelId: string, config?: VercelConfig): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`VercelConfig`](/api-reference/core/models#vercelconfig).

## VercelConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/vercel.ts)

```typescript theme={null}
export type VercelConfig = OpenAICompatibleConfig;
```

Related: [`OpenAICompatibleConfig`](/api-reference/core/models#openaicompatibleconfig).

## VercelProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/vercel.ts)

```typescript theme={null}
export declare class VercelProvider extends OpenAICompatibleProvider implements ModelProvider {
    constructor(modelId: string, config?: VercelConfig);
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`OpenAICompatibleProvider`](/api-reference/core/models#openaicompatibleprovider), [`VercelConfig`](/api-reference/core/models#vercelconfig).

## vertex

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function vertex(modelId: string, config?: {
    project?: string;
    location?: string;
    credentials?: string;
}): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider).

## VertexAIConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/vertex.ts)

```typescript theme={null}
export interface VertexAIConfig {
    project?: string;
    location?: string;
    /** Service account key JSON string or path (optional — uses ADC by default). */
    credentials?: string;
}
```

## VertexAIProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/vertex.ts)

```typescript theme={null}
/**
 * Vertex AI provider using Google's @google/genai SDK in Vertex mode.
 *
 * Authentication (in order of precedence):
 *   1. Explicit `project` + `location` in config
 *   2. GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION env vars
 *   3. Application Default Credentials (gcloud auth)
 */
export declare class VertexAIProvider implements ModelProvider {
    readonly providerId = "vertex";
    readonly modelId: string;
    constructor(modelId: string, config?: VertexAIConfig);
    generate(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): Promise<ModelResponse>;
    stream(messages: ChatMessage[], options?: ModelConfig & {
        tools?: ToolDefinition[];
    }): AsyncGenerator<StreamChunk>;
}
```

Related: [`ChatMessage`](/api-reference/core/models#chatmessage), [`ModelConfig`](/api-reference/core/models#modelconfig), [`ModelProvider`](/api-reference/core/models#modelprovider), [`ModelResponse`](/api-reference/core/models#modelresponse), [`StreamChunk`](/api-reference/core/models#streamchunk), [`ToolDefinition`](/api-reference/core/models#tooldefinition), [`VertexAIConfig`](/api-reference/core/models#vertexaiconfig).

## withFallback

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/fallback-provider.ts)

```typescript theme={null}
export declare function withFallback(providers: ModelProvider[], config?: Omit<FallbackProviderConfig, "providers">): FallbackProvider;
```

Related: [`FallbackProvider`](/api-reference/core/models#fallbackprovider), [`FallbackProviderConfig`](/api-reference/core/models#fallbackproviderconfig), [`ModelProvider`](/api-reference/core/models#modelprovider).

## xai

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/registry.ts)

```typescript theme={null}
export declare function xai(modelId: string, config?: XAIConfig): ModelProvider;
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`XAIConfig`](/api-reference/core/models#xaiconfig).

## XAIConfig

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/xai.ts)

```typescript theme={null}
export type XAIConfig = OpenAICompatibleConfig;
```

Related: [`OpenAICompatibleConfig`](/api-reference/core/models#openaicompatibleconfig).

## XAIProvider

[Source](https://github.com/agentiumOS/agentium/blob/v4.0.0/packages/core/src/models/providers/xai.ts)

```typescript theme={null}
export declare class XAIProvider extends OpenAICompatibleProvider implements ModelProvider {
    constructor(modelId: string, config?: XAIConfig);
}
```

Related: [`ModelProvider`](/api-reference/core/models#modelprovider), [`OpenAICompatibleProvider`](/api-reference/core/models#openaicompatibleprovider), [`XAIConfig`](/api-reference/core/models#xaiconfig).

## Supporting types

These local shapes appear in public signatures but are not named exports of this entrypoint.

### AnthropicConfig

```typescript theme={null}
interface AnthropicConfig {
    apiKey?: string;
}
```

### GoogleConfig

```typescript theme={null}
interface GoogleConfig {
    apiKey?: string;
}
```

### ProviderOptions

```typescript theme={null}
/** Provider request options that are not shared sampling knobs. */
export interface ProviderOptions {
    /** Anthropic: cache the system prompt (`cache_control: ephemeral`). */
    promptCache?: boolean;
    /** OpenAI Responses `prompt_cache_retention`. */
    promptCacheRetention?: "in_memory" | "24h";
    /**
     * Anthropic server compaction once input exceeds this many tokens.
     * Values under 50000 are raised to 50000. Requires the compaction beta.
     */
    compactionTokens?: number;
    /** Anthropic: clear old tool results server-side. Requires the context-management beta. */
    clearToolResults?: boolean;
    /** Gemini media token budget. */
    mediaResolution?: "low" | "medium" | "high" | "ultra_high";
    /** Gemini explicit cache resource name (`cachedContents/...`). */
    cachedContent?: string;
    /** Gemini Google Search grounding tool. */
    googleSearch?: boolean;
}
```

### ProviderFactory

```typescript theme={null}
type ProviderFactory = (modelId: string, config?: any) => ModelProvider;
```

### OllamaConfig

```typescript theme={null}
interface OllamaConfig {
    host?: string;
}
```

### ProviderDefaults

```typescript theme={null}
interface ProviderDefaults {
    baseURL: string;
    apiKeyEnvVar: string;
}
```

### OpenAIConfig

```typescript theme={null}
interface OpenAIConfig {
    apiKey?: string;
    baseURL?: string;
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.