LLM Connectors

An agent never talks to a model provider directly. It calls a Fabric interface — llm://<name or tag> — and the interface's connector translates the call into the provider's API. Switching an agent from one model or provider to another is therefore a configuration change, not a code change.

This article lists the connector extensions, their interface types and key properties, and explains how agents select an interface, how thinking levels and prompt caching map to each provider, and how MCP interfaces add external tools. For creating an interface in Fabric Studio, see the Fabric article AI LLM Interface. For installation order and prerequisites, see Installation and Setup.

Connector Extensions

Each provider is a separate K2exchange extension. Install the ones you need next to the aifusion extension, then create interfaces of the types they add.

Extension Interface types Notes
Anthropic (anthropic, 3.0.4) Anthropic (LLM) Claude models through the Anthropic API. No embedding models.
AWS Bedrock (aws-bedrock, 3.0.2) AWSBedrockLLM (LLM), AWSBedrockEmbedding (Embedding), AWSBedrockKnowledgeBase, BedrockLambdaLLM (LLM), BedrockLambdaEmbedding (Embedding) Foundation models through the Bedrock Converse API, including Bedrock Guardrails. The Knowledge Base type retrieves from an AWS Bedrock Knowledge Base. The BedrockLambda types reach Bedrock through an HTTP endpoint (for example an API gateway) instead of the AWS SDK.
Google GenAI (google-genai) GoogleLLM (LLM), GoogleEmbedding (Embedding) Gemini and embedding models through Vertex AI.
OpenAI (openai, 3.0.1) OpenAI (LLM), OpenAIEmbedding (Embedding) OpenAI models, and any OpenAI-compatible endpoint (for example Azure OpenAI or a self-hosted inference server) through the Host property.
Ollama (ollama, 3.0.1) — preview OllamaLLM (LLM), OllamaEmbedding (Embedding) Open-source models served by Ollama on your own infrastructure.
MCP Client (mcp, 1.0.1) — preview Mcp Connects to MCP servers, whose tools agents can call. See MCP Interfaces.

The LLM connectors require Fabric 8.4.0 or later. They do not depend on the aifusion extension, but when both are installed, aifusion must be 3.0.4 or later.

Each connector caches one client per interface configuration. Changing any property of an interface creates a new client on the next request; deploying any Data Product (LU) clears the cache.

Key Interface Properties

All AI interface types have a Tag property, used to select the interface (see Selecting an Interface).

Anthropic

Property Description
Model The Claude model ID. Required.
API Key The Anthropic API key. Required.
Max Tokens Maximum response length. Required; default 4096. Reasoning and answer share this budget on Claude 4.6 and later — see Thinking Levels.
Temperature Default -1, which means "do not send". Newer Claude models reject a temperature value; requests with thinking on never send it.
Host, Version (override) Optional endpoint and anthropic-version header overrides.
Timeout (MS) Default 180000.

AWS Bedrock

Property Description
AuthenticationType default — the IAM role of the Fabric instance or pod (recommended on AWS); credentials — explicit AccessKey and SecretAccessKey.
Model, Region The model ID or ARN, and the AWS region where it is enabled.
MaxTokens, Temperature, Timeout, Host Response length, randomness, timeout, and an optional custom endpoint (for example a VPC endpoint).
GuardrailID, GuardrailVersion Optional Bedrock Guardrail to apply to every call (version default DRAFT).
s3BucketName, s3Interface, s3InputPrefix, s3OutputPrefix, roleArn Batch inference only — see Batch Inference.

The IAM identity needs bedrock:InvokeModel and bedrock:InvokeModelWithResponseStream, plus bedrock:ApplyGuardrail when a guardrail is set. AWSBedrockEmbedding takes ModelType (Amazon Titan Embed or Cohere Embed) or a custom Model, and Region. AWSBedrockKnowledgeBase takes KbId and Region.

Google GenAI

Property Description
AuthenticationType credentials-json (default) — the service-account JSON in CREDENTIAL, stored through Fabric's secret manager; credentials-env — Google Application Default Credentials (GKE Workload Identity, Cloud Run and so on).
Project_ID, Location_ID The GCP project ID and region.
Model, MaxTokens, Temperature The Gemini model and generation settings.
GCSBucketName, GCSInterface, GCSInputPrefix, GCSOutputPrefix Batch inference only.

GoogleEmbedding adds Type, the embedding task type (RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION, CLUSTERING).

OpenAI

