AI SDK for Python

SkillCloud & infra

AI SDK for Python (the `ai` package). Use when writing Python that calls LLMs or dedicated image, video, speech, embedding, transcription, or reranking models; builds agents; tests model interactions; or implements tool calling, subagents, approvals, durable execution, telemetry, AI SDK UI backends, and custom providers.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the AI SDK for Python skill

What this skill tells your AI

The instructions your AI receives, as published by vercel-labs/ai-python in skills/ai/SKILL.md and read by ahel’s review.

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.

Signals

GitHub stars
178
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
ai-vercel-labs
Source
github.com/vercel-labs/ai-python