Labsco
vercel-labs logo

ai

★ 83

by vercel · part of vercel-labs/ai-python

Python `ai` SDK — models, providers, streams, events, tools, agents, hooks, MCP, AI SDK UI, structured output, and media generation

🔥🔥🔥🔥✓ VerifiedAccount requiredNeeds API keys
🧰 Not standalone. This skill ships with vercel-labs/ai-python and only works together with that tool — install the tool first, then add this skill.

This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.

AI SDK for Python

Package: ai. Requires Python 3.12+. Install with uv add ai.

Unprefixed model IDs use AI Gateway and AI_GATEWAY_API_KEY. Direct providers use provider:model, their API key, and an extra:

uv add "ai[openai]"     # OPENAI_API_KEY,    ai.get_model("openai:gpt-5")
uv add "ai[anthropic]"  # ANTHROPIC_API_KEY, ai.get_model("anthropic:claude-sonnet-4")

Basic use

Use ai.stream for one model call without Python tool execution:

import ai

model = ai.get_model("anthropic/claude-sonnet-4")
messages = [
    ai.system_message("Be concise."),
    ai.user_message("Write a haiku about rain."),
]

async with ai.stream(model, messages) as stream:
    async for event in stream:
        if isinstance(event, ai.events.TextDelta):
            print(event.chunk, end="", flush=True)

answer = stream.output
message = stream.message

Use ai.Agent for a loop that executes Python tools and manages history:

@ai.tool
async def get_weather(city: str) -> str:
    """Get the weather for a city."""
    return "Sunny"

agent = ai.Agent(tools=[get_weather])
async with agent.run(model, messages) as run:
    async for event in run:
        if isinstance(event, ai.events.TextDelta):
            print(event.chunk, end="", flush=True)

answer = run.output
history = run.messages

These examples are sufficient for basic model calls, messages, tools, and agents.

Advanced work

For an advanced task, fetch its page under https://ai-python.dev/docs/ and read the listed local notes before writing code.

TaskPageLocal notes
Provider clients, options, discoverybasics/providers.md—
Structured output, complex streamsbasics/streaming.md—
Buffered language-model callsbasics/streaming.md—
Images, video, speech, embeddings, transcription, rerankingbasics/model-operations.md—
Events and serializationbasics/messages-and-events.md—
Advanced tools, streaming, aggregationbasics/tools.mdstreaming-tools.md
Advanced agent behaviorbasics/agents.md—
Deterministic model and agent testsbasics/testing.md—
Subagents and multi-agentbasics/subagents-and-multi-agent.mdstreaming-tools.md
Custom agent loopsbasics/custom-loops.mdcustom-loops.md
Approvals and hooksbasics/human-in-the-loop.md—
Serverless resumebasics/human-in-the-loop.mdserverless.md
Durable executionbasics/durable-execution.mddurable.md
Telemetry and tracingbasics/telemetry.md—
AI SDK UI backendsbasics/ai-sdk-ui.mdui.md
Custom providersbasics/providers.mdcustom-provider.md

For exact APIs, use reference.md and the relevant reference/*.md page.