Workspace Context Provider

WorkspaceContextProvider wraps a project directory and gives the agent a single `query_<id>` tool.

WorkspaceContextProvider wraps a project directory and gives the agent a single query_<id> tool. The tool routes through a read-only sub-agent that has the Workspace toolkit scoped to the root: list files, search content, and read files with line numbers.

workspace.py
"""
Workspace Context Provider
==========================

WorkspaceContextProvider wraps a project directory and gives the agent
a single `query_<id>` tool. The tool routes through a read-only sub-agent
that has the `Workspace` toolkit scoped to the root: list files, search
content, and read files with line numbers.

Use this for repository roots and active project workspaces. It skips
common dependency directories, build outputs, caches, virtualenvs, and
agent scratch folders by default.

Requires: OPENAI_API_KEY
"""

from __future__ import annotations

import asyncio
from pathlib import Path

from agno.agent import Agent
from agno.context.workspace import WorkspaceContextProvider
from agno.models.openai import OpenAIResponses

# ---------------------------------------------------------------------------
# Create the provider
# ---------------------------------------------------------------------------
project = WorkspaceContextProvider(
    id="agno",
    name="Agno Project",
    root=Path(__file__).resolve().parents[2],
    model=OpenAIResponses(id="gpt-5.6-luna"),
)

# ---------------------------------------------------------------------------
# Create the Agent
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIResponses(id="gpt-5.4"),
    tools=project.get_tools(),
    instructions=project.instructions(),
    markdown=True,
)


# ---------------------------------------------------------------------------
# Run the Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    print(f"\nproject.status() = {project.status()}\n")
    prompt = (
        "Find where the workspace context provider and Workspace toolkit are "
        "implemented. Explain why this provider is better than a generic "
        "filesystem provider for repository roots. Cite the files you read."
    )
    print(f"> {prompt}\n")
    asyncio.run(agent.aprint_response(prompt))

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno openai

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"

Clone Agno

Clone the pinned Agno source and run the remaining commands from its root:

git clone https://github.com/agno-agi/agno.git
cd agno
git checkout v3.0.4

Run the example

Run the example from the repository root:

python cookbook/12_context/13_workspace.py

Full source: cookbook/12_context/13_workspace.py