Building Evaluation Frameworks for AI Product Managers: A Workshop on Production LLM Testing

arize · Tech · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.5 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: AI product management, LLM evaluation, and production observability

Arize's workshop addresses how product managers can specify, evaluate, and iterate on LLM and agentic products when traditional deterministic testing is insufficient. The central problem is that LLM agents hallucinate, take multiple paths through tool and agent workflows, depend on product data, and require cross-functional confidence before production release. The case demonstrates a workflow that turns traces from a multi-agent trip-planner demo into prompt experiments, datasets, LLM-as-judge evaluations, human labels, and iterative eval improvement.

Constraints:

Architecture

The workshop uses a multi-agent AI trip planner as the running system under evaluation. A form captures travel parameters, then parallel budget, local-experience, and research agents feed an itinerary agent. Arize/Phoenix instrumentation captures traces and spans from that agent graph, including agent, tool, and LLM spans. A prompt playground pulls a traced prompt plus its variables into an editable UI, where product managers can change prompts, models, and inputs. Selected traces become tabular datasets; experiments run prompt variants across the dataset; LLM-as-judge evaluators classify outputs with text labels; human annotation supplies ground truth; agreement checks expose weak judges; and the resulting evals can become acceptance criteria for engineering.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  ai-product-manager[AI product manager] --> prompt-playground[Prompt playground]
  ai-product-manager --> dataset-builder[Dataset builder]
  ai-product-manager --> human-labeling-queue[Human labeling queue]
  ai-trip-planner-form[AI trip planner form] --> multi-agent-trip-planner[Multi-agent trip planner]
  multi-agent-trip-planner --> research-agent[Research agent]
  multi-agent-trip-planner --> budget-agent[Budget agent]
  multi-agent-trip-planner --> local-experiences-agent[Local experiences agent]
  multi-agent-trip-planner --> tools-and-rag-layer[Tools and RAG layer]
  research-agent --> itinerary-agent[Itinerary agent]
  budget-agent --> itinerary-agent
  local-experiences-agent --> itinerary-agent
  tools-and-rag-layer --> trace-span-store[Trace/span store]
  itinerary-agent --> trace-span-store
  arize-phoenix-tracing[Arize/Phoenix tracing] --> trace-span-store
  arize-phoenix-tracing --> agent-visualization[Agent visualization]
  trace-span-store --> agent-visualization
  trace-span-store --> prompt-playground
  trace-span-store --> dataset-builder
  prompt-playground --> prompt-and-model-variants[Prompt and model variants]
  prompt-and-model-variants --> experiment-runner[Experiment runner]
  dataset-builder --> experiment-runner
  experiment-runner --> llm-as-judge-evaluator[LLM-as-judge evaluator]
  llm-as-judge-evaluator --> eval-agreement-checker[Eval-agreement checker]
  human-labeling-queue --> eval-agreement-checker
  eval-agreement-checker --> prompt-playground
  eval-agreement-checker --> dataset-builder
  ai-product-manager --> engineering-team[Engineering team]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
