Documents
v5-legacy
v5-legacy
Type
External
Status
Published
Created
Mar 17, 2026
Updated
Mar 17, 2026
AI SDK v5 is no longer supported. The `@assistant-ui/react-ai-sdk` package now requires AI SDK v6+. Please upgrade to [AI SDK v6](/docs/runtimes/ai-sdk/v6).

Overview#

This documentation is preserved for reference. For new projects, use AI SDK v6.

Getting Started#

### Create a Next.js project
npx create-next-app@latest my-app
cd my-app

Install AI SDK v5 and @assistant-ui/react#

npm install @assistant-ui/react @assistant-ui/react-ai-sdk@0.x ai@^5 @ai-sdk/openai@^1 zod

Setup a backend route under /api/chat#

@/app/api/chat/route.ts

import { openai } from "@ai-sdk/openai";
import { streamText, tool } from "ai";
import type { Message } from "ai";
import { z } from "zod";

export const maxDuration = 30;

export async function POST(req: Request) {
  const { messages }: { messages: Message[] } = await req.json();

  const result = streamText({
    model: openai("gpt-4o"),
    messages,
    tools: {
      get_current_weather: tool({
        description: "Get the current weather",
        parameters: z.object({
          city: z.string(),
        }),
        execute: async ({ city }) => {
          return `The weather in ${city} is sunny`;
        },
      }),
    },
  });

  return result.toDataStreamResponse();
}

Setup the frontend#

@/app/page.tsx

"use client";

import { Thread } from "@/components/assistant-ui/thread";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { useChatRuntime } from "@assistant-ui/react-ai-sdk";

export default function Home() {
  const runtime = useChatRuntime();

  return (
    <AssistantRuntimeProvider runtime={runtime}>
      <div className="h-full">
        <Thread />
      </div>
    </AssistantRuntimeProvider>
  );
}
`useChatRuntime` was introduced in `@assistant-ui/react-ai-sdk@0.11.3`. If you're using an older 0.x version, use `useVercelUseChatRuntime` with `useChat` from `ai/react` instead:
import { useChat } from "ai/react";
import { useVercelUseChatRuntime } from "@assistant-ui/react-ai-sdk";

const chat = useChat({ api: "/api/chat" });
const runtime = useVercelUseChatRuntime(chat);

Key Differences from v6#

Featurev5v6
ai packageai@^5ai@^6
@assistant-ui/react-ai-sdk@0.x@latest
@ai-sdk/openai@ai-sdk/openai@^1@ai-sdk/openai@^3
Message typeMessageUIMessage
convertToModelMessagesSyncAsync (await)
Tool schemaparameters: z.object({...})inputSchema: zodSchema(z.object({...}))
ResponsetoDataStreamResponse()toUIMessageStreamResponse()

Migration to v6#

See the AI SDK v6 documentation for the latest integration guide.