slowave_feedback records what actually happened after retrieval. Every memory and procedure exposed by slowave_activate or slowave_recall must be assessed before the session can be committed. Feedback is append-only — assessments are evidence that persists in Slowave’s retrieval quality ledger and influences future activations; they cannot be retracted. Task outcome does not belong here; slowave_commit owns that.
Scalar vs batch calling
slowave_feedback supports two calling patterns:
- Scalar: pass
retrieval_idand the feedback lists directly to assess one retrieval event. - Batch: pass an
itemslist where each entry is a scalar-shaped feedback object, to assess multiple retrieval events in one round trip.
items is provided, all scalar feedback fields (retrieval_id, memory_feedback, procedure_feedback, retrieval_quality, missing) must be omitted and coverage must remain at its default of partial.
Parameters
string
The opaque retrieval identifier returned by
slowave_activate or slowave_recall. Required when using the scalar form. Must correspond to a known retrieval event for the current session.array
A list of per-memory assessments. Each entry must contain
memory_id and assessment, plus additional fields required by certain assessment values.array
A list of per-procedure assessments. Procedure feedback keeps usage and effect as separate signals.
string
Optional whole-result quality assessment for the retrieval event as a whole, independent of individual memory assessments.
array
Optional list of strings describing knowledge that was expected but absent from the retrieval results. Use this to record what Slowave should have surfaced but did not — this signal helps improve future retrievals.
string
Controls how silence is interpreted for this feedback call. Accepted values:
partial(default) — you are only assessing a subset of exposed targets. Targets not mentioned are left as unknown rather than treated as negative evidence.complete— you have assessed every target exposed by this retrieval. Targets not mentioned inmemory_feedbackorprocedure_feedbackare implicitly treated as assessed.
complete only when you have genuinely reviewed every memory and procedure returned by the retrieval event.array
A batch list of scalar-shaped feedback objects. Each entry has the same shape as the scalar parameters (
retrieval_id, memory_feedback, procedure_feedback, retrieval_quality, missing, coverage). Mutually exclusive with all scalar feedback fields.Response
Scalar response
Returns the feedback record as stored by the engine, confirming what was recorded.Batch response
Whenitems is used, the response is {"ok": true, "data": {"results": [...]}} where each entry contains:
boolean
true if this individual feedback item was recorded successfully.object
Present when
ok is true. The stored feedback record for this item.object
Present when
ok is false. Contains code, message, and retryable.Append-only semantics
Feedback cannot be retracted or modified after it is written. Each call appends new evidence to the retrieval quality ledger. If you callslowave_feedback twice for the same retrieval_id, both records are preserved. This is by design: the accumulation of honest, granular feedback over time is what allows Slowave to improve retrieval quality across sessions.
Coverage and the feedback authorization model
Slowave tracks exactly which memories and procedures were exposed by each retrieval event. Beforeslowave_commit can succeed, every exposed target must have received at least one feedback assessment. This is the feedback authorization model: feedback is authorized only for targets that were actually returned, and closure is gated on coverage of all of them.
The coverage parameter determines how partial silence is interpreted:
- With
coverage: partial, you can submit feedback for a subset of targets in one call and cover the rest in subsequent calls before committing. - With
coverage: complete, you are declaring that your current feedback submission covers all exposed targets.
Examples
slowave_feedback is not the place to record the task outcome. Whether the task succeeded or failed belongs in slowave_commit. Feedback is strictly about the quality and accuracy of what was retrieved, not about what you accomplished.