Integrations
Vercel AI SDK
Gate latest user turn with LanguageModelV3 middleware and record accepted generate or stream setup.
Adapter targets LanguageModelV3Middleware from @ai-sdk/provider version 3+. Install ai, provider package, and IntentLayer.
#Configure
import { wrapLanguageModel, streamText } from "ai";
import { openai } from "@ai-sdk/openai";
import { IntentLayer } from "intentlayer";
import { intentLayerMiddleware } from "intentlayer/vercel-ai";
const il = new IntentLayer({ apiKey: process.env.INTENTLAYER_API_KEY });
const model = wrapLanguageModel({
model: openai("gpt-4.1-mini"),
middleware: intentLayerMiddleware(il, { sessionId: "session-6" }),
});
const result = streamText({ model, prompt: "improve the report" });sessionId can also be (params) => string.
#Behavior
Middleware scans prompt from end for user role and joins text content parts. When user turn exists it awaits il.gate. Then:
wrapGeneratecallsdoGenerate, recordsaccept, returns result;wrapStreamcallsdoStream, recordsaccept, returns stream result.
No suggestion interception occurs. Core gate fallback preserves host execution. If underlying model throws, adapter does not record accept.
Source truth
sdk-js/src/vercel-ai.tssdk-js/README.mdsdk-js/tests/vercel-ai.test.ts