AI product manager Owns the desired product experience and uses traces, prompt playgrounds, datasets, human labels, and evals to turn product expectations into testable criteria. Prompt playground, Dataset builder, Human labeling queue, Engineering team
AI trip planner form Captures destination, duration, travel style, and related travel inputs for the demo application. Multi-agent trip planner
Multi-agent trip planner Agentic application under test that orchestrates specialized agents and tools to produce an itinerary. Research agent, Budget agent, Local experiences agent, Tools and RAG layer, Trace/span store
Research agent Parallel specialist agent responsible for research context used by the itinerary. Itinerary agent
Budget agent Parallel specialist agent responsible for budget-related reasoning and constraints. Itinerary agent
Local experiences agent Parallel specialist agent responsible for local experience recommendations. Itinerary agent
Itinerary agent Synthesis agent that combines the specialist-agent outputs into the final itinerary response. Trace/span store
Tools and RAG layer Optional retrieval, RAG, and tool-calling layer used underneath the agent workflow. Multi-agent trip planner, Trace/span store
Arize/Phoenix tracing Instrumentation and observability layer that captures traces/spans and produces agent visualizations for PM and engineering review. Trace/span store, Agent visualization
Trace/span store Repository of request inputs, outputs, metadata, spans, and intermediate agent actions. Agent visualization, Prompt playground, Dataset builder
Agent visualization UI view that renders the agent graph and parallel calls so teams can see what the system actually does. AI product manager
Prompt playground Interactive workspace where traced prompts, variables, tools, models, and outputs can be edited and compared. Prompt and model variants, Experiment runner
Prompt and model variants Saved prompt/model versions such as prompt rewrites, output-length requirements, discount instructions, and model swaps. Experiment runner
Dataset builder Converts selected traces or synthetic examples into a tabular dataset for repeatable evaluation. Experiment runner, Human labeling queue
Experiment runner Runs prompt/model variants across datasets and produces outputs for evaluation. LLM-as-judge evaluator
LLM-as-judge evaluator Automated evaluator that applies role, task, context, goal, and text-label criteria to classify generated outputs. Eval-agreement checker
Human labeling queue Human or subject-matter-expert annotation workflow that supplies ground-truth labels for examples. Eval-agreement checker
Eval-agreement checker Compares judge labels with human labels to identify weak eval prompts and hard examples. Prompt playground, Dataset builder
Engineering team Receives eval datasets and acceptance criteria as implementation requirements for production AI work. AI product manager

Data flow

A product manager starts from a trip-planner form request, which becomes a multi-agent LangGraph/Crew-style workflow. Research, budget, and local-experience agents run in parallel and feed an itinerary agent. Arize/Phoenix tracing records input, output, metadata, traces, and spans, then visualizes the agent graph. The PM pulls a traced prompt and its variables into a prompt playground, creates prompt or model variants, adds traced examples into a dataset, and runs experiments across that dataset. LLM-as-judge evaluators label outputs such as tone, discount inclusion, hallucination, or correctness. Human labels are then compared with judge labels, and disagreement drives prompt/eval iteration before those evals are used as acceptance criteria.

5 supporting quotes
“we have a budget, local experiences and research agent that then go into an itinerary agent and that gives you the the end result or the output”transcript, stated
“of these examples. What you'll see here are traces. Traces are really input, output, and metadata around the request that we just made. And I'm going to open up one of those traces just as an example here. And what you'll see is essentially a set of actions that the agents that in this case multiple”transcript, stated
“take that same prompt that we just traced and pull it into a prompt playground with all of the variables that we've defined in code pulled over.”transcript, stated
“basically do the same thing I just did, which was running an AB test on a prompt, but now we're going to run it on an entire data set. So, we go into the platform, and I can go and actually create an experiment. What we call an experiment is the output of”transcript, stated
“checking the human label against the eval label and saying do they agree or disagree. So, that's that's basically what we're going to run and we're I'm using an LLM as a judge. You could use code as well. You don't have to use an LM as a judge here, but”transcript, stated

Why this architecture

The architecture separates observability, prompt iteration, dataset construction, automated judging, and human validation because single-example prompt tweaking does not scale to production. Traces make the actual agent graph inspectable, the prompt playground gives PMs a controlled way to change product behavior, datasets turn individual examples into repeatable experiments, and human labels keep the judge from becoming an unverified authority.

4 supporting quotes
“There's just no way that a system like this scales when you're trying to actually ship for hundreds or thousands of users and like nobody will”transcript, stated
“being able to take your data and your prompts together and be able to iterate on your data and prompts in one interface is really powerful”transcript, stated
“you don't just want to evaluate the LLM and the prompts. You want to evaluate the system as a whole and all of the subcomponents.”transcript, stated
“hallucinate. Okay, we use an agent to fix that. But we can't trust that agent either, right? You need to have human labels on top of that. So, but again, I'm not going to vibe code this thing and be like, is this is the LLM as a judge good or not? I need eval for that, too. And we offer two eval to”transcript, stated

