AI SDK v6 Core
Installation
SKILL.md
Skill: ai-sdk-core
Scope
- Applies to: Backend AI features with Vercel AI SDK v5/v6, server-side text generation, structured outputs, AI agents with tools, multi-provider integration
- Does NOT cover: React chat UIs (see ai-sdk-ui), frontend hooks, embeddings, image generation
Assumptions
- AI SDK v5.0.98+ (stable) or v6.0.0-beta.107+ (beta)
- Node.js 18+ or Cloudflare Workers
- Zod v3.23.8+ or v4.x for schema validation
- TypeScript v5+ with strict mode
Principles
- Use
generateTextfor simple text generation - Use
generateObjectfor structured outputs with Zod schemas - Use
streamTextfor streaming responses - Use
ToolLoopAgent(v6) for agent workflows with tool calling - Use tool execution approval for human-in-the-loop patterns
- Use
callOptionsfor dynamic runtime configuration - Handle errors with specific error types (
AI_APICallError,AI_NoObjectGeneratedError, etc.) - Use provider abstraction (
openai,anthropic,google) for multi-provider support
Constraints
MUST
- Handle
response.errorfor typed error responses - Use Zod schemas for structured output validation
- Use
onErrorcallback instreamTextfor error handling - Validate API keys at startup
SHOULD
- Use
ToolLoopAgent(v6) for agent workflows instead of manual tool orchestration - Implement retry logic with exponential backoff for rate limits
- Use
mode: 'json'when available for structured outputs - Prefer GPT-4+ for complex structured output
AVOID
- Top-level imports in Cloudflare Workers (causes startup overhead)
- Skipping error handling for API calls
- Using
anytypes (use proper error types) - Mixing v5 and v6 APIs without migration
Interactions
- Complements ai-sdk-ui for React chat interfaces
- Works with nextjs Server Components and API routes
- Uses Zod for schema validation (see typescript)
Patterns
Basic Text Generation
import { generateText } from 'ai'
import { openai } from '@ai-sdk/openai'
const result = await generateText({
model: openai('gpt-4'),
prompt: 'Hello, world!',
})
Structured Output
import { generateObject } from 'ai'
import { z } from 'zod'
const result = await generateObject({
model: openai('gpt-4'),
schema: z.object({
name: z.string(),
age: z.number(),
}),
prompt: 'Generate a person',
})
Agent with Tools (v6)
import { ToolLoopAgent } from 'ai'
import { openai } from '@ai-sdk/openai'
const agent = new ToolLoopAgent({
model: openai('gpt-4'),
tools: { /* tool definitions */ },
})
const result = await agent.run({ prompt: 'Task' })
See Production Patterns and Templates for detailed examples.
References
- Production Patterns - Deployment and optimization patterns
- Top Errors - Common error solutions and troubleshooting
Resources
Related skills
More from blockmatic/basilic
hey api codegen
|
36ai sdk v6 ui
|
32typebox + fastify
|
31typescript-advanced-patterns
Advanced TypeScript patterns for type-safe, maintainable code using sophisticated type system features. Use when building type-safe APIs, implementing complex domain models, or leveraging TypeScript's advanced type capabilities.
28drizzle orm
|
27emilkowal-animations
Emil Kowalski's animation best practices for web interfaces. Use when writing, reviewing, or implementing animations in React, CSS, or Framer Motion. Triggers on tasks involving transitions, easing, gestures, toasts, drawers, or motion.
27