Use this file to discover all available pages before exploring further.
The AI SDK adapter allows you to use AgentMark prompts with Vercel AI SDK’s generation functions. This is the recommended adapter for most TypeScript/JavaScript applications.AgentMark provides two versions of this adapter — one for AI SDK v4 and one for AI SDK v5. Both share the same API surface (VercelAIModelRegistry, createAgentMarkClient), so switching between them only requires changing the package import.
Install the adapter, the ai core package, and the provider package(s) for the models you want to use. Provider packages must be compatible with your ai core version.
AI SDK v5 (Recommended)
AI SDK v4
# Corenpm install @agentmark-ai/ai-sdk-v5-adapter ai@^5# Provider packages (install the ones you need)npm install @ai-sdk/openai # OpenAI / GPT modelsnpm install @ai-sdk/anthropic # Anthropic / Claude modelsnpm install @ai-sdk/google # Google / Gemini models# MCP server support (optional)npm install @ai-sdk/mcp
Create your AgentMark client with a model registry. Use .registerProviders() to register provider packages — model IDs written as "<provider>/<model>" (e.g., "openai/gpt-4o") auto-resolve. Use .registerModels() for exact names or a single RegExp pattern. .registerModels() accepts string | RegExp | string[] — but NOT RegExp[] (wrap in a single regex instead).
AI SDK v5
AI SDK v4
agentmark.client.ts
import { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v5-adapter";import { anthropic } from "@ai-sdk/anthropic";import { openai } from "@ai-sdk/openai";const modelRegistry = new VercelAIModelRegistry();// Preferred: register providers, then use "<provider>/<model>" IDs in promptsmodelRegistry.registerProviders({ openai, anthropic });// Or register models explicitlymodelRegistry .registerModels(["claude-sonnet-4-20250514"], (name) => anthropic(name)) .registerModels(["gpt-4o", "gpt-4o-mini"], (name) => openai(name)) .registerModels(/^gpt-/, (name) => openai(name)); // single regex — not wrapped in []export const client = createAgentMarkClient({ loader, modelRegistry,});
agentmark.client.ts
import { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v4-adapter";import { anthropic } from "@ai-sdk/anthropic";import { openai } from "@ai-sdk/openai";const modelRegistry = new VercelAIModelRegistry();modelRegistry.registerProviders({ openai, anthropic });modelRegistry .registerModels(["claude-3-5-sonnet-20241022"], (name) => anthropic(name)) .registerModels(/^gpt-/, (name) => openai(name));export const client = createAgentMarkClient({ loader, modelRegistry,});
The setup is identical — only the import path changes.
Configure tools using the AI SDK’s native tool() helper. AI SDK v5 uses inputSchema; AI SDK v4 uses parameters. Mixing them fails type-checking (TS2769):
AI SDK v5
AI SDK v4
agentmark.client.ts
import { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v5-adapter";import { tool } from "ai";import { z } from "zod";const weatherTool = tool({ description: "Get current weather for a location", inputSchema: z.object({ location: z.string(), }), execute: async ({ location }) => { return `The weather in ${location} is sunny and 72°F`; },});export const client = createAgentMarkClient({ loader, modelRegistry, tools: { weather: weatherTool },});
agentmark.client.ts
import { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v4-adapter";import { tool } from "ai";import { z } from "zod";const weatherTool = tool({ description: "Get current weather for a location", parameters: z.object({ location: z.string(), }), execute: async ({ location }) => { return `The weather in ${location} is sunny and 72°F`; },});export const client = createAgentMarkClient({ loader, modelRegistry, tools: { weather: weatherTool },});
Then reference tools in your prompts:
weather.prompt.mdx
---name: weathertext_config: model_name: claude-3-5-sonnet-20241022 tools: - weather---<System>You are a helpful weather assistant.</System><User>What's the weather in {props.location}?</User>
Update packages — upgrade the adapter, ai core, provider packages, and add MCP if needed:
npm uninstall @agentmark-ai/ai-sdk-v4-adapternpm install @agentmark-ai/ai-sdk-v5-adapter ai@^5 @ai-sdk/mcp# Also upgrade your provider packages to v5-compatible versionsnpm install @ai-sdk/openai@latest @ai-sdk/anthropic@latest
Update imports — change the package path in your agentmark.client.ts:
// Beforeimport { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v4-adapter";// Afterimport { createAgentMarkClient, VercelAIModelRegistry } from "@agentmark-ai/ai-sdk-v5-adapter";
Rename tool parameters to inputSchema — AI SDK v5’s tool() helper renamed the field. This is the most common cause of TS2769 errors after a v4→v5 upgrade.
Otherwise no changes required — the VercelAIModelRegistry and createAgentMarkClient APIs are the same. Tools and MCP servers are passed as plain objects. All prompt .format() calls and AI SDK generation functions (generateText, generateObject, streamText, etc.) remain identical.