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
}
ParamTypeRequiredDescription
belief_idintyesId of the belief to revise.
new_textstringyesThe corrected belief.
confidencenumber 0..1noConfidence 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.

See also

Was this page helpful?