Property Description
AuthenticationType, Token credentials — the API key in Token; default — credentials from Fabric's secret manager or environment variables.
Model, MaxTokens, Temperature, Timeout The model and generation settings.
Host Leave empty for the OpenAI API. Set it to use an OpenAI-compatible service.

OpenAIEmbedding takes AuthenticationType, Token, Model and Host.

Ollama (preview)

OllamaLLM takes HOST, PORT (default 11434), Path (default /api/chat), ProtocolType, optional HTTP authentication (Basic, Bearer or OAuth2) for an Ollama behind a gateway, Model (exactly as shown by ollama list), Temperature and Think. OllamaEmbedding uses the /api/embed path.

Selecting an Interface

The default Tag

Agents normally use the default interface. llm://default resolves to the interface whose Tag is default; more generally, llm://<id> resolves to the interface with that name, then to an interface with that tag, then to the default one (see AI LLM Interface).

  • Keep exactly one LLM interface tagged default in each environment. New Anthropic and OllamaLLM interfaces are created with the Tag default, so change it when you add a second one.
  • The default interface must be active in the environment the agent runs in. If none is, agent calls to llm://default fail with an unsupported-interface error.
  • Because default is resolved at run time, you can point the same agents at a different model per environment (for example a cheaper model in QA) without editing any agent.

Per Agent, Per Task and Per Turn

Where What it controls
settings.llm_interface The interface an agent uses for its reasoning loop. Default default. Sub-agents use their own settings.llm_interface, so a sub-agent can run on a different model from its parent.
settings.compaction_interface, settings.chat_name_interface The interfaces for context-compaction summaries and chat titles. Both fall back to llm_interface. Point them at a cheaper model. See Sessions and Context.
interface input of the aifusion.Agent flow or AgentInvoke actor Overrides the main agent's llm_interface for one turn. See Invoking Agents.
settings:
  llm_interface: claude_sonnet        # an interface name or tag; "default" if omitted
  compaction_interface: claude_haiku
  chat_name_interface: claude_haiku

Thinking Levels

settings.thinking sets how hard the model reasons before answering: off (default), low, medium, high, xhigh or max. It is a provider-neutral intensity, not a token budget; each connector maps it to its own API and clamps when the provider has no exact equivalent.

Level Anthropic / Bedrock (Claude 4.6 and later) Anthropic / Bedrock (earlier Claude) OpenAI Google Gemini
off thinking explicitly disabled no thinking no reasoning no thinking
low effort low 2,048-token budget low 2,048-token budget
medium effort medium 8,192-token budget medium 8,192-token budget
high effort high 16,384-token budget high 24,576-token budget
xhigh effort xhigh 16,384-token budget xhigh dynamic (model decides)
max effort max 16,384-token budget xhigh (OpenAI has no max) dynamic (model decides)
  • Ollama has no intensity dial: any level other than off turns thinking on.
  • xhigh and max need Anthropic connector 3.0.3 or later, or Bedrock, OpenAI or Google GenAI connector 3.0.1 or later. Older connectors ignore or mis-map them.
  • xhigh is the recommended level for agentic Claude agents that loop over tools or delegate. max costs considerably more for a small gain; high suits simple single-domain agents.
  • Thinking shares the response budget. On Claude 4.6 and later, reasoning and answer both come out of the max-tokens budget; the connectors raise it to at least 16,000 when thinking is on. A tight budget at a high level can produce a truncated answer.
  • off really is off. Claude 4.6 and later reason by default, so the connectors send an explicit "disabled" for off.
  • An unrecognized level (a typo) is logged and treated as off.
  • Reasoning is streamed to the client as thinking_delta events. The level applies to the main agent's LLM calls.

Prompt Caching

settings.use_cache (default true) asks the connector to cache the stable prompt prefix — the system prompt and tool definitions — so repeated calls in a session cost less and respond faster.

Provider Behavior
Anthropic, AWS Bedrock Explicit cache points on the system prompt and tools when use_cache is on. Cache reads and writes are reported in token usage.
Google GenAI Implicit caching only, applied by Google. use_cache has no effect.
OpenAI, Ollama The connector does not add cache points; use_cache has no effect.

Anything that changes the prompt prefix — a different skill set, a context compaction — misses the cache for that call.

Embeddings

Embedding interfaces (OpenAIEmbedding, AWSBedrockEmbedding, BedrockLambdaEmbedding, GoogleEmbedding, OllamaEmbedding) are used through the Embed actor in Broadway flows — for example a flow tool that runs a semantic search. Embed takes the interface, an input that is either one string or an array of strings (batched in one request when the provider supports it), and an optional dimensionsOverride; it returns embeddings, total_tokens and dimensions. Anthropic offers no embedding models.

