Agentic Crawl

agenticcrawl.ca · results

Results, goal by goal

Every figure here is read from the recorded runs: the crawler’s own records, the sites’ servers’ logs, and the test corpus’s truth, fixed before any crawl started. The agent ranked links with the nomic-embed-text embedding model served by Ollama on a laptop.

The test corpus

9 generated sites, 1,799 pages, served on one machine. Two corpora were generated: the one below, which the agent’s stop rule was tuned on, and a second one with other words, titles and changes, held out until the end.

SiteIts terms for this crawlIn scopePages
Northwind Outfitterssilentyes358
Harbor DBsilentyes250
Tidewater Science Journalsilentyes391
Greenhouse Growers Forumsilentyes442
Riverside Public Librarysilentyes262
Lumen Analyticssilentyes53
Quarry Gazetteforbidsyes21
Atlas Mapsunclearyes16
Elsewhere Partnerssilentno6
What the truth saysPages
Must never be requested: robots.txt disallows them for AI crawlers30
Must never be requested: outside the crawl’s scope6
Must never be requested: robots.txt disallows them55
Must never be requested: the site’s terms forbid the crawl21
Must never be requested: the site’s terms are unclear16
Reachable by a crawler that keeps the rules1,663
Changed a day later / a week later125 / 324
Whose server keeps saying “unchanged” when they change81
Entrances to traps without end (session ids, a calendar)641

Every request, against the rules

Recorded crawls36
Requests the servers received39,718
For a page a crawler that keeps the rules never requests0
Requests allowed that the truth forbids0
Refusals with the truth’s reason / with another reason1,210 / 0

Toward a goal

Requests the servers had received when the crawl had kept half, 90% and all of the pages that answer the goal (robots.txt included). Breadth-first is one crawl of all the sites, scored for each goal; the agent is one crawl per goal.

The tuning corpus

GoalPagesBreadth first, 50% / 90% / allAgentic Crawl, 50% / 90% / all
Every tent and its price401,078 / 1,117 / 1,12149 / 80 / 90
Backing up the database30282 / 294 / 29734 / 47 / 51
Tides and rock pools80548 / 1,563 / 1,57165 / 205 / 355
Greenhouse tomatoes451,696 / 1,714 / 1,71839 / 57 / 61
Books on sailing and navigation60830 / 854 / 86044 / 69 / 75

The held-out corpus

GoalPagesBreadth first, 50% / 90% / allAgentic Crawl, 50% / 90% / all
Every tent and its price401,073 / 1,112 / 1,11652 / 85 / 91
Backing up the database30282 / 294 / 29735 / 49 / 52
Tides and rock pools80562 / 1,574 / 1,58267 / 163 / 366
Greenhouse tomatoes451,705 / 1,723 / 1,72739 / 57 / 61
Books on sailing and navigation60827 / 851 / 85744 / 69 / 75

Requests lost to traps: 3,291 for breadth-first, 3 for the agent on the tent goal, which learned that the session-id parameter never changes a page and skipped 623 such addresses.

Knowing when to stop

The agent stops after 60 kept pages in a row more than 0.05 below the best page score so far. The rule was chosen on the tuning corpus and run unchanged on the held-out one. Recall is the share of the goal’s pages it kept; precision, the share of kept pages on the goal.

GoalTuning: pages, recall, precisionHeld out: pages, recall, precision
Every tent and its price135, 1.000, 0.296199, 1.000, 0.201
Backing up the database106, 1.000, 0.283103, 1.000, 0.291
Tides and rock pools191, 0.887, 0.372201, 0.975, 0.388
Greenhouse tomatoes114, 1.000, 0.395115, 1.000, 0.391
Books on sailing and navigation130, 1.000, 0.462130, 1.000, 0.462

Extraction against each page’s exact text

Page layoutPagesRecall before → afterF1 afterLost more than half, before → after
div content5780.996 → 0.9960.9290 → 0
sections1050.635 → 1.0000.99340 → 0
semantic7111.000 → 1.0001.0000 → 0
table2541.000 → 1.0000.9850 → 0
all1,6480.975 → 0.9980.97240 → 0

Knowing what changed

Re-crawlPages judgedChangedVerdicts rightStale validators caught
a day later1,6501251,65041 of 41
a week later1,6503251,65081 of 81

← Agentic Crawl · Watch the recorded runs