User feedback is evaluation data. This page covers the how - capturing feedback via trace enrichment. To understand what to do with this data (building datasets, comparing against automated evals, running experiments), see Experiments.
Quick Start
Useenrich_session() to add feedback to the entire trace, or enrich_span() to add feedback to a specific operation.
On the Session
Add feedback that applies to the entire user interaction:On a Span
Add feedback to a specific function or operation:Concepts
What is User Feedback?
Any feedback that the end-user provides about their experience. Two types:- Explicit Feedback: User-provided ratings in your app - thumbs up/down, star ratings (1-5), written comments
- Implicit Feedback: User actions that signal intent - clicking “Copy”, “Regenerate”, editing the response
User Feedback vs Human Evaluator: The
feedback field tracks feedback from end-users. Feedback from domain experts or internal team members should use the metrics field instead.Feedback Schema
Thefeedback object accepts any structure. Common patterns:
Data Types
| Type | Available Measurements | Use Case |
|---|---|---|
| Boolean | True/False percentage | Thumbs up/down |
| Number | Sum, Avg, Median, Min, Max, P95, P98, P99 | Star ratings, scores |
| String | Filters and group by | Categories, comments |
Nested Data
You can drill down into nested fields when charting:feedback.step1.retry (boolean) or feedback.edits.0.value (string).
Nesting limits: Max 5 levels of nested objects, max 2 levels of nested arrays.
Reserved Fields
| Field | Purpose |
|---|---|
ground_truth | Expected output for comparison. Rendered specially in the UI. |
Learn More
Analyzing feedback
Chart and analyze user feedback in dashboards
Enriching Traces
Full guide to trace enrichment
SDK Reference
- Python SDK Reference -
enrich_session(),enrich_span()

