Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
vercel avatar

Develop Ai Functions Example

  • 1.4k installs
  • 26k repo stars
  • Updated August 5, 2026
  • vercel/ai

develop-ai-functions-example is an agent skill for create and run ai sdk function examples under examples/ai-functions for provider validation.

About

The develop-ai-functions-example skill is designed for create and run AI SDK function examples under examples/ai-functions for provider validation. AI Functions Examples The examples/ai-functions/ directory contains scripts for validating, testing, and iterating on AI SDK functions across providers. Adding a new provider: Create basic examples for each supported API (generateText, streamText, generateObject, etc.) 2. Invoke when the user creates, runs, or modifies AI SDK examples under examples/ai-functions.

  • Loads environment variables from .env.
  • Provides error handling with detailed API error logging.
  • generate-text/.
  • generate-object/.
  • stream-object/.

Develop Ai Functions Example by the numbers

  • 1,447 all-time installs (skills.sh)
  • +59 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #209 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

develop-ai-functions-example capabilities & compatibility

Capabilities
loads environment variables from .env · provides error handling with detailed api error · generate text/ · generate object/
From the docs

What develop-ai-functions-example says it does

Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support, demonstrate features, or crea
SKILL.md
Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support, demonstra
SKILL.md
npx skills add https://github.com/vercel/ai --skill develop-ai-functions-example

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.4k
repo stars26k
Security audit3 / 3 scanners passed
Last updatedAugust 5, 2026
Repositoryvercel/ai

How do I create and run ai sdk function examples under examples/ai-functions for provider validation?

Create and run AI SDK function examples under examples/ai-functions for provider validation.

Who is it for?

AI SDK contributors adding validated provider examples and test fixtures.

Skip if: Skip for production app features outside examples/ai-functions tree.

When should I use this skill?

User creates, runs, or modifies AI SDK examples under examples/ai-functions.

What you get

Completed develop-ai-functions-example workflow with documented commands, files, and expected deliverables.

  • Example scripts
  • Provider validation runs
  • Test fixtures

By the numbers

  • Organizes examples by AI SDK function under examples/ai-functions/src/

Files

SKILL.mdMarkdownGitHub ↗

AI Functions Examples

The examples/ai-functions/ directory contains scripts for validating, testing, and iterating on AI SDK functions across providers.

Example Categories

Examples are organized by AI SDK function in examples/ai-functions/src/:

DirectoryPurpose
generate-text/Non-streaming text generation with generateText()
stream-text/Streaming text generation with streamText()
generate-object/Structured output generation with generateObject()
stream-object/Streaming structured output with streamObject()
agent/ToolLoopAgent examples for agentic workflows
embed/Single embedding generation with embed()
embed-many/Batch embedding generation with embedMany()
generate-image/Image generation with generateImage()
generate-speech/Text-to-speech with generateSpeech()
transcribe/Audio transcription with transcribe()
rerank/Document reranking with rerank()
middleware/Custom middleware implementations
registry/Provider registry setup and usage
telemetry/OpenTelemetry integration
complex/Multi-component examples (agents, routers)
lib/Shared utilities (not examples)
tools/Reusable tool definitions

File Naming Convention

Examples follow the pattern: {provider}-{feature}.ts

PatternExampleDescription
{provider}.tsopenai.tsBasic provider usage
{provider}-{feature}.tsopenai-tool-call.tsSpecific feature
{provider}-{sub-provider}.tsamazon-bedrock-anthropic.tsProvider with sub-provider
{provider}-{sub-provider}-{feature}.tsgoogle-vertex-anthropic-cache-control.tsSub-provider with feature

Example Structure

All examples use the run() wrapper from lib/run.ts which:

  • Loads environment variables from .env
  • Provides error handling with detailed API error logging

Basic Template

import { providerName } from '@ai-sdk/provider-name';
import { generateText } from 'ai';
import { run } from '../lib/run';

run(async () => {
  const result = await generateText({
    model: providerName('model-id'),
    prompt: 'Your prompt here.',
  });

  console.log(result.text);
  console.log('Token usage:', result.usage);
  console.log('Finish reason:', result.finishReason);
});

