Why Senso
Answers you can trace
What Senso does with your documents, and why an answer from Senso can be checked, corrected and trusted.
What Senso is
Senso is a context layer: one place for the facts your organization stands behind, which your people and your agents draw on. Every answer Senso writes comes from your own documents, and comes back with the passages it used.
Answering is half of it. Senso also checks what is said about you against those documents, and turns whatever is wrong or missing into a gap someone can close.
The mistake this catches is rarely an invented fact. It is a sentence that sounds right with one detail wrong: a 60-day refund window when yours is 30, or a price without the condition that limits it. Nobody notices until a customer acts on it.
Every answer shows its sources
senso search "How long do customers have to ask for a refund?" --output json{
"answer": "Customers have **30 days from the date of purchase** to request a full refund.",
"results": [
{
"content_id": "6c1f2a9e-3b4d-4e8f-9a7b-1c2d3e4f5a6b",
"version_id": "7a6b5c4d-3e2f-4a1b-9c8d-7e6f5a4b3c2d",
"title": "Refund policy",
"chunk_text": "Customers can request a full refund within 30 days of purchase.",
"score": 0.87
}
],
"total_results": 1
}Each result names the document (content_id) and the version of it (version_id) that the answer came from. Correct the document and the next answer changes with it, under a new version_id. The old text is no longer used.
Senso processes what you add and makes it searchable, with nothing for you to set up or run. Add a document with senso kb create-raw or senso kb upload, and it can be searched within seconds.
Check anything against your documents
An eval splits a text into the claims it makes and checks each one against your knowledge base. Every claim gets a verdict, with the passage quoted as evidence:
senso evals text --evaluator kb_accuracy --wait \
--text "Customers can get a full refund within 60 days of purchase. Refunds go back to the original payment method. Refunds take 5 business days to arrive."| Claim | Verdict | Why |
|---|---|---|
| A full refund within 60 days of purchase | conflict | Your refund policy says 30 days. |
| Refunds go back to the original payment method | verified | Your refund policy says the same, and the eval quotes it. |
| Refunds take 5 business days to arrive | unsupported | Nothing in your knowledge base says how long a refund takes. |
verified means a passage states it. conflict means a passage says otherwise. unsupported means nothing on file says either way: not a falsehood, but something you cannot back up. This run scores 1 of 3 claims verified.
senso evals text checks any text, including an AI model’s answer about you. senso evals content checks your saved and generated content. A second evaluator, brand_alignment, checks text against your brand kit’s writing rules instead.
Gaps: what is missing becomes work
A gap is something your knowledge base should say and does not, or says differently. Senso keeps one list of them, and each one points at what to fix:
| A gap opens when | Kind | It points to |
|---|---|---|
| An eval finds a claim your knowledge base contradicts | Conflict | The document that says otherwise |
| An eval finds a claim your knowledge base cannot support | Missing | A document that could cover it, when there is one |
| A search finds nothing to answer a question | Missing | The question, and how often it is asked |
Once you fix the source, record it with senso gaps answer, or close a gap that does not matter with senso gaps dismiss. A question that found nothing closes on its own, the next time a search answers it.
A question searched once is held back until it is asked again, so a single test search does not fill the list. Keep your own tests out entirely with --no-gap-signals, or set SENSO_GAP_SIGNALS=off.
The verification loop
The verification loop puts these together for what AI models say about you. Senso asks AI models the questions people in your market ask, shows where a competitor is named or cited and you are not, and checks each answer against your knowledge base. You fix the source, publish content written from it, and watch whether the next answers change.
Verification Loop walks through it.
If you already run retrieval
senso search context returns the passages without an answer, so you can write the answer with your own model. Either way, run your pipeline’s answers through senso evals text to see which claims your documents back up, contradict or cannot support. That turns “our answers seem fine” into a number.
