> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Web Context Provider with Exa

> Run WebContextProvider with ExaBackend so an agent searches and fetches web pages through Exa's search + contents API.

WebContextProvider wraps a `ContextBackend` so the provider interface doesn't know about the search/fetch implementation. Here we use `ExaBackend` (Exa's search + contents API).

```python web_exa.py theme={null}
"""
Web Context Provider with Exa
=============================

WebContextProvider wraps a `ContextBackend` so the provider interface
doesn't know about the search/fetch implementation. Here we use
`ExaBackend` (Exa's search + contents API).

Requires:
    OPENAI_API_KEY
    EXA_API_KEY  (https://dashboard.exa.ai/)
"""

from __future__ import annotations

import asyncio

from agno.agent import Agent
from agno.context.web import ExaBackend, WebContextProvider
from agno.models.openai import OpenAIResponses

# ---------------------------------------------------------------------------
# Create the provider
# ---------------------------------------------------------------------------
backend = ExaBackend()  # reads EXA_API_KEY from env
web = WebContextProvider(backend=backend, model=OpenAIResponses(id="gpt-5.6-luna"))

# ---------------------------------------------------------------------------
# Create the Agent
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIResponses(id="gpt-5.4"),
    tools=web.get_tools(),
    instructions=web.instructions() + "\nAlways cite URLs inline.",
    markdown=True,
)


# ---------------------------------------------------------------------------
# Run the Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    print(f"\nweb.status() = {web.status()}\n")
    prompt = "What is the latest stable release of CPython? Cite the source."
    print(f"> {prompt}\n")
    asyncio.run(agent.aprint_response(prompt))
```

## Run the Example

<Snippet file="create-venv-step.mdx" />

**1. Install dependencies**

```bash theme={null}
uv pip install -U agno exa-py openai
```

**2. Export your API keys**

```bash Mac/Linux theme={null}
export EXA_API_KEY="your_exa_api_key_here"
export OPENAI_API_KEY="your_openai_api_key_here"
```

```bash Windows theme={null}
$Env:EXA_API_KEY="your_exa_api_key_here"
$Env:OPENAI_API_KEY="your_openai_api_key_here"
```

**3. Run the example**

Save the code above as `web_exa.py`, then run:

```bash theme={null}
python web_exa.py
```

Full source: [cookbook/12\_context/01\_web\_exa.py](https://github.com/agno-agi/agno/blob/v3.0.4/cookbook/12_context/01_web_exa.py)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.