Skip to main content

Knowledge

Written by Product Management

This article is auto-synced from its in-app version in Tai.

Knowledge items give agents grounded, up-to-date content to draw on — help articles, procedures, FAQs, and other documents.

The Knowledge catalogue, listing sources with their type, status, chunk count, and a Partial index badge

When you'd use this

Knowledge lets an agent answer questions from your company's own content rather than relying on general training alone — for example, your cancellation policy so the Customer Care agent can cite it accurately, or a product FAQ so agents give consistent answers about your offering.

What you can do

Browse knowledge

  1. In the Workbench sidebar, click Knowledge (under the AI Platform section), then Sources.

  2. The catalogue lists all knowledge items available to your company — built-in items (managed by Nezasa) and any items your company has created. It opens as a table; switch to card view with the toggle in the top-right, and use Columns to show or hide table columns.

  3. Use the search bar or the Ownership, Status, Type, or Collection filters to narrow the list. Your filter and sort selection is remembered, so it's applied again the next time you open the list.

  4. Use Group by to split the list into sections by collection. Items in no collection appear under Uncollected. An item can belong to several collections, so it appears under each of them.

  5. Click a knowledge item to open its detail page, where you can see its type, description, and content.

  6. Collections — a sibling item under Knowledge in the sidebar — is where you create and edit the collections themselves. A collection's item count there links straight into the catalogue, filtered to that collection.

Create a knowledge item

  1. In the sidebar, click Knowledge, then Sources.

  2. Click Add Knowledge Source in the top-right corner.

  3. Fill in the required fields:

    • Name — the display name shown in the catalogue.

    • Description — what the knowledge item contains. This helps route the right content to the right agent.

    • Type — choose SNIPPET for short text you type directly, FILE for an uploaded document, or WEBSITE for pages crawled from a URL.

    • Content — the text the agent can draw on (for SNIPPET).

  4. Optionally, assign a Collection to group this source with related ones, so an agent or skill can be scoped to the whole group at once.

  5. Click Add Knowledge Source.

Add several documents at once

A body of knowledge is rarely one file. When you choose FILE, the picker takes as many documents as you select, and each one becomes its own knowledge item — so a ten-document handbook is one trip through the form, not ten.

  1. Choose FILE, then select every document you want in one go. Reopen the picker to add more; a file already on the list won't be added twice.

  2. Each file gets a row with a Name already filled in from its filename, which you can edit. The Description is optional here — leave it blank and the name is used, then let Generate write a proper one once the item has indexed.

  3. Pick the Collections once; every document in the batch joins them. That collection is what you point an agent at, so the whole set becomes usable in one step.

  4. Click Add Knowledge Source. The documents upload one after another and each row reports its own outcome.

If a file is too large or of an unsupported type, its row says so and it's left out — the rest still go through. If an upload fails, that row keeps the reason and the button becomes Retry, which picks up only what didn't land; the documents that already succeeded aren't created twice.

Let TAI draft the description

Writing a good description is fiddly, especially for a document or a site you haven't read end to end. A Generate button under the Description field summarises the source's own content into a short draft.

  • For a SNIPPET, it summarises whatever is in the Content box, so you can generate as soon as you've pasted the text.

  • For a FILE or WEBSITE, it summarises what was actually indexed — so the description reflects what agents can really retrieve. The button becomes available once the source has an index to describe. A source showing the Stale badge can still generate one, from the version agents are answering from right now — see If a source stops updating. Point a source at a new address, or replace its file, and it waits for the fresh index before it can generate again.

The draft lands in the field for you to review and edit, with an Undo next to it if you'd rather keep what you had. Nothing is saved until you save the item. If a draft had to be cut mid-sentence to fit the length limit, it ends in an ellipsis (…) so you can see where it was cut.

Index exact pages instead of crawling a whole site

For a WEBSITE item, you're not limited to letting the crawler discover pages on its own. Under Explicit pages, list the specific URLs you want indexed — one per line. These pages are always crawled in addition to whatever the sitemap and on-page links turn up.

If you only want those exact pages and nothing else, turn off Follow links. With it off, the crawl reads the start URL and your listed pages only — it never consults the site's sitemap or follows a single link from any page it reads. This is the right choice for a large site where only a handful of pages actually matter to your agents, or where the site's navigation would otherwise pull in far more than you need.

Every explicit page must be a full https://… address on the same site, at or below the start URL's path, and outside any exclude patterns — the same rules that already govern which pages a crawl can reach. A page outside that scope is rejected when you save, with an explanation of why.

Maximum pages still applies, and it counts the start page too. If you list 300 explicit pages, set it to at least 301 — the form tells you the number to use, so a long list can't be quietly cut short halfway through.

Check a website before you save it