Models used: LLMs · LLM-as-judge · GPT-4.1 mini · GPT-4o · LangGraph · Crew AI · OpenTelemetry · Arize Phoenix · Cursor · BERT or ALBERT custom endpoints

Scale

Alternatives considered (roads not taken)

Use traditional deterministic software tests as the main confidence mechanism.

Rejected because: The speaker argues that LLM agents are non-deterministic, can take multiple paths, and rely on data, so deterministic unit-test assumptions are not enough.

“really key differences. Those key differences are software is deterministic. You know, 1 plus 1 equals 2. LLM agents are nondeterministic. If you convince an agent 1 plus 1 equals 3, it'll say like you're absolutely right. 1 plus 1 equals 3. Right? So, like we've all been there. We've kind of seen”transcript, stated
“if you build an LLM agent uh that can take multiple paths, that's very that's pretty different from a unit test”transcript, stated

Ask an LLM judge for a numeric score directly.

Rejected because: The recommended design is to ask for a text label and map that to a score, because LLMs are unreliable at numeric scoring.

“why can't I just tell the agent to give me a score or an LLM to produce a score and the reason for that is because even today even though we have like PhD level LLMs, they're still really bad at numbers.”transcript, stated
“what you want to do is actually give a text label that you can map to a score if you really need to use a score in your systems”transcript, stated

Judge prompt changes from one example in a playground.

Rejected because: The speaker explicitly calls the one-row demo vibe coding and moves to datasets and experiments because production workloads require many examples.

“an email and you get a discount. And like this is this is the vibe coding portion of the demo because I'm looking at like one example and I'm doing like uh good or bad like is it actually good or bad? There's just no way that a system like this scales when you're trying to actually ship for hundreds”transcript, stated
“There's just no way that a system like this scales when you're trying to actually ship for hundreds or thousands of users and like nobody will”transcript, stated

Trust LLM-as-judge labels without human calibration.

Rejected because: The workshop shows LLM judges need human labels, agreement checks, and iteration because a judge can disagree with human judgment.

“that I just provided in the queue. They're applied on my data set here. >> Exactly. Exactly. You need evals for your evals. You cannot get away from from You can't just trust the system, right? We know LM hallucinate. We put them into our agents.”transcript, stated
“my LLM as a judge basically doesn't agree with my human label for friendliness almost at all. Right? There's like one example I think that that's in there and we can go in and take a look at it. But what we're really kind of seeing is that this is an area”transcript, stated

Keep PMs limited to PRDs while engineers own prompts and eval implementation.

Rejected because: The speaker frames eval datasets and evals themselves as new requirement artifacts and argues PMs need control over prompts because they own the product outcome.

“what this promp uh prompt looks like, just think it should writing the prompt be the responsibility of the engineer or of the PM? And if you're a product person and you're ultimately responsible for the final outcome of the product, you probably want to have a little bit more control over”transcript, stated
“the new type of requirement stock. So imagine if you could go to your engineering team and instead of giving them a PRD, you give them an eval as requirements and here's the eval data set and here's the eval we want to use to test the system as an acceptance criteria. So I think”transcript, stated

Patterns

eval-driven-development (evaluation)

The workshop reframes product requirements as eval datasets and acceptance criteria: PMs build datasets, run experiments, calibrate evals, and hand engineering concrete evaluation artifacts rather than only prose PRDs.

3 supporting quotes
“But what if we go from evaluating with Vibes to Thrive Coding? And thrive coding in my mind is really using data to basically do the same thing as vibe coding, like still build your application, but you'll be able to use data to be more confident in the output.”transcript, stated
“instead of giving them a PRD, you give them an eval as requirements”transcript, stated
“eval data set and here's the eval we want to use to test the system as an acceptance criteria.”transcript, stated

llm-as-judge (evaluation)

Arize demonstrates judge prompts with role, context, goal, terminology, and text labels, then runs them across datasets to classify outputs such as friendly/robotic, discount/no-discount, hallucination, and correctness.

3 supporting quotes
“LLM as a judge because it's really like the kind of scalable way to run eval production these days”transcript, stated
“You're giving the agent a goal. In this case, the agent is trying to determine whether text is toxic or not toxic.”transcript, stated
“And then you provide the terminology and the label. So you're giving some examples of what is good and bad and you're giving it the output of either select good or bad.”transcript, stated

