Documentation Index
Fetch the complete documentation index at: https://docs.cascadeflow.ai/llms.txt
Use this file to discover all available pages before exploring further.
cascadeflow integrates with the Vercel AI SDK as middleware, providing cascade routing for server-side AI applications with streaming support. The goal is still runtime intelligence inside the application loop: maintain streaming UX, keep tool execution server-side, and avoid a proxy hop on every model step.
Install
npm install @cascadeflow/vercel-ai
Quick Start
import { createChatHandler } from '@cascadeflow/vercel-ai';
import { CascadeAgent } from '@cascadeflow/core';
const agent = new CascadeAgent({
models: [
{ name: 'gpt-4o-mini', provider: 'openai', cost: 0.000375 },
{ name: 'gpt-4o', provider: 'openai', cost: 0.00625 },
],
});
const handler = createChatHandler(agent, {
protocol: 'data', // AI SDK v4 data stream
tools, // Tool definitions
toolHandlers, // Server-side tool execution
maxSteps: 5, // Multi-step tool loops
});
// Use in Next.js API route, Express, or any Node.js server
export const POST = handler;
Features
- AI SDK v4
data stream and AI SDK v5/v6 UI streams
useChat multi-turn support — conversation history preserved
parts message format (AI SDK v6)
- Tool call streaming visibility — see tool calls as they happen
- Server-side tool execution via
toolExecutor or toolHandlers
- Multi-step controls:
maxSteps, forceDirect
- Cascade decision stream parts — optional metadata in the stream
- Request-level overrides with allowlist + shared-secret guard
Why This Integration Matters
- Preserves fast real-time UX while adding runtime control
- Keeps governance logic close to tool loops and streaming responses
- Avoids the compounded latency cost of external proxy mediation
Multi-Turn Chat
import { useChat } from 'ai/react';
export default function Chat() {
const { messages, input, handleSubmit, handleInputChange } = useChat({
api: '/api/chat',
});
return (
<div>
{messages.map((m) => (
<div key={m.id}>{m.content}</div>
))}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} />
</form>
</div>
);
}
Request Overrides
Override cascade behavior per request (protected by shared secret):
const handler = createChatHandler(agent, {
protocol: 'data',
allowOverrides: ['forceDirect', 'maxSteps'],
overrideSecret: process.env.OVERRIDE_SECRET,
});
Result
40-85% cost savings for Vercel AI SDK applications with streaming support and zero client-side changes.