For a WEBSITE item, click Test connection under the crawl settings. It fetches only the start page and reports back in a couple of seconds:

  • Whether the page could be reached, and where it ended up if it redirected.

  • Whether the site's robots.txt allows crawling that page.

  • How much readable text was found on it.

  • How many links and sitemap entries are in scope to follow — a quick sanity check on your page limit and any exclude patterns.

It also flags the two problems that are easiest to miss: a sign-in page, which returns a normal response but has nothing worth indexing — the crawler refuses to index a sign-in screen rather than filling your index with it (see below for what happens then); and a start URL that redirects out of scope — to a different address, or to one your exclude patterns drop — which leaves the crawl with nothing to read.

The test reads only the start page, so treat it as a strong signal rather than a guarantee: a site whose home page is mostly images can still crawl well from its other pages. Nothing is saved by testing, and a warning doesn't stop you saving — it's there so you can fix the address before the first crawl runs.

When a crawl covers only part of a site

A source's detail page showing the Partial index badge, its index size line, and a breakdown of skipped pages by reason

A crawl stops when it has read the whole site — or when it reaches one of its limits, whichever comes first. If a limit came first, the item shows a Partial index badge next to its embedding status, and the sync-history chart highlights the runs it happened on. This is a different fact from a Many sign-in screens badge (see below): Partial index means the crawl stopped early on a limit, while Many sign-in screens means a large share of what it did reach was refused as sign-in screens. The two are independent, and a source can carry both at once.

The badge tells you which limit was reached and what to do about it:

  • The page limit you set on the source — the most common case. Raise it and re-sync to index more; a crawl is given the time to reach whatever limit you set. If the limit is already at its maximum, narrow the start URL or add exclude patterns instead, so the pages you do index are the ones worth having.

  • Too many requests spent on pages that couldn't be indexed — dead links, redirects, or files the crawler can't read. Narrow the start URL or add exclude patterns so the crawl spends its budget on real content, then re-sync.

  • The crawl's time limit, or a site map too large to read in full. Both mean the site is bigger or slower than a single run can cover; contact support if the index keeps coming back incomplete.

This matters because the page count on its own can't tell you the difference. Without the badge, a source that indexed the first 200 pages of a 5,000-page site looks exactly like one that indexed a 200-page site in full — and agents would answer from the smaller picture without anything saying so.

The badge covers limits the crawl ran into. Pages it skipped one at a time are reported separately — see below.

How much of the site was indexed

Under Index size, a website source reports what its last crawl kept and what it left out — for example "120 pages · 500 chunks · 44 skipped" — with a breakdown of the reasons underneath.

Skipping is normal. A crawl of a real site constantly passes over PDFs and images, dead links, and pages that turn out to have no readable text; a source that skipped nothing simply says nothing. The number is there for the times it isn't normal — a large count next to blocked by robots.txt, could not be fetched, or a sign-in screen usually means something changed on the site rather than in the crawler.

The reasons you may see:

  • not served as a web page — usually a PDF, image, or other file the crawler can't read as text. It also covers a page that is HTML but whose server labels it as something else (or sends no label at all), so a large count here on a site that has no files worth indexing is worth raising with whoever runs it.

  • could not be fetched — the page errored, timed out, or redirected too many times.

  • no readable text — the page answered, but nothing could be extracted; often a page that renders entirely with JavaScript.

  • blocked by robots.txt — the site's own rules forbid crawling that page.

  • redirected outside the crawl scope — the link led off the site, above the start URL, or onto a path your exclude patterns drop.

  • a sign-in screen — see the section above.

  • too large to read — the page exceeded the size the crawler will pull.

  • resolved to a private address — the address pointed inside a private network and was refused.

The count is of pages the crawl actually reached. If the run also stopped at a limit — the Partial index badge — then pages beyond that limit were never reached at all, and aren't counted here.

Checking a sync

Every re-sync — and every automatic re-crawl — is recorded on the item's detail page, so clicking Re-sync is never a shot in the dark.

  1. Open the knowledge item and scroll to Sync history.

  2. Each row is one run, newest first: when it started, how long it took, who (or what) triggered it, and its outcome.

Read the Notes column to see what a run actually did:

  • Index already up to date — no changes — the source was checked but nothing had changed, so nothing was re-indexed.

  • A chunk count, such as +15 / −3 chunks — real content was added or removed.

  • A failure reason, when a run didn't complete — the same explanation shown on the item itself.

  • Nothing from this run was published — the run stopped before it finished, so the page and chunk counts on that row are what it had reached, not what is indexed. Usually you edited the source while it was working, and a follow-up run takes over. Where a failure reason stands in front of it instead, the run was given up on after repeated attempts, and the item itself shows the same failure.

  • Scheduled under Triggered by means an automatic re-crawl rather than something you clicked.