observability-tracing (operations)

The demo instruments the agent workflow so product and engineering teams can inspect traces, spans, metadata, agent/tool/LLM steps, and a visual graph of the agent system.

3 supporting quotes
“Traces are really input, output, and metadata around the request that we just made.”transcript, stated
“A span you can think of this as like a unit of work basically. So there's a time component to it which is like how long that process took to to finish and then like what is the type of the process.”transcript, stated
“what's really useful is to see at an aggregate level what are the calls that the agent is making”transcript, stated

multi-agent-orchestration (orchestration)

The trip-planner demo uses separate budget, local-experience, and research agents in parallel, then routes their results into an itinerary agent that synthesizes the final plan.

“it's not just one agent, it's actually multiple agents giving you this itinerary.”transcript, stated
“parallel calls for the budget agent the local experience experiences agent and the research agent and all of those get fed fed in to an itinerary agent”transcript, stated

prompt-versioning (prompt-operations)

The workflow saves prompt variants, duplicates prompts, changes one variable at a time for experiments, and uses prompt hub/versioning concepts so prompts can move from playground iteration into code.

3 supporting quotes
“duplicate that prompt with a click of a button. I can change the model I want to use.”transcript, stated
“Don't don't be don't worry like in a real world you're going to change one variable at a time, but um here I'm just going to change a couple things at the same time just to make this more interactive.”transcript, stated
“it's kind of helpful to have a prompt hub where you can save off examples of the prompt”transcript, stated

human-in-the-loop-gate (governance)

Human and subject-matter-expert labels are used to validate LLM judge outputs, identify disagreement, and produce hard examples for further evaluation work.

3 supporting quotes
“you or your team of subject matter experts can actually label data in the same place”transcript, stated
“checking the human label against the eval label and saying do they agree or disagree.”transcript, stated
“where human labels don't agree with LLM on this on production data then you might want to add those to your data set as hard examples.”transcript, stated

data-quality-loop (data)

Production traces and synthetic examples are curated into datasets, used for experiments, augmented with human labels, and continuously updated with hard examples discovered in production.

3 supporting quotes
“the concept of the data set is helpful to think about as like a collection of examples.”transcript, stated
“your data set is this property that's going to keep changing over time.”transcript, stated
“And you really want tools that help you build onto it by giving you like a golden data set of hard examples to improve on. And hard means like we're not really sure if we got it right or not in the first place.”transcript, stated

tool-use-orchestration (orchestration)

The agentic demo explicitly includes tool-calling and possible RAG/retrieval under the hood, and the tracing layer distinguishes tool spans from agent and LLM spans.

“we could be doing things like retrieval or rag or tool calling underneath the hood.”transcript, stated
“There's an agent. There's a tool which is uh basically being able to use data to perform an action structured data.”transcript, stated

Tradeoffs

Evaluation output format

Chose text labels mapped to scores over direct numeric scores from the LLM judge.

Rationale: Text labels are more reliable because the speaker says LLMs remain weak at numbers, while labels can still be mapped to scores downstream.

“what you want to do is actually give a text label that you can map to a score if you really need to use a score in your systems”transcript, stated
“common question we get is, "Oh, why can't I just make it do like one is good and five is bad or something like you're going to get really unreliable results." And we actually have some research um happy to share it out afterwards that kind of proves that out um on a large scale with most models.”transcript, stated

Prompt iteration method

Chose dataset-backed experiments over one-off vibe checks in a prompt playground.

Rationale: The demo starts with a single example for iteration but explicitly moves to datasets because production confidence needs many examples.

“this is the vibe coding portion of the demo because I'm looking at like one example”transcript, stated
“Um, what we're going to do is take this this data set or this CSV, and we're going to basically do the same thing I just did, which was running an AB test on a prompt, but now we're going to run it on an entire data set. So, we go into the platform, and I can go and actually create an experiment.”transcript, stated

Automation level for judging

