Claude Code Build Night Bright Data SF · 20 Oct 2026 · Ray Zahid, Immersive Commons

Search in the age of agents

Where agents get facts, how to check the facts, and how to make your data easy for agents to use.

Four talks and one afternoon of tests, 20 Oct 2026. Each number on these slides has a source file. Pixel loop: decks/meta/media/src/title-search-sky.ts

20 Oct 2026, 1:45 to 2:01 PM PT Netflix posted Q3 results at about 1:01 PM. Then we asked nine sources.

netflix q3 2026 revenue

The answer, from the SEC filing: revenue grew 12% to $12.9B.

ExaAI native search

"Netflix reports results for third quarter of 2026", then the SEC filing, then CNBC from today

the number

LinkupAI native search

"Netflix Q3 Revenue Rises 12% to $12.87 Billion"

the number

ParallelAI native search

CNBC from today, then "Netflix Q3 2026 Earnings: Revenue of $12.87 Billion"

the number

TavilyAI native search

"Netflix Q3 2026 Earnings Preview": analysts expected $12.9B

the forecast

Claude WebSearchmodel + search tool

The SEC filing itself. Its summary: "Revenue grew 12%", no dollar figure

the filing, no number

SerperGoogle results via API

Netflix's investor page, then "Analysts expect ... revenue of $12.88 billion"

a "results coming" page

Firecrawl searchsearch + scrape

The same pages as Serper, in the same order

a "results coming" page

Googlescraped via Apify

Wikipedia "2026", the October Visa Bulletin, a Nobel press release

nothing on Netflix

Wikipediasite search

The Trade Desk, Big Tech, Roku

nothing yet

3 had the number1 the forecast1 the filing2 a "results coming" page2 nothing

research/battle/results_fresh/<source>.jsonl id fr05 · gold: sec.gov ex991_q326.htm (8-K exhibit 99.1)

Same question 50 minutes after Netflix released its earnings

The same model gives different answers when it reads different sources

4 / 15

Claude with no search, on 15 news questions from the last 7 days.

6

kinds of evidence from 9 search sources. Some had the revenue. Some had only the forecast. Two had nothing.

15 / 15

The same model with the top 5 results from Tavily.

The answer is only as good as the input.