Clicking Re-sync shows up here immediately, badge and all — no page reload needed to see a run start. If a run is already queued for the item, clicking Re-sync again tells you that, rather than starting a second one.

When a site is behind a sign-in screen

The crawler never indexes a sign-in screen — an index whose content is "Sign in to continue" is worse than a smaller one. What happens next depends on the rest of the site:

  • If nothing else could be indexed, the sync fails and whoever set it up gets an email. A source that had indexed before keeps answering from that earlier version (see If a source stops updating below); one that never has cannot be used until this is fixed. Point the source at a publicly readable page, or remove the sign-in requirement, then re-sync.

  • If the rest of the site indexed fine, the sync succeeds on those pages. The sign-in screen is left out — and so is any other page that also looks like one, once enough of them turn up to say the site is gated. If a large share of the pages the crawl reached were refused this way, the item carries a Many sign-in screens badge — so a thin index reads as a gated site rather than a small one. Point the source at a publicly readable section, or narrow the start URL, then re-sync.

Usually the start page is what gives it away: one that is itself a sign-in screen settles it for the whole site. Where the start page can't be read — it errors, isn't a web page, redirects to a sign-in service on another address, or has no readable text — the crawler judges the site by the pages it could read instead: if as many of them are unmistakably sign-in screens as are real content, the site is treated as gated and the sync fails the same way. A sign-in screen here means a sign-in title next to a password box, next to a "Continue with Google"-style button, next to a prompt that mails you a login link or asks for a passkey, or with nothing else readable on the page at all.

Where the start page redirects, the crawler reads the page it lands on too. A sign-in screen there weighs on the sign-in side of that balance — the site chose to send you to it, so it says something about getting in — and where nothing else could be indexed at all, the sync fails as a sign-in screen rather than as a redirect out of scope, which is the more useful of the two answers. An ordinary page there weighs on neither side: a bare domain that redirects to its www address or to a regional home page says nothing about whether the rest of the site is open.

A start page that opens fine doesn't exempt the rest of the site, but it isn't ignored either: it counts twice toward real content, so it takes that many more sign-in screens to tip the balance. So a public home page above a members area keeps its public pages and leaves the members area out of the index, while a single "How to log in" support article on an otherwise open site is still indexed as the content it is — as is an ordinary page that merely carries the sign-in form your site's template puts on every page. A newsletter signup and a "Reset your password" page collect an address and mail something back too, and neither is counted as a sign-in screen.

The page's own title is what decides that, so there is one case where a real article does count: a support page titled "Single sign-on" or "Log in with a passkey", under a template that also puts a sign-in button above it, reads as a sign-in screen however much is written on it. One or two are outnumbered by the rest of a help centre. A whole section of them is not — if that's your site, point the source at a section below it.

A site that moved behind a sign-in wall between crawls is the usual cause. It's also worth checking that the page really is a sign-in screen — a page titled something like "Log in to your account", sitting next to a sign-in form, a "Continue with…" button, or an "Email me a login link" prompt, or one that renders entirely in the browser and has nothing else on it yet, can occasionally be read as one. If that's what happened, point the source at a different page.

If a source stops updating

A source's detail page showing the Stale badge and the notice explaining how long it's been since the last successful index

Content sources are re-checked periodically. If a check fails, the person who set the source up receives an email with the reason and a link to the item — for example the site could not be reached, its robots.txt now blocks crawling, or it sits entirely behind a sign-in screen.

A failed check doesn't take the source away from your agents. They keep answering from the last version that indexed successfully, and the item shows a Stale badge instead of its usual status — so what they know simply stops moving forward until an update succeeds. Re-checks keep running in the background, and a source that starts working again picks itself back up without you doing anything. If the reason needs a fix at your end — a new address, a crawlable URL — make it and re-sync.

Some sources have no earlier version to fall back on, so agents cannot use them at all until an index succeeds. These show Failed rather than Stale:

  • A brand-new source whose very first index failed — there has never been a good version.

  • A website source you've pointed at a new address, or a file source whose document you've replaced. In both cases what was indexed before belongs to the thing you just swapped out, and answering from it under the new address or filename would be misleading — so it's set aside until the new content indexes.

You'll get one message per failure, not one per retry — and, if it's checked again and still fails, another every few weeks until it recovers or you fix it. No further messages once the source updates successfully again.

Attach knowledge to an agent

  1. In the sidebar, click Agents and open the agent you want to update.

  2. In the Capabilities section, find the Knowledge field.

  3. Select one or more knowledge items from the picker.

  4. Click Save changes.

Delete a source an agent still uses

Deleting a knowledge item or a collection that is still attached somewhere no longer fails. TAI first tells you what still uses it, by name, and asks you to confirm.

  1. Open the knowledge item (or, for a collection, the Collections tab) and click Delete.

  2. If nothing uses it, the usual confirmation appears and the delete goes through.

  3. If something does, a second dialog names what still references it: the agents using a knowledge item, or the knowledge items, agents and skills attached to a collection. Click Delete anyway to go ahead, or dismiss the dialog to leave everything as it is.