Batch Inference

Several connectors support the providers' asynchronous batch APIs, for offline workloads where no one waits for the answer. Each needs different configuration on the LLM interface:

Provider Batch support
Anthropic Message Batches API. No external storage needed.
OpenAI Files API upload plus the Batch API. No external storage needed.
AWS Bedrock Batch inference jobs through S3: set s3BucketName, s3Interface (a Fabric S3 interface) and roleArn — a role Bedrock can assume (its trust policy must allow bedrock.amazonaws.com).
Google GenAI Vertex AI batch prediction through GCS: set GCSBucketName and GCSInterface (a Fabric GCS interface); the service account needs Storage Object Admin on the bucket.
Ollama Not supported.

MCP Interfaces

The MCP Client extension (preview) adds the Mcp interface type, which connects Fabric to a server implementing the Model Context Protocol. An agent can use every tool the server exposes:

mcp_interfaces:
  - crm_mcp            # the Mcp interface name

The server's tools are advertised to the model as MCP__<interface>__<tool> — for example MCP__crm_mcp__get_open_tickets — and called through the interface. Tool hooks and the tool-name guard apply to them like any other tool. See Tools.

Property Description
ProtocolType, HOST, PORT, Path The server's address and endpoint path. Use HTTPS outside local development.
TransportType HTTP_STREAMABLE.
AuthenticationType, Token None, Basic, Bearer, PAT or OAuth2 flows, with the matching credential fields.
RequestTimeout Seconds; default 10. Increase it for slow tools.

Fabric 8.4 and later can expose Data Products as MCP servers, so an agent in one environment can use another Data Product's capabilities as MCP tools. See Data Product MCP.

The extension also provides Broadway actors (McpListTools, McpCallTool, McpListPrompts, McpGetPrompt, McpListResources, McpReadResource) for using MCP servers from your own flows.

Credentials and Secrets

Store provider keys and credentials through Fabric's secret manager or environment-level interface overrides, not in plain text in the project. Prefer identity-based authentication where the platform offers it — the instance IAM role for Bedrock, Application Default Credentials for Google. See Secrets Management and Security and Privacy.

Next article: Security and Privacy

LLM Connectors

An agent never talks to a model provider directly. It calls a Fabric interface — llm://<name or tag> — and the interface's connector translates the call into the provider's API. Switching an agent from one model or provider to another is therefore a configuration change, not a code change.

This article lists the connector extensions, their interface types and key properties, and explains how agents select an interface, how thinking levels and prompt caching map to each provider, and how MCP interfaces add external tools. For creating an interface in Fabric Studio, see the Fabric article AI LLM Interface. For installation order and prerequisites, see Installation and Setup.

Connector Extensions

Each provider is a separate K2exchange extension. Install the ones you need next to the aifusion extension, then create interfaces of the types they add.

Extension Interface types Notes
Anthropic (anthropic, 3.0.4) Anthropic (LLM) Claude models through the Anthropic API. No embedding models.
AWS Bedrock (aws-bedrock, 3.0.2) AWSBedrockLLM (LLM), AWSBedrockEmbedding (Embedding), AWSBedrockKnowledgeBase, BedrockLambdaLLM (LLM), BedrockLambdaEmbedding (Embedding) Foundation models through the Bedrock Converse API, including Bedrock Guardrails. The Knowledge Base type retrieves from an AWS Bedrock Knowledge Base. The BedrockLambda types reach Bedrock through an HTTP endpoint (for example an API gateway) instead of the AWS SDK.
Google GenAI (google-genai) GoogleLLM (LLM), GoogleEmbedding (Embedding) Gemini and embedding models through Vertex AI.
OpenAI (openai, 3.0.1) OpenAI (LLM), OpenAIEmbedding (Embedding) OpenAI models, and any OpenAI-compatible endpoint (for example Azure OpenAI or a self-hosted inference server) through the Host property.
Ollama (ollama, 3.0.1) — preview OllamaLLM (LLM), OllamaEmbedding (Embedding) Open-source models served by Ollama on your own infrastructure.
MCP Client (mcp, 1.0.1) — preview Mcp Connects to MCP servers, whose tools agents can call. See MCP Interfaces.

The LLM connectors require Fabric 8.4.0 or later. They do not depend on the aifusion extension, but when both are installed, aifusion must be 3.0.4 or later.

Each connector caches one client per interface configuration. Changing any property of an interface creates a new client on the next request; deploying any Data Product (LU) clears the cache.

