Skip to content
Changelog

Give agents a read-only filesystem over your docs

ContributorAshpreet BediFounder & CEO

September 8, 20261 min read

With Agno's PageFileSystem toolkit, an agent works through your published pages with ls, tree, find, cat, head, tail, wc, rg and grep, the way an engineer works through a repo.

A user asks your docs agent about page_store. Vector search returns a chunk that sounds close, and the agent answers from that chunk. An engineer would have grepped for the exact name and opened the page it lives on. With PageFileSystem, the agent can do the same.

from agno.agent import Agent
from agno.knowledge.page import PageFileSystem
 
page_files = PageFileSystem(knowledge=knowledge)
agent = Agent(tools=[page_files.tools()])

Three commands run through PageFileSystem against published Agno docs pages: ls /knowledge lists the section, rg finds page_store on two lines of the published pages guide, and head reads the top of the Public Surface page.

Vector search still finds the right page, and the agent then reads all of it.

What can't the agent do?

PageFileSystem can't run a shell, expand shell expressions or write files. Reads use pinned page revisions, listings return scoped metadata, and grep is a bounded literal scan. Output stops at 30,000 characters with a continuation notice, and Agno caps regex time, command time and read volume.

The toolkit works in sync and async runs, and you can rename the tool with tools(tool_name=...).

See the cookbook, and learn more about published pages in the documentation.

Frequently asked questions

Create PageFileSystem(knowledge=knowledge) from agno.knowledge.page and pass page_files.tools() to the Agent. The agent can then run ls, tree, find, cat, head, tail, wc, rg and grep over your published pages.

No. The toolkit has no shell, doesn't expand shell expressions and never writes files. Reads use pinned page revisions, and grep is a bounded literal scan.

Agno stops output at 30,000 characters and adds a continuation notice. Regex time, command time and read volume are also capped.

Vector search finds the right page, but it can miss exact identifiers. PageFileSystem lets the agent read the whole page and rg for a literal name. See the cookbook.

Shipped around the same time