Confirming detaches the item from everything that referenced it, so those agents and skills keep working; they simply no longer have that source. Detach it by hand first if you would rather review the referrers one by one.

Check what a search actually finds

Preview search results for a query, each chunk showing its source, a Semantic match badge and a relevance bar

Before you rely on a knowledge item, search it the way an agent would.

  1. In the sidebar, click Knowledge, then Search.

  2. Type a question a user would really ask.

  3. Choose what to search in the scope list: the entire catalogue, one collection, or one agent — picking an agent searches exactly the sources that agent can reach, so you see what it would find.

  4. Click Search.

This shows the top 8 matches — the same number an agent itself retrieves, so what you see here is what it would see. Each result names its source and says whether it matched on meaning (Semantic), on wording (Keyword), or both. Anything that matched on meaning also shows how relevant it is: a percentage — how close your question's meaning is to the passage's — and a bar comparing it against the other results in this search, so even closely-scored results are easy to tell apart at a glance. A long result can be expanded to read the full passage instead of just the first few lines.

When nothing comes back, the message tells you why:

  • No knowledge in this scope — nothing is assigned to the agent or collection you picked.

  • Items in scope, none indexed yet — the content is there but still being processed. Wait, or use Re-sync on the item.

  • No match above the relevance threshold — the sources are searchable, but nothing in them is close enough to the question. The message names the nearest content and how close it got, so you can tell "we don't cover this" apart from "we cover it, but not in these words".

That last case is what an agent sees too: rather than quoting loosely related content, it will say it doesn't know. If a question you expect it to answer lands here, the source is probably missing the subject your users are asking about — add it, or reword the source to use the terms they use. You don't need to match their exact phrasing: wording matches allow for word forms, so "cancellation policy" finds "cancellation policies".

Searching across languages

Your sources don't all have to be in the same language, and neither do the questions.

  • Ask in any language. A question in English can find a source written in German, and the answer comes back in the language you asked in. This works on meaning, not wording — so cross-language results show as Semantic matches, not Keyword ones.

  • Wording matches understand 12 languages, including English, German, French, Spanish, Italian, Dutch and Portuguese. Within a language, that means word forms match: a German question finds German content whether or not the endings line up.

  • Czech and Polish are matched on exact wording only — they still work, and they still match on meaning, but "wording" matches need the same form of the word.

If you add a source in a new language, use Re-sync on it so its wording matches are indexed for that language.

Practical examples

WEBSITE — external sources that stay current automatically

  • Government travel advice — crawl your national travel advisory pages (for example the UK's FCDO travel advice), scoped to the destinations you sell. An agent then cites current advice, not a document from six months ago.

  • Airline baggage policies — crawl the baggage pages of the airlines you work with most, so an agent like Itinerary Checker makes a real judgement on passenger and luggage combinations rather than just flagging a mismatch.

  • Supplier booking conditions — most hotel groups, cruise lines, and ground operators publish their amendment and cancellation terms publicly. Crawl those pages instead of maintaining your own copy.

  • Destination health information — crawl a source like NHS Fitfortravel by destination for vaccination requirements, malaria risk, and health certificates.

FILE — your own content

  • Destination guides and product fact sheets — upload your whole product folder in one go, so agents can answer detailed product questions.

  • Negotiated supplier contracts and rate sheets — the commercial terms you've agreed privately. An Ops agent can then answer commercial questions without someone digging through email.

SNIPPET — short entries you write directly

  • Complaints handling procedure — so an agent follows your actual process.

  • Cancellation fee schedule — your own customer-facing fees by notice period and product type, if this isn't already fed via API on products.

  • Escalation matrix — supplier emergency lines, duty manager contacts, media enquiry routing.

  • Internal booking rules — for example "all Japan bookings require JR Pass confirmation before final invoice." A few short entries for the rules your team knows but new starters don't.

Tips and limits

  • Browsing and preview search are open to all users of your company. Adding, editing, deleting, testing a website before you save it, and re-syncing require the Company Admin role. Separately: a Nezasa staff member administering your company cannot open Knowledge at all — no browsing, no preview search, no editing — unless you've added them under Data access by Nezasa.

  • An agent can only access knowledge items explicitly assigned to it.

  • After a knowledge item is created, it may take a moment to become ready for retrieval while it is indexed.

  • Routing hints improve the accuracy of retrieval — add specific terms your users are likely to use.

  • A document can be small on disk and still hold more than TAI will index as a single item. When that happens the item says too large to index; split the document into smaller files and upload them separately.

Related

Did this answer your question?