Streaming Template

import { providerName } from '@ai-sdk/provider-name';
import { streamText } from 'ai';
import { printFullStream } from '../lib/print-full-stream';
import { run } from '../lib/run';

run(async () => {
  const result = streamText({
    model: providerName('model-id'),
    prompt: 'Your prompt here.',
  });

  await printFullStream({ result });
});

Tool Calling Template

import { providerName } from '@ai-sdk/provider-name';
import { generateText, tool } from 'ai';
import { z } from 'zod';
import { run } from '../lib/run';

run(async () => {
  const result = await generateText({
    model: providerName('model-id'),
    tools: {
      myTool: tool({
        description: 'Tool description',
        inputSchema: z.object({
          param: z.string().describe('Parameter description'),
        }),
        execute: async ({ param }) => {
          return { result: `Processed: ${param}` };
        },
      }),
    },
    prompt: 'Use the tool to...',
  });

  console.log(JSON.stringify(result, null, 2));
});

Structured Output Template

import { providerName } from '@ai-sdk/provider-name';
import { generateObject } from 'ai';
import { z } from 'zod';
import { run } from '../lib/run';

run(async () => {
  const result = await generateObject({
    model: providerName('model-id'),
    schema: z.object({
      name: z.string(),
      items: z.array(z.string()),
    }),
    prompt: 'Generate a...',
  });

  console.log(JSON.stringify(result.object, null, 2));
  console.log('Token usage:', result.usage);
});

Running Examples

From the examples/ai-functions directory:

pnpm tsx src/generate-text/openai.ts
pnpm tsx src/stream-text/openai-tool-call.ts
pnpm tsx src/agent/openai-generate.ts

When to Write Examples

Write examples when:

1. Adding a new provider: Create basic examples for each supported API (generateText, streamText, generateObject, etc.)

2. Implementing a new feature: Demonstrate the feature with at least one provider example

3. Reproducing a bug: Create an example that shows the issue for debugging

4. Adding provider-specific options: Show how to use providerOptions for provider-specific settings

5. Creating test fixtures: Use examples to generate API response fixtures (see capture-api-response-test-fixture skill)

Utility Helpers

The lib/ directory contains shared utilities:

FilePurpose
run.tsError-handling wrapper with .env loading
print.tsClean object printing (removes undefined values)
print-full-stream.tsColored streaming output for tool calls, reasoning, text
save-raw-chunks.tsSave streaming chunks for test fixtures
present-image.tsDisplay images in terminal
save-audio.tsSave audio files to disk

Using print utilities

import { print } from '../lib/print';

// Pretty print objects without undefined values
print('Result:', result);
print('Usage:', result.usage, { depth: 2 });

Using printFullStream

import { printFullStream } from '../lib/print-full-stream';

const result = streamText({ ... });
await printFullStream({ result }); // Colored output for text, tool calls, reasoning

Reusable Tools

The tools/ directory contains reusable tool definitions:

import { weatherTool } from '../tools/weather-tool';

const result = await generateText({
  model: openai('gpt-4o'),
  tools: { weather: weatherTool },
  prompt: 'What is the weather in San Francisco?',
});

Best Practices

1. Keep examples focused: Each example should demonstrate one feature or use case

2. Use descriptive prompts: Make it clear what the example is testing

3. Handle errors gracefully: The run() wrapper handles this automatically

4. Use realistic model IDs: Use actual model IDs that work with the provider

5. Add comments for complex logic: Explain non-obvious code patterns

6. Reuse tools when appropriate: Use weatherTool or create new reusable tools in tools/

Related skills

Forks & variants (1)

Develop Ai Functions Example has 1 known copy in the catalog totaling 65 installs. They canonicalize to this original listing.

How it compares

Choose develop-ai-functions-example over generic SDK docs when you need runnable repo-local scripts that prove provider behavior inside the AI SDK examples tree.

FAQ

What does develop-ai-functions-example do?

Create and run AI SDK function examples under examples/ai-functions for provider validation.

When should I use develop-ai-functions-example?

User creates, runs, or modifies AI SDK examples under examples/ai-functions.

Is develop-ai-functions-example safe to install?

Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.