Skip to main content
Feedback is the human review layer on top of a run. It is separate from automated evaluator scores. Use feedback when a real run needs review, correction, or promotion into a dataset example:
  • rating is the human verdict: pass, fail, or partial.
  • status is the review lifecycle: open, resolved, or ignored.
  • body is the human feedback message.
  • expected is corrected JSON output for the run.
  • expectedFiles are corrected files attached to the run.
Automated evaluators produce score values. Humans set feedback rating values. Keep those concepts separate: scores come from evaluators, ratings come from review.

Feedback lifecycle

  1. Inspect a run and decide whether the output is acceptable.
  2. Add feedback with a rating, status, message, and optional expected output.
  3. Fix the workflow or agent.
  4. Mark feedback resolved or ignored.
  5. Promote the run to a dataset example if it should become a regression test.

API routes

The feedback routes all operate on the same run feedback object:
  • GET /api/v1/runs/{id}/feedback
  • PUT /api/v1/runs/{id}/feedback
  • DELETE /api/v1/runs/{id}/feedback
  • GET /api/v1/runs/{id}/feedback/expected
  • POST /api/v1/runs/{id}/feedback/expected
  • POST /api/v1/runs/{id}/promote
Use GET /api/v1/runs/{id}?expand=execution when you only need feedback embedded in a run response. Use the dedicated feedback routes when you are creating, updating, clearing, or promoting feedback.