Weave is model-agnostic. Use a frontier API when you want to, or a small model running on your own hardware. Two concepts connect Weave to a model: providers and agents.
Providers
A provider is a connection to a model backend. Weave supports three kinds:
- OpenAI — including the
/v1/responsesAPI for GPT-5 reasoning variants. - Anthropic — Claude models, with optional prompt caching.
- Ollama — any model served locally; point Weave at the Ollama base URL.
Each provider stores a name, an API key (where needed), and a base URL. Weave can list the models a provider offers so you can pick one from a dropdown.
OpenAI-compatible APIs
The OpenAI provider isn't limited to OpenAI itself — it speaks the OpenAI Chat Completions API, so it works with any OpenAI-compatible endpoint. Just set the provider's base URL to the service's API root and supply its API key. That covers aggregators, proxies, and self-hosted gateways alike:
- OpenRouter — one key, hundreds of models across providers.
- LiteLLM — a proxy that exposes many backends behind one OpenAI-style API.
- vLLM, LM Studio, llama.cpp and other local servers that ship an OpenAI-compatible endpoint.
If a service advertises an “OpenAI-compatible” or “drop-in OpenAI” API, add it as an OpenAI provider and point the base URL at it — there's no separate provider type to configure. (Native Anthropic and local Ollama backends have their own provider types.)
Agents
An agent pairs a provider with a specific model and the settings it should run under: a system prompt, an optional max-output-token override, whether to use OpenAI's responses API, and a set of baseline skills that are always injected into its prompt regardless of what a weave, task, or chat selects. Agents are what chats and tasks run on — define a fast local agent for routine tasks and a frontier agent for the hard ones.
Extra parameters
Agent configurations support an extra parameters field: an arbitrary JSON object that is merged into every API call made by that agent, with precedence over application defaults. This is a direct escape hatch to the vendor API — useful for toggling beta features, enabling capabilities the app doesn't yet expose, or setting vendor-specific options so you don't have to wait for a new Weave release.
For example, to set an OpenAI reasoning effort level not exposed in the UI, add "reasoning_effort": "high".
Any key you supply overrides what Weave would otherwise send for that field.
Prompt caching
For Anthropic, Weave can add cache breakpoints to the static prefix of agentic loops so re-sent context is served from cache. OpenAI caches automatically; Ollama has no caching. It's on by default and can be overridden per chat.