Skip to content

Models

Last updated View as MarkdownAgent setup

The Agents SDK includes model providers for Workers AI and AI Gateway. Each provider is one createAI factory over the Worker's AI binding. There are two, one per framework:

Import Framework Use it with
agents/models/ai-sdk AI SDK ↗︎ v7 generateText, streamText, Think, and any AI SDK consumer
agents/models/pi-ai pi-ai ↗︎ The Pi harness, and pi-ai's stream

Both take the same options, route through the same gateway, and handle Workers AI the same way.

How a model is chosen

The providers keep one model catalog up to date: Workers AI. Every other vendor's models come from that vendor's own package, and the provider routes them through AI Gateway.

  • A Workers AI model is a @cf/ id, such as ai("@cf/zai-org/glm-4.7-flash"). It runs through env.AI.run(). A compatibility layer turns each model's response into the standard OpenAI chat completions shape.
  • A third-party model is a model object built by the vendor's provider, such as ai(anthropic("claude-opus-4-8")). The vendor's code builds the request and parses the response. The provider swaps the transport, so the request goes through AI Gateway with env.AI.gateway(id).run().

The provider does not keep third-party model ids, wire formats, or thinking settings. When a vendor ships a new model, update the vendor's package.

What every model gets

  • No API tokens in your Worker. Requests go through the AI binding. AI Gateway holds third-party credentials, through Unified Billing or a key you store on the gateway.
  • Gateway options. Caching, logging, metadata, timeouts, and retries are options on the provider, the model, or the call. The default gateway is created the first time you use it.
  • Fallback. List models to try in order if the first fails before it produces output. Mix Workers AI and third-party models freely.
  • Gateway metadata on every result. Each response carries the gateway log id, cache status, and the model that actually answered.

Configure the binding

Both providers need the AI binding:

{
	"ai": {
		"binding": "AI",
	},
}
[ai]
binding = "AI"

Choose a provider

AI SDK

A full AI SDK ProviderV4 for text, tools, structured output, embeddings, images, speech, transcription, and reranking.

pi-ai

pi-ai models for the Pi harness, pi-durable, and any framework built on a pi-ai Models registry.

Was this helpful?