Key Interface Properties

All AI interface types have a Tag property, used to select the interface (see Selecting an Interface).

Anthropic

Property Description
Model The Claude model ID. Required.
API Key The Anthropic API key. Required.
Max Tokens Maximum response length. Required; default 4096. Reasoning and answer share this budget on Claude 4.6 and later — see Thinking Levels.
Temperature Default -1, which means "do not send". Newer Claude models reject a temperature value; requests with thinking on never send it.
Host, Version (override) Optional endpoint and anthropic-version header overrides.
Timeout (MS) Default 180000.

AWS Bedrock

Property Description
AuthenticationType default — the IAM role of the Fabric instance or pod (recommended on AWS); credentials — explicit AccessKey and SecretAccessKey.
Model, Region The model ID or ARN, and the AWS region where it is enabled.
MaxTokens, Temperature, Timeout, Host Response length, randomness, timeout, and an optional custom endpoint (for example a VPC endpoint).
GuardrailID, GuardrailVersion Optional Bedrock Guardrail to apply to every call (version default DRAFT).
s3BucketName, s3Interface, s3InputPrefix, s3OutputPrefix, roleArn Batch inference only — see Batch Inference.

The IAM identity needs bedrock:InvokeModel and bedrock:InvokeModelWithResponseStream, plus bedrock:ApplyGuardrail when a guardrail is set. AWSBedrockEmbedding takes ModelType (Amazon Titan Embed or Cohere Embed) or a custom Model, and Region. AWSBedrockKnowledgeBase takes KbId and Region.

Google GenAI

Property Description
AuthenticationType credentials-json (default) — the service-account JSON in CREDENTIAL, stored through Fabric's secret manager; credentials-env — Google Application Default Credentials (GKE Workload Identity, Cloud Run and so on).
Project_ID, Location_ID The GCP project ID and region.
Model, MaxTokens, Temperature The Gemini model and generation settings.
GCSBucketName, GCSInterface, GCSInputPrefix, GCSOutputPrefix Batch inference only.

GoogleEmbedding adds Type, the embedding task type (RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, SEMANTIC_SIMILARITY, CLASSIFICATION, CLUSTERING).

OpenAI

Property Description
AuthenticationType, Token credentials — the API key in Token; default — credentials from Fabric's secret manager or environment variables.
Model, MaxTokens, Temperature, Timeout The model and generation settings.
Host Leave empty for the OpenAI API. Set it to use an OpenAI-compatible service.

OpenAIEmbedding takes AuthenticationType, Token, Model and Host.

Ollama (preview)

OllamaLLM takes HOST, PORT (default 11434), Path (default /api/chat), ProtocolType, optional HTTP authentication (Basic, Bearer or OAuth2) for an Ollama behind a gateway, Model (exactly as shown by ollama list), Temperature and Think. OllamaEmbedding uses the /api/embed path.

Selecting an Interface

The default Tag

Agents normally use the default interface. llm://default resolves to the interface whose Tag is default; more generally, llm://<id> resolves to the interface with that name, then to an interface with that tag, then to the default one (see AI LLM Interface).

  • Keep exactly one LLM interface tagged default in each environment. New Anthropic and OllamaLLM interfaces are created with the Tag default, so change it when you add a second one.
  • The default interface must be active in the environment the agent runs in. If none is, agent calls to llm://default fail with an unsupported-interface error.
  • Because default is resolved at run time, you can point the same agents at a different model per environment (for example a cheaper model in QA) without editing any agent.

Per Agent, Per Task and Per Turn

Where What it controls
settings.llm_interface The interface an agent uses for its reasoning loop. Default default. Sub-agents use their own settings.llm_interface, so a sub-agent can run on a different model from its parent.
settings.compaction_interface, settings.chat_name_interface The interfaces for context-compaction summaries and chat titles. Both fall back to llm_interface. Point them at a cheaper model. See Sessions and Context.
interface input of the aifusion.Agent flow or AgentInvoke actor Overrides the main agent's llm_interface for one turn. See Invoking Agents.
settings:
  llm_interface: claude_sonnet        # an interface name or tag; "default" if omitted
  compaction_interface: claude_haiku
  chat_name_interface: claude_haiku

Thinking Levels

settings.thinking sets how hard the model reasons before answering: off (default), low, medium, high, xhigh or max. It is a provider-neutral intensity, not a token budget; each connector maps it to its own API and clamps when the provider has no exact equivalent.

