Skip to content
GuidesJuly 19, 2026

用 Vercel AI SDK 接 AnyRouter

@anyr/ai-sdk-provider 把 AnyRouter 网关包成标准 Vercel AI SDK provider。调用 createAnyRouter(),传入 provider/model id,generateText、streamText、generateObject 不用改 — 换模型只改一个字符串。

安装并创建 provider

这个 provider 是 AnyRouter API 上的薄封装,实现 AI SDK 的 provider 接口。和 AI SDK 一起安装,然后调用 createAnyRouter() — 省略 key 时它从环境读 ANYROUTER_API_KEY。

npm install @anyr/ai-sdk-provider ai zod
import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { generateText } from "ai"

const anyrouter = createAnyRouter()

const { text } = await generateText({
  model: anyrouter("z-ai/glm-4.7-flash"),
  prompt: "What is AnyRouter?",
})
console.log(text)
省略 key 时 createAnyRouter() 读 ANYROUTER_API_KEY。

流式,以及换模型 id

每个 AI SDK 函数吃同一套 model factory,所以 streamText 只是换 helper 的同一调用。模型 id 是普通 provider/model 字符串,换跑哪个模型只改一个字符串 — 不用新客户端,不用新 key。

import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { streamText } from "ai"

const anyrouter = createAnyRouter()

const { textStream } = await streamText({
  // swap freely: "anthropic/claude-opus-4-5" or the free tier "anyrouter/free"
  model: anyrouter("z-ai/glm-4.7-flash"),
  prompt: "Write a haiku about the ocean.",
})

for await (const chunk of textStream) {
  process.stdout.write(chunk)
}
模型 id路由到
z-ai/glm-4.7-flashZ.AI GLM-4.7 Flash
anthropic/claude-opus-4-5Anthropic Claude Opus 4.5
anyrouter/free免费档 — 不花额度

用 generateObject 做结构化输出

generateObject 同样 — 传 zod schema,provider 返回带类型的对象。跨模型都成立,所以你可以把结构化任务挪到更便宜或更强的模型,schema 不用动。

import { createAnyRouter } from "@anyr/ai-sdk-provider"
import { generateObject } from "ai"
import { z } from "zod"

const anyrouter = createAnyRouter()

const { object } = await generateObject({
  model: anyrouter("z-ai/glm-4.7-flash"),
  schema: z.object({
    title: z.string(),
    summary: z.string(),
    tags: z.array(z.string()),
  }),
  prompt: "Summarise the latest AI news in a structured format.",
})

console.log(object.title, object.tags)

不用 AI SDK?用 @anyr/sdk

如果应用不用 Vercel AI SDK,纯 TypeScript SDK 用同一把 key 打同一网关。它暴露 OpenAI 形状的客户端 — chat、embeddings、Responses API、Anthropic Messages API — 请求和响应都有类型。

import { AnyRouter } from "@anyr/sdk"

// Reads ANYROUTER_API_KEY when omitted.
const client = new AnyRouter()

const completion = await client.chat.completions.create({
  model: "z-ai/glm-4.7-flash",
  messages: [{ role: "user", content: "Hello!" }],
})

console.log(completion.choices[0].message.content)

两个包都读 ANYROUTER_API_KEY — 创建一把就能开始。

创建 key

两分钟发第一笔请求

用自己的 key 免费开始,或充值按 token 计费。Go 每月 $4 额度 — $2/月,或捐一把 provider key 免费开通。

开始使用