Chose LLM-as-judge with human-label calibration over manual row-by-row grading or unvalidated judge labels.

Rationale: The speaker positions LLM-as-judge as scalable, but still requires human labels to validate the judge and expose disagreement.

“I can't go in rowby row for like hundreds or thousands of examples and grade friendly and robotic every single time.”transcript, stated
“So you can actually use that for comparing the LLM as a judge with the human label. So I've actually went ahead and did that.”transcript, stated

System structure for the demo app

Chose a multi-agent workflow with traces and specialized spans over a simple chatbot or opaque prompt-only app.

Rationale: The workshop deliberately moves beyond chatbot demos to show form inputs, parallel specialized agents, tools/RAG, and trace-based visualization of what the agent actually did.

“instead of building a chatbot, we're going to take this form and we're going to use the inputs of this form to build a quick agent system”transcript, stated
“clean delineation of parallel calls for the budget agent the local experience experiences agent and the research agent”transcript, stated

Instrumentation standard

Chose OpenTelemetry/OpenInference-based tracing over proprietary trace capture that locks teams into one vendor.

Rationale: The Q&A emphasizes that Arize builds on open tracing conventions so teams can keep logs and avoid vendor lock-in.

“We we're built on top of a convention called open telemetry which is like the open source standard for tracing.”transcript, stated
“standard for tracing. Uh so we actually use hotel uh tracing and auto instrumentation that we've built which doesn't keep you locked in at all. Like once you've instrumented with our platform using open inference which is our our package you actually get those logs to show up right out of the”transcript, stated

Dataset evolution strategy

Chose continuous production sampling and hard-example curation over a fixed once-created evaluation dataset.

Rationale: The speaker says production data shifts, so the dataset should keep accumulating examples where human and judge labels disagree or where confidence is low.

“your data set is this property that's going to keep changing over time.”transcript, stated
“And you really want tools that help you build onto it by giving you like a golden data set of hard examples to improve on. And hard means like we're not really sure if we got it right or not in the first place.”transcript, stated

Gotchas (what bit them)

Numeric LLM judge scores are unreliable.

Root cause: The speaker says even strong LLMs are bad at numbers because of how tokens are represented.

Resolution: Ask the judge for text labels such as friendly/robotic or toxic/not-toxic, then map those labels to scores programmatically if a score is needed.

“LLM to produce a score and the reason for that is because even today even though we have like PhD level LLMs, they're still really bad at numbers. Um, and so what you want to do is ground, and it's actually a function of like what a token is, what how a token is represented for an LLM. And so”transcript, stated
“what you want to do is actually give a text label that you can map to a score if you really need to use a score in your systems”transcript, stated

A single prompt-playground example can create false confidence.

Root cause: One example is vibe coding; it cannot represent the range of requests from hundreds or thousands of users.

Resolution: Move the trace into a dataset and run experiments across many examples before deciding whether a prompt/model change is good.

“this is the vibe coding portion of the demo because I'm looking at like one example”transcript, stated
“There's just no way that a system like this scales when you're trying to actually ship for hundreds or thousands of users and like nobody will”transcript, stated

LLM judges need their own validation loop.

Root cause: A judge is itself an agent and can disagree with human judgment, especially on subjective criteria such as friendliness.

Resolution: Collect human labels, compare judge labels with human labels, add few-shot examples or stricter criteria, and iterate until judge outputs align better.

3 supporting quotes
“we can't trust that agent either, right? You need to have human labels on top of that.”transcript, stated
“my LLM as a judge basically doesn't agree with my human label for friendliness almost at all.”transcript, stated
“it might take you like five or 10 tries to get an eval that matches your human labels and that's okay because these systems are really complex.”transcript, stated

Evaluating only the final LLM text misses system-level behavior.

Root cause: Agentic applications include routers, skills, function calls, memory, tools, and subcomponents that affect output quality.

Resolution: Instrument traces/spans and evaluate the whole system or relevant spans and subcomponents, not just the standalone prompt.