Level Anthropic / Bedrock (Claude 4.6 and later) Anthropic / Bedrock (earlier Claude) OpenAI Google Gemini
off thinking explicitly disabled no thinking no reasoning no thinking
low effort low 2,048-token budget low 2,048-token budget
medium effort medium 8,192-token budget medium 8,192-token budget
high effort high 16,384-token budget high 24,576-token budget
xhigh effort xhigh 16,384-token budget xhigh dynamic (model decides)
max effort max 16,384-token budget xhigh (OpenAI has no max) dynamic (model decides)
  • Ollama has no intensity dial: any level other than off turns thinking on.
  • xhigh and max need Anthropic connector 3.0.3 or later, or Bedrock, OpenAI or Google GenAI connector 3.0.1 or later. Older connectors ignore or mis-map them.
  • xhigh is the recommended level for agentic Claude agents that loop over tools or delegate. max costs considerably more for a small gain; high suits simple single-domain agents.
  • Thinking shares the response budget. On Claude 4.6 and later, reasoning and answer both come out of the max-tokens budget; the connectors raise it to at least 16,000 when thinking is on. A tight budget at a high level can produce a truncated answer.
  • off really is off. Claude 4.6 and later reason by default, so the connectors send an explicit "disabled" for off.
  • An unrecognized level (a typo) is logged and treated as off.
  • Reasoning is streamed to the client as thinking_delta events. The level applies to the main agent's LLM calls.

Prompt Caching

settings.use_cache (default true) asks the connector to cache the stable prompt prefix — the system prompt and tool definitions — so repeated calls in a session cost less and respond faster.

Provider Behavior
Anthropic, AWS Bedrock Explicit cache points on the system prompt and tools when use_cache is on. Cache reads and writes are reported in token usage.
Google GenAI Implicit caching only, applied by Google. use_cache has no effect.
OpenAI, Ollama The connector does not add cache points; use_cache has no effect.

Anything that changes the prompt prefix — a different skill set, a context compaction — misses the cache for that call.

Embeddings

Embedding interfaces (OpenAIEmbedding, AWSBedrockEmbedding, BedrockLambdaEmbedding, GoogleEmbedding, OllamaEmbedding) are used through the Embed actor in Broadway flows — for example a flow tool that runs a semantic search. Embed takes the interface, an input that is either one string or an array of strings (batched in one request when the provider supports it), and an optional dimensionsOverride; it returns embeddings, total_tokens and dimensions. Anthropic offers no embedding models.

Batch Inference

Several connectors support the providers' asynchronous batch APIs, for offline workloads where no one waits for the answer. Each needs different configuration on the LLM interface:

Provider Batch support
Anthropic Message Batches API. No external storage needed.
OpenAI Files API upload plus the Batch API. No external storage needed.
AWS Bedrock Batch inference jobs through S3: set s3BucketName, s3Interface (a Fabric S3 interface) and roleArn — a role Bedrock can assume (its trust policy must allow bedrock.amazonaws.com).
Google GenAI Vertex AI batch prediction through GCS: set GCSBucketName and GCSInterface (a Fabric GCS interface); the service account needs Storage Object Admin on the bucket.
Ollama Not supported.

MCP Interfaces

The MCP Client extension (preview) adds the Mcp interface type, which connects Fabric to a server implementing the Model Context Protocol. An agent can use every tool the server exposes:

mcp_interfaces:
  - crm_mcp            # the Mcp interface name

The server's tools are advertised to the model as MCP__<interface>__<tool> — for example MCP__crm_mcp__get_open_tickets — and called through the interface. Tool hooks and the tool-name guard apply to them like any other tool. See Tools.

Property Description
ProtocolType, HOST, PORT, Path The server's address and endpoint path. Use HTTPS outside local development.
TransportType HTTP_STREAMABLE.
AuthenticationType, Token None, Basic, Bearer, PAT or OAuth2 flows, with the matching credential fields.
RequestTimeout Seconds; default 10. Increase it for slow tools.

Fabric 8.4 and later can expose Data Products as MCP servers, so an agent in one environment can use another Data Product's capabilities as MCP tools. See Data Product MCP.

The extension also provides Broadway actors (McpListTools, McpCallTool, McpListPrompts, McpGetPrompt, McpListResources, McpReadResource) for using MCP servers from your own flows.

Credentials and Secrets

Store provider keys and credentials through Fabric's secret manager or environment-level interface overrides, not in plain text in the project. Prefer identity-based authentication where the platform offers it — the instance IAM role for Bedrock, Application Default Credentials for Google. See Secrets Management and Security and Privacy.

Next article: Security and Privacy