revise
Revise a belief. The old one is superseded and will never resurface — this is how a corrected mistake stays corrected.
Signature
revise({
belief_id: number,
new_text: string,
confidence?: number
}) → {
revised_from: number,
new_belief_id: number,
text: string
}
| Param | Type | Required | Description |
|---|---|---|---|
belief_id | int | yes | Id of the belief to revise. |
new_text | string | yes | The corrected belief. |
confidence | number 0..1 | no | Confidence in the new belief. Default 0.8. |
Example
MCP:
> revise belief 12 to say "the deploy target is prod.example.com (corrected — was staging)" — confidence 0.9
REST:
curl -X POST https://mneva.dev/v1/revise \
-H "x-mneva-key: $MNEVA_KEY" \
-H "content-type: application/json" \
-d '{
"belief_id": 12,
"new_text": "the deploy target is prod.example.com (corrected — was staging)",
"confidence": 0.9
}'
Response:
{
"revised_from": 12,
"new_belief_id": 18,
"text": "the deploy target is prod.example.com (corrected — was staging)"
}
What "superseded" means
The old belief row is not deleted. Its superseded_by column is set to the new belief's id. Future calls to currentBeliefs only see rows where superseded_by IS NULL — so the old wording cannot surface to the agent again.
History is preserved. beliefHistory() (admin) walks the revision chain — useful if you want to audit how a belief evolved.
You can't revise:
- A belief that does not exist (
404 belief X not found) - A belief from another tenant (
belief X belongs to another project) - A belief that has already been revised (
belief X was already revised)
For belief revision driven by accumulating evidence rather than a single explicit update, see evidence and the SPRT concept.