File Upload
Upload and reference files using Anthropic's Files API in Agno.
With Anthropic's Files API, you can upload files and later reference them in other API calls. This is handy when a file is referenced multiple times in the same flow.
Usage
Install dependencies
uv pip install -U anthropic agnoExport your Anthropic API key
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"Upload a file
Initialize the Anthropic client and use client.beta.files.upload:
from pathlib import Path
from anthropic import Anthropic
file_path = Path("path/to/your/file.pdf")
client = Anthropic()
uploaded_file = client.beta.files.upload(file=file_path)Initialize the Claude model
Reference the uploaded file with a supported Claude model. The Files API is generally available; the legacy Files beta header is no longer required. The SDK retains client.beta.files for compatibility.
from agno.agent import Agent
from agno.models.anthropic import Claude
agent = Agent(
model=Claude(
id="claude-sonnet-4-6",
)
)Reference the file
You can now reference the uploaded file when interacting with your Agno agent:
from agno.media import File
agent.print_response(
"Summarize the contents of the attached file.",
files=[File(external=uploaded_file)],
)Uploaded files count against storage limits. See Anthropic's docs for the details.
Working example
from pathlib import Path
from agno.agent import Agent
from agno.media import File
from agno.models.anthropic import Claude
from agno.utils.media import download_file
from anthropic import Anthropic
pdf_path = Path(__file__).parent.joinpath("ThaiRecipes.pdf")
# Download the file using the download_file function
download_file(
"https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf", str(pdf_path)
)
# Initialize Anthropic client
client = Anthropic()
# Upload the file to Anthropic
uploaded_file = client.beta.files.upload(
file=Path(pdf_path),
)
if uploaded_file is not None:
agent = Agent(
model=Claude(
id="claude-sonnet-4-6",
),
markdown=True,
)
agent.print_response(
"Summarize the contents of the attached file.",
files=[File(external=uploaded_file)],
)