Skip to main content
OpenAI web-search chat models return url_citation annotations alongside the content. Agno surfaces these on response.citations.
citations.py
"""
Openai Chat Citations
=====================

Cookbook example for `openai/chat/citations.py`.

OpenAI web-search chat models return
`url_citation` annotations alongside the content. Agno surfaces these on
`response.citations`.
"""

from agno.agent import Agent
from agno.models.openai import OpenAIChat

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
# `gpt-4o-search-preview` performs a web search and attaches url_citation
# annotations to the response.
agent = Agent(model=OpenAIChat(id="gpt-4o-search-preview"), markdown=True)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response("What are the latest developments in AI? Cite your sources.")

Run the Example

1

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate
uv venv --python 3.12
.venv\Scripts\activate
2

Install dependencies

uv pip install -U agno openai
3

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"
$Env:OPENAI_API_KEY="your_openai_api_key_here"
4

Run the example

Save the code above as citations.py, then run:
python citations.py
Full source: cookbook/90_models/openai/chat/citations.py