@economic/agents-providers
v1.0.0
Published
Provider helpers for creating AI SDK language models behind Cloudflare AI Gateway.
Keywords
Readme
@economic/agents-providers
Provider helpers for creating AI SDK language models behind Cloudflare AI Gateway.
The package is meant for server-side code, especially Cloudflare Workers using @economic/agents. It keeps gateway configuration in one place while still giving each provider its own typed model names.
Install
npm install @economic/agents-providersBasic Usage
Create the providers object once from your Worker bindings, then use it anywhere you need an AI SDK language model.
import { createAiGatewayVertexProviders } from "@economic/agents-providers";
import { env } from "cloudflare:workers";
export const providers = createAiGatewayVertexProviders({
cloudflareAccountId: env.CLOUDFLARE_ACCOUNT_ID,
cloudflareAiGatewayId: env.CLOUDFLARE_AI_GATEWAY_ID,
cloudflareApiToken: env.CLOUDFLARE_API_TOKEN,
googleCloudProjectId: env.GOOGLE_CLOUD_PROJECT_ID,
googleApiKey: env.GOOGLE_GENERATIVE_AI_API_KEY,
});Use the provider in an agent:
import { ChatAgent } from "@economic/agents";
import type { LanguageModel } from "ai";
import { providers } from "./providers";
export class SupportAgent extends ChatAgent {
getModel(): LanguageModel {
return providers.gemini("gemini-2.5-flash");
}
getFastModel(): LanguageModel {
return providers.anthropic("claude-haiku-4-5");
}
}providers.anthropic(...) is typed from @ai-sdk/anthropic, and providers.gemini(...) is typed from @ai-sdk/google, so model names follow the SDKs instead of hand-maintained lists in this package.
Configuration
createAiGatewayVertexProviders accepts the shared Cloudflare AI Gateway settings plus the Google Vertex settings needed for Anthropic:
interface AiGatewayVertexProvidersOptions {
cloudflareAccountId: string;
cloudflareAiGatewayId: string;
cloudflareApiToken: string;
googleCloudProjectId: string;
googleApiKey?: string;
location?: string;
anthropicVersion?: string;
}Defaults:
location:"europe-west1"anthropicVersion:"vertex-2023-10-16"
Required values should usually come from Worker bindings rather than being read inside the library. That keeps this package testable and usable in different runtimes.
googleApiKey is passed to @ai-sdk/google for Gemini. If your Cloudflare AI Gateway is configured to authenticate upstream requests itself, the library sends "unused" to satisfy the Google SDK's required API-key header.
Exports
import {
createAiGatewayVertexProviders,
createAnthropicVertexProvider,
createGeminiProvider,
type AiGatewayVertexProvidersOptions,
type AnthropicVertexModelId,
type AnthropicVertexProviderOptions,
type GeminiModelId,
type GeminiProviderOptions,
} from "@economic/agents-providers";Use createAiGatewayVertexProviders for normal app setup. Use createAnthropicVertexProvider or createGeminiProvider only if you want one provider by itself.
Current Providers
anthropic(modelId)routes Anthropic Messages models through Cloudflare AI Gateway to Google Vertex AI.gemini(modelId)routes Gemini models through Cloudflare AI Gateway to Google AI Studio.
More providers can be added to the same factory without changing the way callers pass shared Cloudflare/Vertex configuration.
