add-function-examples
Guide for adding new AI function examples, for testing specific features against the actual provider APIs.
Capture API response test fixture.
$ npx -y skills add vercel/ai --skill capture-api-response-test-fixture --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/capture-api-response-test-fixtureContext preview
The summary Claude sees to decide when to auto-load this skill.
Capture API response test fixture.
name: capture-api-response-test-fixture description: Capture API response test fixture. metadata: internal: true
For provider response parsing tests, we aim at storing test fixtures with the true responses from the providers (unless they are too large in which case some cutting that does not change semantics is advised).
The fixtures are stored in a `__fixtures__` subfolder, e.g. `packages/openai/src/responses/__fixtures__`. See the file names in `packages/openai/src/responses/__fixtures__` for naming conventions and `packages/openai/src/responses/openai-responses-language-model.test.ts` for how to set up test helpers.
You can use our examples under `/examples/ai-functions` to generate test fixtures.
For `generateText`, put the script under `src/generate-text/<provider>/`, log the raw response output to the console, and copy it into a new test fixture.
import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';
import { run } from '../../lib/run';
run(async () => {
const result = await generateText({
model: openai('gpt-5-nano'),
prompt: 'Invent a new holiday and describe its traditions.',
});
console.log(JSON.stringify(result.response.body, null, 2));
});For `streamText`, you need to set `includeRawChunks` to `true` and use the special `saveRawChunks` helper. Put the script under the provider directory and run it from the `/examples/ai-functions` folder via `pnpm tsx src/stream-text/<provider>/<script-name>.ts`. The result is then stored in the `/examples/ai-functions/output` folder. You can copy it to your fixtures folder and rename it.
import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';
import { run } from '../../lib/run';
import { saveRawChunks } from '../../lib/save-raw-chunks';
run(async () => {
const result = streamText({
model: openai('gpt-5-nano'),
prompt: 'Invent a new holiday and describe its traditions.',
includeRawChunks: true,
});
await saveRawChunks({ result, filename: 'openai-gpt-5-nano' });
});The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents
Repo: vercel/ai
Guide for adding new AI function examples, for testing specific features against the actual provider APIs.
Guide for adding new AI SDK harness packages. Use when creating a new @ai-sdk/harness-<name> package that adapts a coding-agent runtime to HarnessV1.
Guide for adding first-party AI provider packages to the AI SDK. Use when creating a provider package under packages/ to integrate an external AI service.
Create and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept/reject,…
Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples/ai-functions/src to validate provider support,…
List the contents of an npm package tarball before publishing. Use when the user wants to see what files are included in an npm bundle, verify package…