Sources

What the assistant is allowed to answer from — your own articles, your live fee and limit configuration, the product documentation and your FAQ — plus the retrieval tester that answers "why did it refuse", and why a fresh install answers almost nothing.

7 min readUpdated 7 August 2026admin, knowledge, retrieval, articles

/admin/ai/support/knowledge. Four kinds of knowledge feed the assistant, and they are not equal.

Source Where it comes from Retrieval weight
Your live configuration Read out of your own database when a policy question is asked 1.30
Your articles Written through the article routes, or drafted from a ticket 1.15
Product documentation Shipped with the platform and its addons 1.00, or 1.20 for a customer help page
Your FAQ The FAQ & Knowledge Base addon, if installed 0.90

Only the last three are indexed, and only those three appear in the Sources list further down the screen. Your configuration is not a document: it is read live, at the moment a fee, limit or timing question arrives, and turned into passages on the spot.

Weight decides ranking, not permission. An FAQ row ranks below the shipped documentation because FAQ answers are short and match loosely, but it is still knowledge you authored, so it satisfies the policy gate where a documentation page never can. See Your own knowledge outranks everything below.

The product documentation is two separate corpora. Operator pages answer you, through the Handbook. Customer pages answer your users, through support. Neither can be retrieved into the other's answers.

The split above is enforced rather than preferred: a customer question can only ever retrieve customer pages. That is not about relevance — an operator page quoted into a support answer tells your customer how your platform is administered, and the surrounding prose tells them who sells it.

Why a fresh install answers nothing

This is the single most common "the addon is broken" report, and it is not a fault.

The shipped documentation describes the software. It explains how a withdrawal screen works. It says nothing about your withdrawal fee, your KYC tiers, which countries you serve, or how long your payouts take — and that is what support tickets are about.

A configured platform closes part of that on its own — the fees and limits you have already typed into deposit and withdrawal methods are read back as answers, which is usually the largest single class of escalation gone. Everything else is still yours to write, so on a fresh install a correctly-built assistant refuses most things and escalates honestly, and the operator concludes it does nothing.

The install ships with fifteen seeded policy questions covering exactly those gaps — fees, limits, timings, countries, refunds, verification, support hours. They are ordinary articles with the question already written and the answer left blank, and answering them is what converts the addon from a demo into a product. It is perhaps an hour of writing, and it is the highest-value hour you will spend on this install.

While any are still blank you get a warning card headed "Answer these before switching the assistant on", a paragraph explaining why, and a progress bar with answered / total beside it. That is the whole banner — the questions themselves are not on this screen, and neither is an editor for them.

To read which ones are outstanding, open Overview, find What to fix"You have not documented it", and press Show detail; the unanswered stubs are listed there under the policy topic customers have actually been refused on. To answer one, use PUT /api/admin/ai/support/article/{id} — see Teaching, which explains why there is no editor here.

When the last one is filled in the card turns green and says so.

Your own knowledge outranks everything

Questions about your fees, limits, review times, supported countries and refund policy can only be answered from something you authored. Three kinds of source count as authored by you, and the third is the one most operators do not expect:

  • An article you wrote.
  • A row in your FAQ, if the FAQ & Knowledge Base addon is installed.
  • Your live configuration — the fee, the minimum, the maximum and the processing-time note you typed into the admin panel.

The assistant will not take a figure out of the general product documentation and state it in your voice, even if a number is sitting right there. That rule holds in every language, not only English. It is the reason the assistant is safe to leave running: the worst it can do on a policy question is hand over to a person.

Configuration answers three of the five topics

When a fee, limit or processing-time question arrives, the assistant reads your own tables before it reads anything else and turns what it finds into passages titled "This platform › Fees and limits › …":

It reads To answer
depositMethod and withdrawMethod — fixed fee, percentage, min, max Fees, limits
withdrawMethod.processingTime, quoted verbatim How long things take
ecosystemToken fee and limits, per chain, for any currency code named in the question Fees, limits
exchangeCurrency.fee — the spot withdrawal percentage Fees
walletTransferFee, spotWithdrawFee and withdrawChainFee — the last decides whether the passage says the network's own fee is passed on Fees

