agentic_fabric.config.llm

LLM configuration shared by all runners.

Uses Anthropic Claude directly via ANTHROPIC_API_KEY. Falls back to OpenRouter if OPENROUTER_API_KEY is set. Supports local Ollama via OLLAMA_BASE_URL / AGENTIC_FABRIC_LLM_PROVIDER=ollama.

Module Contents

Classes

LLMProvider

Available LLM providers.

LLMConfig

Configuration for specific LLM use cases.

Functions

get_llm

Get configured LLM instance for agents.

get_llm_or_raise

Get configured LLM instance, raising if API key not set.

get_llm_for_task

Get LLM configured for a specific task type.

get_reasoning_llm

Get LLM optimized for complex reasoning tasks.

get_creative_llm

Get LLM optimized for creative tasks.

get_code_llm

Get LLM optimized for code generation.

Data

API

class agentic_fabric.config.llm.LLMProvider(*args, **kwds)

Bases: enum.Enum

Available LLM providers.

Initialization

ANTHROPIC = 'anthropic'
OPENROUTER = 'openrouter'
OLLAMA = 'ollama'
name()
value()
class agentic_fabric.config.llm.LLMConfig

Configuration for specific LLM use cases.

model: str = None
temperature: float = None
description: str = None
agentic_fabric.config.llm.DEFAULT_MODEL = None
agentic_fabric.config.llm.MODELS = None
agentic_fabric.config.llm.LLM_CONFIGS = None
agentic_fabric.config.llm.get_llm(model: str = DEFAULT_MODEL, temperature: float = 0.7, provider: agentic_fabric.config.llm.LLMProvider | None = None) crewai.LLM | None

Get configured LLM instance for agents.

Args: model: Model identifier. Defaults to claude-haiku-4-5-20251001 (DEFAULT_MODEL) temperature: Sampling temperature (0.0-1.0). Lower = more focused, higher = more creative. provider: Force specific provider (ANTHROPIC, OPENROUTER, or OLLAMA). If None, auto-detects based on available API keys and env vars.

Available models: - claude-haiku-4-5-20251001 (default - fast, cost-effective) - claude-sonnet-4-5-20250929 (best for code and creative) - claude-sonnet-4-20250514 (capable general purpose) - claude-opus-4-20250514 (most capable) - openrouter/auto (fallback via OpenRouter) - qwen2.5:0.5b (local Ollama, no API key needed)

Returns: Configured LLM instance, or None if no API key set

Note: Tries ANTHROPIC_API_KEY first, falls back to OPENROUTER_API_KEY. When AGENTIC_FABRIC_LLM_PROVIDER=ollama or OLLAMA_BASE_URL is set, routes to a local Ollama server (no API key needed). Returns None if no provider is configured.

Example: >>> llm = get_llm() # Uses Claude Haiku 4.5 >>> llm = get_llm(“claude-opus-4-20250514”, temperature=0.3) >>> llm = get_llm(provider=LLMProvider.OPENROUTER) >>> llm = get_llm(provider=LLMProvider.OLLAMA) # Local Ollama

agentic_fabric.config.llm.get_llm_or_raise(model: str = DEFAULT_MODEL, temperature: float = 0.7, provider: agentic_fabric.config.llm.LLMProvider | None = None) crewai.LLM

Get configured LLM instance, raising if API key not set.

Use this when you need to ensure an LLM is available.

Args: model: Model identifier (see get_llm for options) temperature: Sampling temperature (0.0-1.0) provider: Force specific provider (optional)

Returns: Configured LLM instance

Raises: ValueError: If neither ANTHROPIC_API_KEY nor OPENROUTER_API_KEY is set, and Ollama mode is not enabled.

agentic_fabric.config.llm.get_llm_for_task(task: str) crewai.LLM | None

Get LLM configured for a specific task type.

Args: task: Task type - one of: ‘reasoning’, ‘creative’, ‘code’, ‘default’

Returns: Configured LLM instance, or None if no API key set

Raises: ValueError: If task type is unknown

Example: >>> llm = get_llm_for_task(‘code’) # Low temp, optimized for code >>> llm = get_llm_for_task(‘creative’) # High temp, creative output

agentic_fabric.config.llm.get_reasoning_llm() crewai.LLM | None

Get LLM optimized for complex reasoning tasks.

agentic_fabric.config.llm.get_creative_llm() crewai.LLM | None

Get LLM optimized for creative tasks.

agentic_fabric.config.llm.get_code_llm() crewai.LLM | None

Get LLM optimized for code generation.