“you don't just want to evaluate the LLM and the prompts. You want to evaluate the system as a whole and all of the subcomponents.”transcript, stated
“we have the router at the top level, we have the skills or the function calls. We have memory.”transcript, stated

Dataset representativeness drifts over time.

Root cause: Production data changes, so a static dataset may stop representing the actual request distribution.

Resolution: Run evals on production data, sample at larger scale, add hard examples, and keep curating the dataset as new examples appear.

3 supporting quotes
“your data set is this property that's going to keep changing over time.”transcript, stated
“you can actually run these eval not just on a data set but on all data that comes into your project over time”transcript, stated
“And you can basically go in and see like okay where human labels don't agree with LLM on this on production data then you might want to add those to your data set as hard examples. Sure.”transcript, stated

PM/engineering ownership of prompts and evals becomes ambiguous.

Root cause: Prompts directly shape product experience, but historically engineers owned implementation while PMs wrote PRDs.

Resolution: Give PMs controlled prompt and eval workflows, and treat eval datasets plus acceptance criteria as a requirement artifact shared with engineering.

“should writing the prompt be the responsibility of the engineer or of the PM?”transcript, stated
“So imagine if you could go to your engineering team and instead of giving them a PRD, you give them an eval as requirements and here's the eval data set and here's the eval we want to use to test the system as an acceptance criteria.”transcript, stated

Judge variance can make evaluation results unstable.

Root cause: LLM judges are probabilistic and can vary their labels across runs.

Resolution: Lower temperature where appropriate, rerun evals multiple times, and profile judge variance rather than assuming one run is definitive.

3 supporting quotes
“the gentleman mentioned uh that they see variance in their LLM label output.”transcript, stated
“One way you can tweak variance is temperature. Um so if you make the temperature of the model lower it's a parameter you can set to actually make the response more repeatable.”transcript, stated
“rerun the the eval multiple times and and basically profile what the variance of the the judge is.”transcript, stated

Evaluation

The workshop's evaluation approach combines prompt/model experiments, LLM-as-judge classification, human labels, and meta-evaluation of the judge. Evals are constructed from role, task, context, goal, terminology, and text labels; run across datasets rather than single examples; and checked against human annotations to identify disagreement and improve the judge prompt.

Metrics: Friendly vs robotic classification. · Discount offer vs no discount classification. · Hallucination/use-of-context evaluation. · Correctness evaluation. · Agreement or disagreement between LLM judge labels and human labels. · Judge variance across repeated runs and temperature settings. · Experiment latency, including an example averaging about 32 seconds.

6 supporting quotes
“Examine the text and whether the tone is friendly or not. Friendly tone is defined as upbeat, cheerful. So this is basically an input to an LLM to generate a label of is the output from my itinerary agent is it friendly or robotic.”transcript, stated
“to read this whole thing out to you, but the the short answer is that this is determining whether the the text contains an offer for a discount or no discount because I really want to make sure I'm offering a discount to my users. Okay, we're going to select both of these and then we're going to”transcript, stated
“using the context correctly? That's called a hallucination eval.”transcript, stated
“correctness, which is um even if it has the right context, is it giving the right answer?”transcript, stated
“checking the human label against the eval label and saying do they agree or disagree.”transcript, stated
“rerun the the eval multiple times and and basically profile what the variance of the the judge is.”transcript, stated

Outcomes

This is a workshop and product demonstration, not a case study reporting deployed production impact. Its concrete scale is mostly demo-level: 15 synthetic itineraries, 12-example experiments, hundreds/thousands of examples as the motivating target, and a product workflow that Arize positions for customers such as Uber, Reddit, and Instacart.

5 supporting quotes
“new agent visualization in the platform that basically shows the starting point with multiple agents underneath it”transcript, stated
“I can go in and change the destination. I can go in and tweak variables and get new outputs using the same exact prompt I had before.”transcript, stated
“now instead of running on one example I'm actually running on 12 examples here.”transcript, stated
“my LLM as a judge basically doesn't agree with my human label for friendliness almost at all.”transcript, stated
“eval data set and here's the eval we want to use to test the system as an acceptance criteria.”transcript, stated