Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

An agent is only as good as the context it has access to. Context providers give the agent live access to a source through two natural-language tools: query_<source> for reads and update_<source> for writes. A sub-agent behind each provider owns the source’s quirks, so the main agent’s context stays clean.
from agno.agent import Agent
from agno.context.web import ExaBackend, WebContextProvider
from agno.models.openai import OpenAIResponses

web = WebContextProvider(backend=ExaBackend(), model=OpenAIResponses(id="gpt-5.5"))

agent = Agent(
    model=OpenAIResponses(id="gpt-5.5"),
    tools=web.get_tools(),
    instructions=web.instructions() + "\nAlways cite URLs inline.",
)

agent.run("What's the latest pricing for Anthropic's models?")
Context providers navigate the source at query time, the way a coding agent runs ls, grep, and cat. The state is always live and every citation is a path the user can open. The common “company brain” approach ingests everything into a vector database for top-k retrieval. That works for static corpora. For live product data, the index goes stale and citations point at fragments.
WinWhy it matters for your product
Live stateThe Slack message sent thirty seconds ago is queryable now
Real citationsEvery reference is a path the user can open
Permissions stay putThe source enforces who can read what; the agent sees what its credentials see

Why a provider, not raw tools

Attaching a source’s twelve raw tools to the agent pollutes context and degrades routing. A provider collapses the source to one tool the agent reasons about.
Problem with raw toolsWhat a context provider does
Too many tools crowd the promptThe agent sees one tool: query_slack
Overlapping scopes confuse routingOne sub-agent owns one scope; routing is one tool call
Intermediate results bury the taskPagination and lookups stay inside the sub-agent

Sources

SourceToolsBacked by
Webquery_webExa, Parallel, or an MCP search backend
Workspacequery_workspaceA filesystem path or repo, read-only
Databasequery_<db>, update_<db>Postgres, with a read engine and a schema-guarded write engine
Knowledge wikiquery_knowledge, update_knowledgeFilesystem or a Git repo for durable prose memory
Slackquery_slackSlack API, read-only
Google Drivequery_gdriveA service account, scoped to shared folders
MCP serversquery_mcp_<slug>Any MCP server: Linear, GitHub, Notion

Read-only providers

Providers that can write take write=False, which removes the update tool so the agent cannot mutate the source under any prompt. A read-only source like the web has no write tool to begin with. This is how a style guide or a reference corpus stays immutable while still being queryable.

Next steps

TaskGuide
Reach users where they workInterfaces
Persist what the agent learnsSessions and memory

Developer Resources