How Notebook Search Works
A friendly mental model for how your Flows find the right knowledge from your Notebooks at runtime.
How Notebook Search Works
You don't need to understand search algorithms to use Notebooks - they just work. But once you've uploaded a few sources and noticed an agent answer in ways you didn't expect (good or bad), it helps to know what's happening behind the scenes.
This page is the mental model.
The big idea
Your Notebooks hold everything you've uploaded - docs, websites, files from connectors. But your agents don't read your entire Notebook library on every message. They search it, pull back the most relevant bits, and use those bits to compose an answer.
So Notebook quality has two halves:
- What's in it - the documents, structure, freshness.
- How well your agent can find the right bits - which is what this page is about.
Step 1: Sources get chunked
When you add a knowledge source, FormWise splits it into smaller chunks - think paragraphs or short sections, not whole documents.
Why chunks?
- A 100-page PDF is too big to hand the model whole.
- Even if you could, only a few paragraphs are usually relevant to any one question.
- Chunks make retrieval precise: the agent gets the page on warranty policy, not the whole employee handbook.
You'll see chunk counts on your sources in the Notebooks UI. A 50-page doc might split into 80-200 chunks depending on its structure.
Step 2: Chunks get indexed
Each chunk gets converted into a numerical fingerprint that captures its meaning. Two chunks that talk about similar things get similar fingerprints, even if they don't share the same words.
This is what lets a search for "how do I get my money back?" match a chunk that says "refund policy" - the wording is different, but the meaning is close.
Status states - A new source moves through
pending->processing->ready(orfailed). Only sources that hitreadyare searchable. Big files take longer; check back in a few minutes.
Step 3: At runtime, the agent searches
When an end user sends a message, here's what happens:
- The agent looks at the conversation so far and figures out what to look up. (It may also call an explicit
search_knowledgetool if you've configured it that way.) - FormWise searches your Notebooks for the chunks most relevant to that query - using both meaning (fingerprint match) and keyword overlap. This hybrid approach catches the cases where one or the other would miss.
- The top chunks come back - ranked by how well they match.
- FormWise injects those chunks into the agent's context, so the model writes its answer with them in mind.
The end user sees an answer grounded in your real content, often with the source named.
What makes results better
If your agent is missing things in your Notebooks it should be finding, fix what you put in - it's almost always an input problem, not an algorithm problem.
- Give files clear names. "Refund Policy v2.pdf" beats "Doc1.pdf." Names show up alongside the chunks.
- Use real document structure. Headings, subheadings, bullet lists - structure helps chunking land on natural boundaries.
- Don't dump everything into one giant file. Five focused files outperform one mega-file every time.
- Deduplicate. If the same content lives in five places, retrieval gets noisy.
- Keep it fresh. Update sources when policies change. Old versions outranking new ones is a classic source of "but I updated that!"
- Trim the obvious filler. Cover pages, repeating headers, and "this page intentionally left blank" all become noise in the index.
When the agent uses Notebooks
Your Flow's agent uses Notebooks in one of three ways, depending on how you've set it up:
- Automatic - The Agent node has Notebook access turned on. It silently retrieves on every turn and uses what it finds.
- Explicit - The Agent node has a
search_knowledgetool. It searches only when it decides searching is needed (often more precise, sometimes slower for the first answer). - Scoped - For Agents, you choose which specific sources are attached. The Agent only searches those sources, not your entire Notebook library. This is how you build a focused HR Agent that doesn't accidentally answer with sales material.
Set this in the Agent node's settings, or in the Agent's own configuration if you're working with a persona-based Agent. See Configuring Agents.
Common pitfalls
| Symptom | Likely cause | Fix |
|---|---|---|
| Agent says "I don't know" about something clearly in your docs | The source is still processing, or its status is failed | Check the source's status in Notebooks; re-upload if failed |
| Agent quotes outdated info | An older version of the doc is still in your Notebooks | Delete the old source, leave only the current one |
| Agent mixes up two products | Both products live in one giant file, chunks overlap | Split into one source per product |
| Agent is too cautious / refuses to use Notebooks | System prompt or guardrails are over-restrictive | Loosen guardrails; explicitly tell the agent to use its Notebooks |
| Agent confidently makes things up | Notebooks don't actually have the answer | Add the missing content, or instruct the agent to say "I don't know" when its Notebooks are empty |
What you don't need to manage
- Re-chunking when you tweak a doc - updating a source re-processes it for you.
- Picking embeddings - FormWise handles the fingerprinting.
- Ranking tuning - the hybrid match is automatic.
Your job is the inputs and the agent instructions. FormWise handles the rest.