Skip to main content
Anthropic provides the Claude family of LLMs via the Messages API. Pass anthropic.LLM() to your agent for streaming responses and function calling.
Vision Agents uses Stream Video for real-time WebRTC transport by default. External WebRTC transports are supported as well. Most AI providers offer free tiers to get started.
Get an Anthropic API key from the Anthropic Console.

Installation

uv add "vision-agents[anthropic]"

Quick Start

from vision_agents.core import Agent, User
from vision_agents.plugins import anthropic, cartesia, deepgram, getstream, smart_turn

agent = Agent(
    edge=getstream.Edge(),
    agent_user=User(name="Friendly AI", id="agent"),
    instructions="Be nice to the user.",
    llm=anthropic.LLM("claude-sonnet-4-6"),
    tts=cartesia.TTS(),
    stt=deepgram.STT(),
    turn_detection=smart_turn.TurnDetection(),
)
Set ANTHROPIC_API_KEY in your environment, or pass api_key directly to anthropic.LLM(...).

Parameters

NameTypeDefaultDescription
modelstr"claude-sonnet-4-6"Any Claude model — see model overview.
api_keystrNoneAnthropic API key (defaults to ANTHROPIC_API_KEY env var).
clientAsyncAnthropicNoneBring your own Anthropic client instance instead of letting the plugin construct one.
tools_max_roundsint3Maximum multi-hop tool-calling rounds before the LLM is forced to produce a final response.

Function Calling

Register Python functions with llm.register_function and Claude will call them when the model decides they’re needed:
from vision_agents.plugins import anthropic

llm = anthropic.LLM("claude-sonnet-4-6")

@llm.register_function(
    name="get_weather",
    description="Get the current weather for a given city",
)
async def get_weather(city: str) -> dict:
    return {"city": city, "temperature": 72, "condition": "Sunny"}
Anthropic does not currently offer a realtime speech-to-speech model — pair anthropic.LLM() with a separate STT and TTS plugin for voice.

Next Steps

Build a Voice Agent

Get started with voice

Tools & Knowledge

Add function calling and RAG