FishMem

Feedback

Capture an audited quality signal without mutating a memory behind the operator's back.

Use memory feedback after an application has actually used or reviewed a retrieved record. A signal belongs to the durable memory, and request_id can tie it back to the retrieval that exposed the record.

await fishmem.memories.setFeedback(
  memory.id,
  {
    rating: "negative",
    reason: "The answer used a superseded shipping address",
    request_id: retrievalRequestId,
  },
  { idempotencyKey: `${retrievalRequestId}-${memory.id}-v1` },
);

Ratings are native FishMem lowercase values:

  • positive — the record was useful and correct;
  • negative — it was not useful or needs correction;
  • very_negative — it caused a materially wrong or unsafe result.

Feedback is append-only audit data with one derived current state. Replacing or clearing the current signal leaves earlier FEEDBACK events visible through memories.history(id) and namespace export. It never changes content, importance, or embeddings implicitly.

For a factual correction, submit feedback for observability and then use memories.update or memories.delete for the deliberate canonical mutation. This avoids an opaque self-training loop in production.

See the complete REST and SDK contract at /api-reference/feedback.