research/battle/answers_summary.json (fresh: none 4, tavily 15) · results_fresh/*.jsonl id fr05 · content/battle.md §A

1

Part 1 · Then and now

How search changed for agents

Before agents two places to search

Before agents, search had two places

The web

One search engine

For example, Google. You type keywords. You read ten links. You click one.

Your files

Folders on a disk

Files on your computer or on a cloud drive. You find a file by its folder or its name.

A person read each result and decided if it was correct.

Now sources that an agent can use in the same minute

An agent can search six types of source

1 · Memory

The model weights

Fast and free.

Does not know events after training.

2 · Search APIs

Google results and AI native APIs

Serper, Exa, Tavily, Parallel, Linkup.

Each API shows a different part of the web.

3 · Scrape and browse

Read the full page

Bright Data MCP, Firecrawl, a headless browser.

Slower. Sites limit the request rate.

4 · Sites as search

Where people post

Reddit, Hacker News, X, LinkedIn, Facebook groups.

Many need a login.

5 · Agent memory

Notes from earlier runs

Facts that the agent saved.

Knows only what it saved.

6 · Your library

Files and papers in RAG

Your files, cut into passages and indexed.

Knows only what you added.

We made this list of six types. It is not a standard. Our research pipeline searches six channels at the same time: ~/.claude/orchestration/workflows/research.yaml

pixel loop made with the stranger-builds engine (PixelPass) · decks/meta/media/src/weights-vs-search.ts

Memory facts that the model learned in training

A model answers from its training and from search results

40 = 40

60 trivia questions. Claude with no search got 40 correct. Claude with Google results also got 40.

27 / 39

The fast lane got 39 answers correct. For 27 of them, the answer was not in the search results. Claude used its memory.

4 / 15

Claude with no search, on news from the last 7 days.

Use search for new events and for facts that the model gets wrong.

research/battle/answers_summary.json (all60 none 40, google 40; fresh none 4) · research/s1s2/mined.json crosstab_snippets_vs_quick (27 of 39)

pixel loop made with the stranger-builds engine · decks/meta/media/src/frozen-recon.ts · numbers: research/battle/answers_summary.json

3.6 Round 3 · only the search results change

On news, search makes the difference

60 trivia questionsthings a model may already know

Memory only, no search 40

Google's top 5 40

Best search: Exa's top 5 45

15 news questions13 to 20 Oct 2026, after the model's training

Memory only, no search 4

Google's top 5 13

Best search: Tavily's top 5 15

On news, search changed the score from 4 to 15.

research/battle/answers_summary.json all60 + fresh (none, google, exa, tavily) · model claude-sonnet-5-5, no tools · graded by eval/grade.py correct

2

Part 2 · Where input comes from

The answer is only as good as the input

1.1 Crawl, index, rank, snippet

Four steps between the web and your agent

The webpages change all day Crawla robot reads pages decides how new Netflix went live at 1:01 PM. No new visit yet: not found. Indexthe catalogue decides what can be found Semantic Scholar: papers only. 0 of 30 answers found. Rankwho goes first what is read first First place, of 60 trivia: Exa, Tavily 32. Google 22. Snippetthe lines under a link what can be quoted 133 to 1,534 characters per result, by source. Your agentoften reads only this the top 5 results, a wait and a bill

results_fresh/*.jsonl fr05 · summary.json s2 (results for 4 of 30, 0 answers) · summary_all60.json answer_in_top1, mean_snippet_chars

1.3 Snippet vs full page · median characters, drawn to scale

A snippet shows a tiny part of the page

One snippetthe lines under a link
154characters
What quick readsquestion + all 8 snippets
1,865characters
One pagethe top Wikipedia article
16,293characters
Snippet"Phasma is the commander of the First Order's force of stormtroopers"
PageThe full Captain Phasma article, which names the actress. Quick never saw it.

research/s1s2/ext_summary.json foundations.snippet_chars_median, quick_prompt_chars_median, s15_page.median_page_chars · eval/set.jsonl nq07

What a page shows you the layers that an agent can read

An agent reads a web page in layers

LayerWhat it containsSize (characters)
Title and linkthe name and address of the resulta few words
Snippetthe lines under the link154
AI native extractlonger text that the API selects for a model487 to 1,534
Results pagethe question and all 8 snippets1,865
Full pagethe complete article16,293

Each lower layer costs more tokens and more time. Each lower layer also contains more answers. When you select a source, you also select the layer that one call gives you.

research/s1s2/ext_summary.json foundations.snippet_chars_median, quick_prompt_chars_median, s15_page.median_page_chars · research/battle/summary_all60.json mean_snippet_chars (medians)

pixel loop made with the stranger-builds engine · decks/meta/media/src/too-much-context.ts · sizes: research/s1s2/ext_summary.json, research/battle/summary_all60.json (medians)

1.2 Scrape it, rent a scraper, or use a new index

Three ways to get search results

1 · Scrape a results page

Load the page

how
load the page and copy out the links
we used
Google, through an Apify scraper
catch
slow (5.62 s median), breaks when the page changes

2 · Search results API

Rent a scraper

how
a company scrapes the page and sends you the results as data
we used
Serper. Also SerpAPI and Bright Data
catch
short text: 144 characters per result on average

3 · AI native search API

Built for AI

how
its own copy of the web, long text, full pages on request
we used
Exa, Tavily, Linkup, Firecrawl search
catch
each one sees a different part of the web

Claude's WebSearch goes one step further: links plus a summary a model already wrote.

summary_all60.json median_latency_s (google, amortised over a batch), mean_snippet_chars (serper) · content/battle.md C5

Six measures the range that we measured on 20 Oct 2026

No source is the best on all six measures

MeasureThe agent asksWorstBest
CostWhat do 1,000 searches cost?about $30$1
Text per resultHow much text must I read?133 chars1,534 chars
FreshnessDoes it find news from this week? (of 15)314
RelevanceIs the answer in the top 5? (of 60)749
Speed and rate limitsHow fast? How many calls can I make?15.9 s · blocked0.6 s
DiversityDoes a second source give new links? (shared links)0.710.03

battle: TOS_PRICING.md (Serper $1) · summary_all60.json (claude.cost_usd_total, about $30 per 1,000; mean_snippet_chars; answer_in_top5; median_latency_s; overlap) · summary_fresh.json · results/retried.jsonl (DuckDuckGo blocked 28 of 30; Firecrawl 10 a minute)

3.4 Overlap · how many top 5 links two sources share, 60 trivia

Nine sources, but many show the same pages

Google, Serper, FirecrawlShare most links: 0.59 to 0.71. They seem to use Google's results.
Tavily, partlyAbout 0.4 with the Google group. Similar pages, in its own order.
Exa, Parallel, Linkup, ClaudeEach returns mostly different pages: 0.22 or less with anyone.

1.0 = the same links. 0 = no links in common. Average over 60 questions. Our reading of the links, not a vendor's statement.

research/battle/summary_all60.json overlap.<a|b>.mean_jaccard (n = 60 per pair)

pixel loop made with the stranger-builds engine · decks/meta/media/src/ponds.ts · first links: research/battle/results/<source>.jsonl id nq10 · overlap: summary_all60.json

3.9 Which sites come back · 10 questions people argue about, top 5 each

Each source favours different kinds of sites

Exa
30%
Parallel
28%8%
Tavily
16%10%10%
Google (Apify)
16%8%18%
Serper
16%8%20%
Firecrawl search
16%8%20%
Linkup
100% everything else: blogs, firms, small sites
Claude WebSearch
94% everything else
Wikipedia
100% encyclopedia

government, universities, international bodiesencyclopediaforum / video / socialreview / affiliateeverything else

research/battle/contested_summary.json per_source.shares (50 results each) · classes from a hand made domain list in contested.py

3

Part 3 · Route, agree, check

Select the source, then check the answer

Demo 1 a classifier selects the source before the search

A fast model labels the type of query

This page uses keyword rules. It does not call Jev. Each reason is a test result from today.

# the same task for Jev (about 0.1 s per call)
POST api.typesafe.ai/v1/systemone
{"state": "The user asked: netflix q3 2026 revenue",
 "questions": {"kind": {"type": "choice",
   "instructions": "What kind of search query is this?",
   "criteria": ["recent news",
     "fact a model would know", "two-step fact",
     "evidence or research", "what people say",
     "papers"]}}}

We did not test Jev on this task yet. We have 85 queries with known types for the test.

routing evidence: battle summary_fresh.json, answers_summary.json, summary_all60.json (HotpotQA), contested_summary.json shares, TOS_PRICING.md · Jev median 102 ms: research/s1s2/mined.json auc_jev.median_ms

illustration · pixel loop made with the stranger-builds engine · decks/meta/media/src/sorting-office.ts · routes from research/battle summary_fresh.json, summary_all60.json, contested_summary.json

Routing result same model, same prompt, 75 questions with known answers

Routing gave 2 more correct answers

Policy60 trivia15 newsCorrect, of 75
Tavily for all questions381553
Exa for all questions (best single source)451358
Trivia to Exa, news to Tavily451560

Routing can also skip search for facts that the model knows. This saves cost and time.

This result assumes a classifier with no errors, on two query types. We tested for one afternoon.

research/battle/answers_summary.json (all60: exa 45, tavily 38; fresh: exa 13, tavily 15)

4.2 What three sources gave us · Sonnet answered once from each of Google, Tavily and Exa

When sources agree, the answer is more often right

60 trivia · was the answer right?

Two or three agreed47 questions, 34 right

72%

All three disagreed13 questions, 6 right

46%

On news: 11 agreed, all 11 right. 4 disagreed, 3 right.

Right answers did not go up. The majority answer: 40 of 60. Same as Google alone, below Exa alone (45).
Merging found almost no new answers. Exa alone 49, all five together 51. News: 14, then 15.
Cost. Serper + Exa + Tavily at list price: about $16 per 1,000 questions, before model costs.

Agreement shows your agent when to check again.

research/battle/vote.json all60 + fresh: voting, union_answer_in_results · prices: TOS_PRICING.md ($1 + $7 + $8 per 1,000)

illustration, not test data · pixel loop made with the stranger-builds engine · decks/meta/media/src/council.ts · numbers: research/battle/vote.json

Demo 3 when Google, Tavily and Exa disagree, use deep research

Deep research fixed 1 more of the 13 hard questions

13 questions where sources disagreeCorrect
Answer from the first source6
Deep research: opens pages and searches again7
All 60 trivia questionsCorrect
Vote when sources agree, deep research when they disagree (22% to deep)41
Deep research for all questions44
Exa for all questions45

Talk B used the same 60 questions, so we already had a deep research answer for each question. Of the 13 questions, 7 ask for one fact and 6 ask for two facts. The sample is small: 13 questions.

research/meta/disagree_deep.py reads battle/answers/{core,rest}/*.jsonl and eval/results/deep.jsonl, graded by eval/grade.py

Main result ask the model with no search, then search, then compare

When memory and search agree, the answer is almost always correct

60 trivia · memory and search agreecorrect answers when they agree

Memory and Exa agree, 27 questions 27

Memory and Tavily agree, 30 questions 28

Memory and Google agree, 30 questions 27

When they disagreeold facts: 50/50 · news: search is correct

Trivia, memory and Google disagree: Google correct 13, memory correct 13

News: memory agreed with search on 0 or 1 of 15 questions

If memory and search agree on an old fact, use the answer. If they disagree on news, use the search result.

research/meta/disagree_deep.py over battle/answers/{core,rest,fresh}/{none,exa,tavily,google}.jsonl · "agree" is the text match in vote.py same() · Sonnet 5.5 · talk B: Claude's own confidence, AUC 0.73; Jev 0.61; Laya 0.54

System design lessons from the four talks

Ask memory first. Search one source. Read pages only if they disagree.

Memory

Answer and confidence, no tools

AUC 0.73

→

Classify

Label the query type. Jev, about 0.1 s

selects the source

→

One search

The best source for that type

news: 15 of 15

→

Compare

Old fact and agree: use it. News: use search.

27 of 27

→

Disagree

Search a second source, read the full page, check each quote

System 2

def answer(q):
    mem, conf = claude_no_tools(q, ask_confidence=True)      # System 1 from memory
    kind = jev_choice(q, KINDS)                              # select the source
    found, hits = claude_from(search(SOURCE[kind], q, k=5), q)
    if kind == "recent news" or same(mem, found):
        return found, cite(hits)                              # news, or memory and search agree
    pages = read_full(top(hits + search(OTHER_WEB[kind], q), 3))
    return claude_from(pages, q, quotes_must_match=True)      # System 2 only here

We measured each step. We did not run the full loop tonight.

4

Part 4 · Agents that search for your data

Other agents search for your data

Your data each agent gets different search results

Each agent gets different search results. How you publish your data controls if agents find it.

Make sure that your customers, and their agents, get your data correctly. If your data has value, agents can pay for it per call.

illustration · pixel loop made with the stranger-builds engine · decks/meta/media/src/two-webs.ts · the six doors are the agent native stack: research/agentnative/walk.md

1.2 The same search, twice

Search results for a person, and for an agent

For a person · illustration

who is leo messi
Sponsored Football shirts, big sale today …
Lionel Messi Facts | Britannicabritannica.com › factsArgentine footballer, born 1987 in Rosario, who …
Lionel Messi · Wikipediaen.wikipedia.org › wikiLionel Andrés Messi is an Argentine professional …
Messi stats and newsexample-sports.comLatest goals, transfer talk and …
More results
I'm not a robot

For an agent · Tavily's documented response shape

{"query": "Who is Leo Messi?", "results": [{ "title": "Lionel Messi Facts | Britannica", "url": "https://www.britannica.com/facts/Lionel-Messi",cite it "content": "<snippet>",read it, no scraping "score": 0.81,rank it "published_date": "Tue, 11 Mar 2025 17:00:00 GMT"}],is it fresh? "usage": {"credits": 1},what did it cost? "request_id": "123e4567-…"}report a failure

Each field is written down, and its name never changes.

docs.tavily.com/documentation/api-reference/endpoint/search (response example) · left panel is an illustration

1.1 What an agent does with search

An agent is an AI that decides its next step and uses a tool to do it

Find the tooldoes it exist? Get accessa key, no password Asksend the request Read the answerlabelled data, not a web page Use it, or recoverfix what went wrong repeat thousands of times, with nobody watching

A person does this once and reads the screen. An agent does it thousands of times, alone. If a step needs a person, the agent gets stuck there.

2.1 ora.ai, a public grader of agent readiness · its leaderboard

Most of the web is not ready for agents

241 626 703 751 900 869 685 303 98 28 0-910-1920-2930-3940-4950-5960-6970-7980-8990-100 ora score out of 100 · bar height = number of sites median 42 3,221 sites, 62%, score under 50 immersivecommons.com · 100 our site, for reference: not on this board

ora scores four things out of 100: can an agent find you (20), get in (30), use you (40), pay you (10). Only 28 of 5,204 sites score 90 or more. Two score 100.

ora.ai public leaderboard, pulled 2026-10-17 · research/agentnative/chart-data.json · ora.ai/methodology · IC: ora scan 2026-10-20

2.2 Companies that sell search and web data · ora score of each main site

Companies that sell to agents are ahead

all sites, median 42
Agent Tools category, median 59.5
zenrows.com
96
apify.com
96
tavily.com
92
exa.ai
90
parallel.ai
89
brightdata.comevent host
89
firecrawl.dev
84
linkup.so
64
jina.ai
61
perplexity.ai
59
serper.dev
33

This score measures how ready the site is for agents. It does not measure search quality. Scans dated 2026-09-18 to 2026-10-17.

ora.ai public leaderboard, pulled 2026-10-17 · research/agentnative/chart-data.json (search_and_data_vendors, category_medians)

Live test four public APIs, read only, 20 Oct 2026, 13:18 to 13:30 PT

Agents can find most sellers. Use, access and payment need work.

Mostly done

Discovery

All three search sellers publish llms.txt, OpenAPI and an MCP server. The files are on the docs site. The API host that agents call returns 404 for most files.

In progress

Use

An error must tell the agent what to do. Exa sends a code, a fix and a request id. Tavily sends only "missing or invalid".

Not done

Access

Each sign-in server that we read needs a browser and a person. None of the three has a device-code login.

Started

Payment

One of four APIs replied to a call with no key with a price: Exa, $0.007, x402.

Agent native means that an agent completes each step without a person.

research/agentnative/walk.md (each cell has a source) · Wikipedia has almost none of the new files. Agents can use it today: JSON with no key, errors that name the bad parameter, published limits.

Rate limits what happened during our tests on 20 Oct 2026

Rate limits control which agents can use your data

SourceResult
DuckDuckGo, no keyblocked 28 of 30 queries
OpenAlex, no keyrefused 8 of 8: the free daily budget was used
Wikipediarefused 20 of 30 until we sent a name and contact: 10 calls a minute with no name, 200 with a name
Exa, no keyno block: it sent a price, $0.007 per call

Unknown agent

Limit the rate. Send Retry-After with the time to try again.

Named agent

Give more calls to a client with a name: a User-Agent, a key or a device-code login.

Paying agent

Give access for a price per call (x402).

Each limit must tell the agent what to do next.

battle: summary.json (ddg, openalex), results/retried.jsonl · mediawiki.org/wiki/Wikimedia_APIs/Rate_limits · agentnative: walk/probes.jsonl (Exa 402) · none of the APIs that we tested sends the draft RateLimit headers

illustration · pixel loop made with the stranger-builds engine · decks/meta/media/src/the-door.ts · Wikimedia limits: mediawiki.org/wiki/Wikimedia_APIs/Rate_limits · Exa 402: research/agentnative/walk/probes.jsonl

1.7 Pay · HTTP 402, "Payment Required"

The server names a price. The agent pays, then retries.

POST /searchno account 402 + termsprice, currency, network Sign a paymentfrom the agent's wallet Retrywith proof of payment 200the results We stopped at the 402. Steps 3 to 5 show how the protocol works; we did not run them.
  • The real terms, 20 Oct 2026$0.007 in USD Coin, a stablecoin, on the Base network (eip155:8453), x402Version: 2. The reply on the first slide.
  • Statusx402 was open sourced by Coinbase in May 2025. It moved to an x402 Foundation at the Linux Foundation on 2026-04-02. check primary Adoption figures conflict, so we quote none.

research/agentnative/walk.md, Exa row 13 · eco.com/support/en/articles/14839402-x402-protocol-explained (secondary)

Definition agent native

An agent native platform is one an agent can find, join, call, understand, recover from and pay, without a human reading a web page.

5

Part 5 · Your own data

Your own data is also a search engine

1.1 What you need first: how RAG works

How RAG gets from a question to an answer

Questionyou ask in words Retrieve3 search methods, 20 results each Rankmerge the lists Readthe passages, word for word Answer + citeeach claim names its paper if not enough, search again

1.3 Four words you need for move 2

Chunk

One passage cut from a paper, short enough to read at a glance.

Retrieval works on chunks; one vector cannot hold a 30 page paper.

1,017 full text papers → 60,200 passages

Embedding

A list of numbers that stands for what a passage means.

A vector made by a model. Closeness is the angle between two vectors (cosine).

768 numbers · our top passage: closeness 0.741 (cosine)

Vector index

A filing system that finds the nearest meanings fast.

It checks only part of the index (HNSW), so it trades a few misses for speed.

default setting: 4 of the true top 20 · tuned: 20 of 20

BM25

Score a passage by how many of your rare words it holds.

Each repeat of a word counts for less (k1 1.2). Long passages are scaled down (b 0.75). Rare words count more.

right passages found in the top 10: our old "keyword" search 0.076 · real BM25 0.457

content/foundations.md §3 · rag/demo_rrf_hybrid.json · life/research/cross_search.py (ef_search comment, docstring) · rag/retrieval_eval_latest.txt

1.4 How the library picks what you see: two searches, one list

score(d) = Σ w · 1 / (60 + rank)

Hybrid search

Ask a meaning finder and a word finder at once, then merge.

Keyword results (BM25) and meaning results (vectors), merged into one list. BM25 catches exact names and codes. Vectors catch the same idea in other words.

we run three paper retrievers per question

Reciprocal rank fusion

Each list gives points for position. Points add up across lists.

It uses only positions, so different kinds of score never need converting. k = 60. Each of our three searches has weight w = 1/3.

first place in one list: 1/61 = 0.0164

content/foundations.md §3 terms 5 and 6 · life/research/cross_search.py (_rrf_weighted, fuse block)

The method How a research system improves

A research system improves in three moves

Why it matters to you: any AI that answers from your documents can miss. These moves work on your library too.

  1. 1Notice what is missingSearch outside your library. List what it lacks.demo: 0 of 30 relevant papers were there
  2. 2Add itGet the full text, not just the title. Cut it into passages.demo: 6 papers, 195 passages
  3. 3Check the answerAsk again. Check every quote. Run a fixed test.demo: 11 of 11 quotes found

Then go round again. Each round, the library keeps what it learned.

rag/demo2/20_gap.json (0 of 30) · demo2/33_chunk.txt (195) · demo2/60_after_answer.json (quote check 11 of 11) · ~/.claude/orchestration/workflows/research.yaml

illustration of a real run · pixel loop made with the stranger-builds engine · decks/meta/media/src/library.ts · numbers: research/rag/demo/ (learn_1_seed.txt, learn_3_chunk.txt, before_after_nosession.json)

Move 3 Same questions, asked again · added papers in the top 8

question, written before any searchbeforeafter
the questionHow should a retrieval system split long documents into chunks, and does the way you chunk change the quality of the answers?03 · #1, #2, #3
sub-question 1fixed-size versus semantic chunking of documents for retrieval augmented generation04 · #1, #2, #3, #8
sub-question 2effect of chunk size and overlap on retrieval accuracy and answer quality04 · #1, #3, #4, #7
sub-question 3chunking long documents while keeping context from the surrounding text05 · #1, #2, #3, #5, #8
sub-question 4propositions or sentences versus passages as the unit of retrieval02 · #1, #4
passages the answer readstop 8 after merging all five lists0 of 87 of 8

rag/demo2/11_before_retrieval.json · 50_after_retrieval.json · 70_summary.json · 01_subquestions.json (17:45:57) · research.brain_search k = 8, served path

The payoff Same question, prompt and model · it may use only the top 8 passages

The answer, before and after

before · from surveys and one chunking paper

Chunk size and overlap "play a crucial role in the overall effectiveness of the RAG system."

"Larger chunks can capture more context, but they also generate more noise."

They give no single best chunk size.

quotes found word for word: 7 of 9

after · 7 of 8 passages from the added papers

Fixed-size chunks are the usual method, but this "often fragments context, resulting in incomplete retrieval."

In one clinical test, "Adaptive chunking achieved the highest accuracy": 87%, against a "baseline 50%."

Contextual retrieval "requires greater computational resources."

quotes found word for word: 11 of 11

Before: general advice. After: a measured result, with its cost.

rag/demo2/40_before_answer.json · 60_after_answer.json (claude-opus-5-5, both saved in full; lines shown are excerpts) · scripts/demo2_answer.py (quote check: normalised text match) · 87%: Comparative Evaluation of Advanced Chunking … Clinical Decision Support (2025), p = 0.001

Small and large models each row is a test result

Use small models for yes or no. Use large models to copy quotes.

TaskSmall modelLarge model
Is the fast answer correct?Jev, about 0.1 s: AUC 0.61 · Laya on CPU, about 3 s: 0.54Claude rates itself: 0.73
Is this passage relevant?3B: same score as Claude on an easy test. On a difficult test it accepted 1 in 3 wrong passages.Claude, difficult test: rejected 94%
Copy quotes from a passage3B: 19% of quotes were inventedClaude: 0%

Ask the correct question

Jev was good at "Do the snippets contain the answer?" (0.79). It was bad at "Is the fast answer correct?" (0.61).

Use a difficult test

On an easy test, the 3B model and Claude had the same score. On a difficult test, Claude was better.

Divide the work

Small model: a fast yes or no. Large model: text that must match the source.

research/s1s2/mined.json (auc_jev, auc_laya), ext_summary.json (self AUC) · life/research/experiments/exp001, exp002, exp004, exp005 (content/selfrag.md slides 19, 20)

pixel loop made with the stranger-builds engine · decks/meta/media/src/small-large.ts · invented quote and 19% vs 0%: life/research/experiments/exp002_claim_extraction/README.md · the source passage shown is an example

Six lessons from one afternoon of tests

Six lessons for agent search

The input sets the answer

Same model. News with no search: 4 of 15. With the best source: 15 of 15.

Memory is a source

On old trivia, memory and Google results got the same score: 40 and 40. Ask the model first.

Select the source for each query

No source is the best on all six measures. A classifier can select one in 0.1 seconds.

Compare two answers

Memory and search agreed: 27 of 27 correct. If they disagree, read the full page.

Make your data easy for agents

The median web site scores 42 of 100. Companies that sell to agents score 89 to 96. Set rate limits and prices for agents.

In your library: find, add, check

The 4 key papers: 0 found before, 4 found after. A program checks each quote. Run a fixed test after each change.

Summary Search in the age of agents

An agent's answer is only as good as its sources. Select the source, check the answer, and make your data easy for agents to read.

Ray Zahid · Immersive Commons · all five talks: agent-search-talks.pages.dev · tests from 20 Oct 2026, one afternoon

short cut01 / 01
Overview · arrows + Enter or click · Esc to close