Those passages carry weight 1.30, above your own articles at 1.15. That ordering is deliberate: an article is what you said you charge, and the configuration is what the customer will actually be charged.

Three rules bound it, and they are worth knowing before you rely on it:

  • It fails closed. Nothing configured, a table this install does not have, or any error at all produces no passages, and the question escalates exactly as it did before.
  • It derives nothing. A percentage is reported as a percentage and a minimum as a minimum. It never computes "your fee on 100 USDT would be 1.5" — the live form applies rounding and chain-fee rules this reader does not reproduce, and a number that disagrees with the form is worse than no number.
  • It invents no durations. A timing question is answered only from a processingTime string you filled in yourself. If none of your withdrawal methods carries one, timing questions still escalate.

Long lists are cut at eight methods, and the passage says so rather than presenting eight of your forty payout rails as the complete set.

Configuration cannot settle "which countries do you serve" or "what is your refund policy" — there is no field holding either. Those two topics are answered from an article or an FAQ row or not at all, which is why they are among the seeded questions above.

The retrieval tester

Test what it would find is the second block on this screen, and it exists to answer the question operators ask most — why did it refuse that? It runs retrieval and stops there: the answering model is never called, so a test is a fraction of the price of the answer it is diagnosing.

Runs the retrieval pipeline for one question and returns what the model would have been given.

The reranker is a model call, and this route runs it by default — on any real corpus the first pass finds more candidates than aiSupportTopK, which is what triggers it. The verdict banner says reranked when it happened. So each press bills a small generation, and this is the one model-calling admin route that checks no budget and records no turn, so that spend never reaches the figure your caps are computed from.

Call the endpoint with ?rerank=false for the BM25 ordering instead: the response is the same shape, reranked comes back false, and it genuinely costs nothing. The screen's own button does not pass it. See the API reference.

Type the customer's question and press Test. You get a verdict banner — "It would answer this" or "It would hand this to a person" — with "Confidence N%, needs M%" under it, then the passages in the order the model would see them, each with its breadcrumb, a preview and its normalised score. Three shapes of answer:

  • Nothing found. No source covers it. Write the article; the question is almost certainly already on Gaps.
  • Found, but under the floor. Something related exists but does not answer it. Usually a phrasing mismatch — your article says "identity verification", the customer wrote "why is my ID stuck". Add the customer's words to the article.
  • Found, above the floor. Retrieval was fine, so the refusal came from the grounding gate afterwards. See Settings.

The verdict banner reports the retrieval floor only. The policy gate runs after retrieval and is not part of that comparison, so a fee question can show "It would answer this" at 80% confidence and still be handed to a person because nothing you authored was among the passages.

The passage list is where you check that: if the top result is a breadcrumb beginning "This platform › Fees and limits" or one of your own articles, the gate has what it needs. If every passage is a product documentation page, it does not.

The Sources list and rebuilding the index

The third block lists every indexed source with its kind, how many passages it contributed, and its weight where that is not 1 — a source above 1 is badged Preferred. A source that failed to index shows its error on the row rather than quietly contributing nothing. The count beside the heading is the whole index.

Rebuild index rebuilds it from the current sources. Run it:

  • after updating the platform or any addon, if the documentation packs changed
  • after a bulk import of articles
  • if the tester finds nothing for text you can see in an article

An index built from a previous release is the quiet failure here: everything looks healthy and the assistant confidently describes a screen that has moved.

You rarely need it for ordinary article work: creating, editing, publishing and deleting an article all reindex inline.

Writing articles that retrieve well

  • Title it as the question. "Why is my withdrawal pending?" retrieves better than "Withdrawal processing states".
  • Use the customer's words, including the wrong ones. If people call it "verification", "KYC" and "ID check", all three belong in the article.
  • One question per article. A long page covering six topics matches all six weakly and none of them well.
  • Put the number in the sentence. "The fee is 1.5%" is citable. "Fees vary by method" is not, and the assistant will refuse rather than guess.