Agent Evaluation
Top 5 Tools for Turning Production Agent Traces into Evaluation Datasets
Production agent traces can be a useful source of evaluation cases, but they rarely become a dependable test set without some curation. Teams need to decide which interactions matter, review labels and expected outputs, and check that sensitive details are handled before data enters the workflow.
This shortlist looks at five tools through that practical lens: LangSmith, Langfuse, Braintrust, Arize Phoenix, and CoreWeave Agent Lens. Their documented strengths differ, from trace-based dataset curation and versioning to annotation workflows or privacy-focused masking guidance.
I’d pay particular attention to the details that can disrupt an evaluation pipeline: whether tracing must already be configured, what export formats are documented, how dataset changes are tracked, and which privacy controls are actually described. The available documentation does not establish every capability for every tool, so gaps are called out rather than treated as proof that a feature is absent.

Quick picks
- LangSmith — best fit for trace-to-dataset curation with reviewer edits. You can add traced runs manually or by rules, and reviewers can edit examples in annotation queues. Dataset versions are supported; JSONL import is documented, but the cited page does not establish JSONL export.
- Langfuse — best fit for connecting production examples, human review, and experiments. Its datasets can use production traces, support versioned items, and feed UI-, SDK-, or OpenTelemetry-based experiments. The documentation describes CSV or JSON UI export, not confirmed direct JSONL export.
- Braintrust — consider it when pre-ingestion masking is a key requirement. Its guidance covers input, output, expected, metadata, and context fields, but the available source does not establish dataset-curation, labeling, export, or versioning workflows.
- Arize Phoenix — best fit for UI-based trace annotation carried into experiments. Reviewers can use categorical, continuous, or freeform annotations, and trace annotations can propagate to datasets. The cited source does not settle export formats, redaction, or dataset versioning.
- CoreWeave Agent Lens — consider it for turning production behavior into cases for evaluating fixes. It documents conversation review, annotation queues, and a customer-managed bucket option. JSONL export, dataset-versioning behavior, and automatic PII redaction are not established by the cited documentation.
Product shortlist
1. LangSmith
LangSmithLangSmith is a good fit if your team already captures application traces and wants to turn selected runs into repeatable evaluation examples. I like that curation can be manual or rule-based, with an annotation-queue workflow for reviewers to edit inputs, outputs, and reference outputs before adding examples.
It also supports dataset versions, which helps teams track changes over time.
What I like
- Manual selection and run rules give teams options for deciding which captured traces become examples.
- Annotation queues let reviewers edit examples before adding them, supporting a human review step.
- JSONL import and dataset versioning can help fit curation into repeatable evaluation workflows.
Limitations
- Trace-based curation depends on tracing being configured in the application.
- The anonymizer is configurable, but the documentation does not report measured detection performance or guarantee that it catches every instance of sensitive data.
My take
LangSmith makes the most sense when trace capture is already part of your application workflow and you want a path from selected runs to curated evaluation data. Reviewers can refine examples rather than treating raw traces as ready-to-use tests.
Best for
Teams using LangSmith tracing that want to curate and version evaluation datasets with reviewer input. If sensitive data is a concern, validate your anonymization rules against your own data before relying on them.
Sources: Create and manage datasets in the UI; Anonymizer | LangSmith Python Reference.
2. Langfuse
LangfuseLangfuse is a strong fit if you want to turn production traces into repeatable evaluation examples without separating observability from eval work. I like that its workflow covers both human review and dataset versioning, while offering several ways to run experiments.
One point to check before committing: the cited documentation does not confirm direct JSONL dataset export.
What I like
- Production traces can supply dataset examples, helping teams curate cases from real interactions.
- Annotation queues let reviewers add scores, comments, and corrected outputs to traces, observations, or sessions.
- Dataset items are versioned when added, updated, deleted, or archived, which supports repeatable evaluation.
Limitations
- Direct JSONL dataset export is not verified in the cited documentation; the documented UI export formats are CSV and JSON.
- PII masking is described as an SDK capability, so teams should verify that their instrumentation applies it to the relevant fields before data leaves their environment.
My take
The practical appeal is the connection between trace review, dataset curation, and experiments: Langfuse documents UI-, SDK-, and OpenTelemetry-based experiment workflows. That can make it easier to take a reviewed interaction and use it in a repeatable evaluation process.
Best for
Consider Langfuse if you want human annotation and versioned datasets tied to production traces. If your pipeline requires JSONL export, verify the exact export path before adopting it.
Sources: Datasets | Langfuse; Annotation Queues | Langfuse.
3. Braintrust
BraintrustBraintrust is worth considering if your main concern is handling sensitive values in agent traces before they are logged. Its published guidance describes masking across inputs, outputs, expected values, metadata, and context, which is a useful scope to check when turning traces into evaluation material.
The evidence here is narrower than a full tool comparison, though: it does not establish how Braintrust captures traces, supports labeling, exports JSONL, versions datasets, or connects them to evaluation runners.
What I like
- The documented masking approach covers several trace and dataset fields, rather than focusing only on user input.
- The guidance calls out a practical trade-off: retain values needed for later queries in a usable form instead of masking them indiscriminately.
Limitations
- Masking must be configured, so teams need to decide which fields and values to protect.
- The available evidence does not establish masking accuracy or coverage, nor the tool's labeling interface, JSONL export, dataset versioning, trace-capture breadth, or eval-runner integrations.
My take
I’d put Braintrust on the shortlist when pre-ingestion handling of sensitive trace data is a priority. Its guidance describes masking across input, output, expected, metadata, and context fields, while noting that some values may need to remain usable for later queries.
Best for
Teams evaluating trace privacy controls before building evaluation datasets, especially those that need to consider sensitive data beyond the user prompt. Verify the specific export, labeling, versioning, and runner workflows you need before choosing it.
Sources: What does a good AI agent trace look like? | Braintrust.
4. Arize Phoenix
Arize PhoenixArize Phoenix is worth considering when your main need is a human workflow for labeling traces and carrying those judgments into experiments. Its annotation interface supports categorical, continuous, and freeform values, and trace annotations can flow into datasets as metadata.
I like that continuity for teams building evaluation cases from reviewed examples, though the supplied documentation leaves several operational questions open.
What I like
- The UI supports structured labels as well as freeform notes, so teams can choose a format suited to their review task.
- Trace annotations can propagate to datasets and remain available during experimentation, helping preserve reviewer context.
- Structured annotation configurations and keyboard shortcuts are documented, which may make repeated review work easier.
Limitations
- The cited documentation does not establish a managed external-labeler marketplace or provide a benchmark of labeling quality.
- The cited evidence does not confirm production trace-capture coverage, PII redaction, JSONL export, dataset versioning, or integrations with specific evaluation runners.
My take
I’d put Phoenix on the shortlist if you want to annotate traces in the UI and retain those annotations with datasets for experimentation. The documented label types offer flexibility, while structured configurations give teams a way to standardize what reviewers record.
The boundary is important: annotation is not the whole dataset-curation pipeline. Before choosing Phoenix, verify that its trace ingestion, privacy controls, export format, version history, and eval-runner connections meet your requirements; those details are not established by the evidence here.
I would also assess the reviewer workflow with your own labeling task rather than assume consistency from the available documentation.
Best for
Teams that prioritize UI-based human annotation and carrying trace labels into datasets for experimentation. It is a less certain fit when external labeling operations, redaction guarantees, or specific export and versioning requirements are decisive.
Sources: Annotations Concepts | Arize Phoenix.
5. CoreWeave Agent Lens
CoreWeave Agent LensCoreWeave Agent Lens is worth considering if your main goal is to turn real production behavior into cases for evaluating fixes. It is designed to capture traces, conversations, tool calls, model responses, and metadata, then organize behavior into datasets and evaluation sets.
I like that this workflow connects trace review to follow-up testing, rather than treating observability and evaluation as separate tasks.
What I like
- Conversation views and annotation queues can make trace review accessible to product managers and subject-matter experts, not just engineers.
- Detected failures can be turned into test cases to evaluate candidate fixes against production examples.
- A bring-your-own-bucket option gives teams a way to keep sensitive data in customer-controlled storage.
Limitations
- The cited documentation does not specify JSONL export or dataset-versioning behavior, so confirm both before adopting it for a repeatable evaluation pipeline.
- Customer-controlled storage is not evidence of automatic PII detection or redaction; establish separate privacy controls if you need them.
My take
The strongest fit here is teams that already capture agent traces and want a practical path from reviewing conversations to building evaluation sets. The annotation queues may also help teams involve people who understand product behavior but do not work directly in the codebase.
I would treat export, versioning, and privacy handling as procurement questions, not assume they are covered by the workflow. The product page also describes a connection with Weights & Biases Models, but teams using another evaluation runner should verify how cases move into their existing setup.
Best for
Best for teams looking to curate production agent behavior into evaluation cases, especially when non-engineers need to review and annotate conversations. It is a less certain fit if JSONL export, explicit dataset-version controls, or automated PII redaction are mandatory requirements.
Sources: CoreWeave Agent Lens | AI Agent Observability.
How to choose
How to Choose the Right Tool
Start with the workflow you need: capturing production traces, reviewing and labeling them, then rerunning the resulting cases. Check that the tool supports your required export format, dataset history, and evaluation runner; a trace-to-dataset workflow is only useful if cases fit your pipeline.
Treat privacy as a deployment requirement, not a checkbox. Confirm which fields are masked, where masking happens, and whether your own tests catch sensitive values in realistic traces.
Common Mistakes to Avoid
Don’t assume customer-controlled storage means automatic PII detection, or that documented JSON or CSV export means JSONL is available. Also, test the reviewer workflow with your actual labeling task instead of assuming an annotation interface will produce consistent labels.
Frequently Asked Questions
Should every production trace become an eval case? No.
Curate relevant examples and review them before treating them as tests.
Is annotation the same as dataset versioning? No.
Verify that edits to cases are tracked if you need repeatable comparisons.
Final Verdict — Which One Would I Choose?
I’d choose based on the biggest workflow gap: trace-to-dataset curation, human review, privacy controls, or downstream compatibility. Before committing, confirm the exact export, redaction, versioning, and runner requirements that matter to your team.
Sources: Create and manage datasets in the UI; Anonymizer | LangSmith Python Reference; Datasets | Langfuse; Annotation Queues | Langfuse; What does a good AI agent trace look like? | Braintrust; Annotations Concepts | Arize Phoenix; CoreWeave Agent Lens | AI Agent Observability.
Which option fits?
I’d start with the workflow requirement that is hardest to compromise on. If your team already traces with LangSmith and wants reviewed, versioned examples, its documented curation path is a natural place to investigate; if you need trace-linked annotations and experiments, Langfuse or Phoenix may be a closer fit based on the documented capabilities.
For privacy-led evaluation, Braintrust’s masking guidance is worth examining, while Agent Lens may suit teams that want production conversations turned into cases for testing fixes. Neither a masking description nor customer-controlled storage alone demonstrates that every sensitive value will be detected and removed.
Before choosing, run a small representative trace set through your intended workflow. Confirm the fields and masking rules, reviewer steps, required export format, dataset history, and compatibility with your evaluation runner; treat undocumented requirements as questions to verify rather than assumptions.