Skip to content
Changelog

Read a whole published page in one call

ContributorAshpreet BediFounder & CEO

September 8, 20261 min read

With Agno's Knowledge.read_full_page or aread_full_page, an agent that found the right page through search no longer walks it with read_page, one slice at a time, following next_offset to the end. Both methods make a single SQL read against one read-only snapshot, so the text can't change partway through.

hit = knowledge.search_pages("How do agents use tools?").results[0]
 
body = knowledge.read_full_page(hit.path, revision=hit.revision, max_chars=24_000)
if body is None:
    ...  # longer than the budget, so keep the search excerpts

Pass the revision from a search hit to pin the read. If someone republished the page after that search, read_full_page raises PageChanged. A page longer than max_chars returns None, and you can fall back to the excerpts you already have. A missing page raises PageNotFound. A read that runs past its timeout raises PageError. The defaults are 24,000 characters and 2 seconds.

read_full_page shares the eight-slot worker pool that Agno's other page reads use.

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

Frequently asked questions

Call knowledge.read_full_page(path, revision=..., max_chars=...), or aread_full_page in async code. Agno returns the whole page from a single SQL read against one read-only snapshot.

read_full_page returns None when the page is longer than max_chars, which defaults to 24,000 characters. Your agent can keep the search excerpts it already has in that case.

Pass the revision from the search hit to read_full_page. A republish after that search makes Agno raise PageChanged.

Shipped around the same time