Skip to content

profile

Capability metadata for a specific model — context window, output limits, feature support, and optional cost information.

Use [ModelCapabilities::lookup] to resolve capabilities from the built-in registry, or construct manually for custom/self-hosted models.

Fields

FieldTypeDescription
context_windowu32Maximum input tokens the model can accept (context window size).
max_output_tokensu32Maximum tokens the model can generate in a single response.
supports_toolsboolWhether the model supports function/tool calling.
supports_visionboolWhether the model supports vision (image) inputs.
supports_streamingboolWhether the model supports streaming responses.
cost_per_1k_inputOption<f64>Cost per 1K input tokens (USD), if known. Used for budget tracking.
cost_per_1k_outputOption<f64>Cost per 1K output tokens (USD), if known.

Methods

fn lookup(model_id: &str) -> Self

Look up capabilities for a model by its ID string.

Matches known model prefixes (e.g. “gpt-4o” matches “gpt-4o-2024-08-06”). Returns UNKNOWN_DEFAULT if no match is found.

fn available_for_history(&self, reserved_output: Option<u32>, system_tokens: u32, tools_tokens: u32) -> u32

Compute available budget for conversation history after reserving space for output, system prompt, and tool schemas.

Fields

FieldTypeDescription
model_idString
familyModelFamily
profileModelProfile
capabilitiesOption&lt;ModelCapabilities&gt;Optional explicit capabilities override. When None, capabilities
extensionsBTreeMap&lt;String, serde_json::Value&gt;

Methods

fn resolve_capabilities(&self) -> ModelCapabilities

Resolve capabilities — explicit override takes priority, then static registry lookup, then conservative defaults for unknown models.

Variants

VariantDescription
OpenAI
Gpt5
Qwen3
Claude
Gemini
DeepSeek
Llama
Mistral

Variants

VariantDescription
Generic
Gpt5 { ... }
Qwen3 { ... }