Evidence receipts
Cite, verify, and prove a compliance answer.
A compliance answer you can defend has three parts: the exact quote, proof it's current, and a way to
verify it. That's an evidence receipt — returned with every searchKnowledge /
KNOWLEDGE_SEARCH result.
The contract: cite → verify → answer
Cite
Use a result and keep its evidenceId. It's durable and reusable across sessions — carry it into your
final answer's audit trail.
Check the guidance
Each response includes deterministic agentGuidance — whether you can answer directly, whether a
structured tool is better, the evidence confidence, and the currentness state. It's computed from
release metadata, not guessed by a model.
Verify before answering
Call verifyKnowledgeAnswer({ evidenceIds }) (or KNOWLEDGE_VERIFY_ANSWER). Deterministic and
auditable — no hidden LLM judgment. If it doesn't verify, don't answer.
Why it matters
An evidence receipt is the difference between a compliance answer you can defend in front of a regulator and one you can't. Treat verification as required, not optional.
The fields you'll use
| Field | Use it for |
|---|---|
evidenceId | Cite it; pass it to verifyKnowledgeAnswer. |
exactQuote + sourceUrl | Show the user the precise text and where it came from. |
amendmentState | Confirm the rule is current. |
legallyBinding | Whether the source is binding (statute/notification) or advisory. |
Amendment trails
When an answer depends on whether a rule is the current one, call getKnowledgeAmendmentTrail (or
KNOWLEDGE_GET_AMENDMENT_TRAIL) to walk the lineage — what amended, superseded, or clarified a block,
with effective dates and the evidence for each edge.
Full shape (reference)
{
"evidenceId": "kref_...",
"knowledgePackKey": "in.business_compliance.authority",
"releaseKey": "central-ef-v6",
"canonicalId": "cbic:gst:notif:2024:01",
"exactQuote": "The rate of tax shall be ...",
"sourceUrl": "https://cbic-gst.gov.in/...",
"sourceClass": "notification",
"legallyBinding": true,
"amendmentState": "current",
"allowedClaimScopes": ["statutory_rule"],
"evidenceHash": "sha256:...",
"status": "verified"
}