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 requires a Stream account for real-time transport. 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