← All AI Engineer talks

AI Engineer World's Fair 2026

From Agent Traces to Agent Simulations — Rustem Feyzkhanov, Snorkel AI

Rustem Feyzkhanov· Senior Engineering Manager - AI Platform, Snorkel AI20:24

Read the talk

From Agent Traces to Repeatable Agent Simulations

Turn production failures into executable tasks that hold the environment steady while you test the agent’s model, tools, harness, cost and reliability.

From a talk by Rustem Feyzkhanov

Before you start: Familiarity with tool-using agents, containers and integration tests will help you follow the implementation discussion.

What would happen if you changed the agent?

How do you know whether a changed agent will work with your company’s real tools, API services, policies and workflows? A useful benchmark must reproduce those conditions and keep growing as production exposes new cases. Rustem Feyzkhanov, who leads AI platform work at Snorkel AI, treats benchmark construction as an engineering discipline. Snorkel produces benchmarks using agents and subject matter experts; Feyzkhanov reports that it runs millions of agent simulations per month.

Start with a production trace: an input prompt, the actions the agent took and its final output. An evaluator can inspect that record to determine whether the agent succeeded or encountered an edge case. The opening slide makes this concrete with a billing-dispute trace and an observed failure. That record gives you evidence about what happened.

Slide showing production users flowing into a live agent run and production traces, beside a billing-dispute trace and an observed failure.
A trace is evidence, not an experiment.

Testing what would happen with a different configuration is harder. Production A/B tests encounter changing database contents and tool versions, so two agents may not face the same problem. Offline simulation turns a trace into a repeatable experiment: construct a task from the production interaction, then run different agent configurations against controlled conditions. Those experiments can run in parallel and compare success rate, cost, latency and retries.

0:190:31
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:19 · section reference included

Benchmark the system you need to ship

Public benchmarks help establish expectations about capabilities. SWE-bench tests repository issue resolution; Terminal-Bench tests work in a terminal. Computer-use benchmarks cover another interaction surface. Your company’s benchmark must go further into its own use cases, tooling, policies and production environment. Public results help you form a prior; private evaluations help you decide whether to ship.

Two-column table contrasting public benchmarks with company benchmarks covering codebase and CI, tools and workflows, policies, and a production-like sandbox.
Public benchmarks are priors, not verdicts.

Pass rate describes only part of the production tradeoff. A successful agent may still cost too much, respond too slowly or require too many retries. Simulation lets you compare those dimensions under the same conditions. It also lets you evaluate the entire agent stack, rather than treating model selection as the only variable.

Change between experimentsHold constant for comparison
Model and thinking levelTask environment
PromptTask environment
Harness and skillsEvaluators
Available toolsEvaluators

The unit being evaluated is the full system. A model change, a different reasoning budget or a revised skill can each affect behavior; keeping the environment and evaluators fixed makes those changes easier to assess.

3:053:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:05 · section reference included

Use the benchmark beyond the first release

The same benchmark supports successive stages of agent development:

  1. Make it work. Check edge cases, select a model and inspect traces to understand failures before the first release.
  2. Make it reliable to change. Put the benchmark in the release path as an integration test, checking that modifications to the stack or harness do not introduce regressions.
  3. Optimize it. Tune cost and latency, and use simulation traces for reinforcement learning.

Feyzkhanov cites a task-specific example in which fine-tuning a smaller Qwen model brought it to the performance of a larger Qwen model; he does not give model sizes or measured scores in the talk. The broader architectural point is that a simulation benchmark can serve three roles: evaluation suite, release integration test and source of training data.

5:125:27
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:12 · section reference included

Package an executable task and a known solution

A benchmark task has an execution sequence:

  1. Give the agent an input prompt.
  2. Let it interact with APIs, MCP tools, databases and files in the environment.
  3. Collect its trace, the final environment state and any output artifacts.
  4. Run verifiers over those results to produce success and quality metrics.

The output is therefore more than the agent’s last message. It includes the world the agent leaves behind.

A task also needs an oracle solution: a constructed solution that runs through the same sequence in place of the agent. Its purpose is to establish that the task can actually be solved. Without that check, an agent failure may be evidence of a broken task rather than a capability gap.

Harbor, created by the Terminal-Bench team, gives this contract a file-based structure. The talk groups the files by what they expose:

PartContentsAgent access
Instructionsinstruction.mdVisible
EnvironmentDockerfile; Compose for multiple containersInteracts with it
Reference solutionOracleHidden
EvaluationVerifiersHidden
MetadataTask configurationSeparate task description

The packaging is deliberately straightforward. Instructions, an environment and hidden evaluation code are enough to turn an interaction into an experiment that can be repeated.

6:246:33
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:24 · section reference included

Build a small environment with production behavior

The environment should behave like a miniature production system without requiring a full production deployment for every experiment. Its databases, API services, tools and files need to match the interactions the agent will encounter. An agent should not get an easier or recognizably artificial task simply because it is being evaluated.

A real user cannot be packaged into that environment. A simulated user can instead be an LLM with its own prompt and additional context describing the behavior and interaction it should reproduce. The user’s replies become part of the environment that the verifiers inspect after the run.

The implementation patterns resemble integration tests and development environments:

  • Database snapshots: provide the relevant state instead of copying an entire production database into every run.
  • Sidecar containers: place the agent in a main environment and expose API services, databases and MCP tools through other containers.
  • Mocked services: reproduce the required service interactions without deploying every production service.
  • Intermediate task steps: for work that spans hours, give each step its own prompt and verifiers. Stop the simulation early when a step fails instead of spending resources completing a trajectory that has already failed.

These choices bound the experiment while preserving the interactions that matter to the task.

8:238:37
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:23 · section reference included

Verify the changed world, not just the answer

Output checking is familiar from coding tasks: run tests against the code the agent produced. An agent simulation exposes more evidence. The database may have changed, APIs may have returned particular responses and a user may have supplied additional information. Verifiers should inspect the final state, trace and artifacts, choosing evidence appropriate to the task.

  • Deterministic checks work well when correctness is directly testable, such as an exact output requirement or a tool call.
  • LLM, harness or agent judges can assess trace quality and whether the agent planned appropriately.
  • Combined evaluation uses both when the task contains mechanically checkable outcomes and behavior that requires judgment.
  • Subject matter experts review selected traces and outputs where discrepancies warrant human attention, rather than reviewing every run.
10:2110:39
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:21 · section reference included

Test the benchmark before trusting its scores

An executable task is not automatically a trustworthy release gate. An agent may recognize the simulation and exploit it to obtain a reward. A task may be too easy, or its verifiers so permissive that incorrect behavior passes. A defective verifier may reject every attempt. Success may also vary substantially across runs. These are defects to investigate during benchmark development, not signals to accept uncritically as model performance.

Six cards list benchmark symptoms, causes, and fixes, including incorrect failures, universal passes, suspicious results, score variation, crashes, and agent disagreement.
Debug the benchmark before you debug the model.

The benchmark is software and needs its own CI pipeline. That starts with ordinary engineering checks: pinned dependencies, the correct base image and complete fixtures. For a single-container task, even a small shell check can catch missing inputs before an expensive simulation starts:

bash

#!/usr/bin/env bash
set -euo pipefail

cd "${1:?Usage: check-task TASK_DIRECTORY}"

required_files=(
  instruction.md
  environment/Dockerfile
)

for path in "${required_files[@]}"; do
  if [[ ! -s "$path" ]]; then
    printf 'Missing or empty task file: %s\n' "$path" >&2
    exit 1
  fi
done

This illustrates a file-presence check using Harbor’s current documented directory layout. It is only the first layer: dependency, image and task-specific fixture checks still belong in the pipeline.

Behavioral validation comes next:

  1. Run the oracle solution and require the verifiers to pass.
  2. Run the verifiers without executing the solution and require them to fail, checking that the task does not pass in its initial state.
  3. Run the agent several times to assess solvability and difficulty.
  4. Tag the task as simple, medium or hard based on observed success frequency, then approve it for inclusion in the benchmark.

The positive and negative checks matter together: a verifier that accepts the oracle but also accepts untouched state is not testing the intended work.

11:5512:06
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:55 · section reference included

Change one thing, then fix the right layer

With a validated benchmark, improvement becomes a controlled loop. Establish a baseline, inspect the failed cases, change one thing and rerun the experiment. Record the results with an experimentation tool such as Arize. After the targeted fix works, rerun the full evaluation before releasing to production.

This process gives you an alternative to continually adding prohibitions and urgent instructions to the prompt. Because simulation exercises the whole system, it can test a fix in the component responsible for the failure:

Failure or requirementPlace for the fix
Context overloadHarness
Missing procedureSkill
Required output schemaStructured output

A longer prompt may change behavior, but it should not become the default storage location for every missing system capability.

13:5714:18
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:57 · section reference included

Connect production observation to release experiments

Once the agent is deployed, two loops operate together. The benchmark expansion loop takes failures from production observability and turns them into additional tasks. The release loop runs simulations against the expanded benchmark or a new agent configuration, records the experiments and uses the results as a gate before deployment.

Observability and experimentation need to be connected because each supplies what the other lacks. Traces reveal edge cases that actually occurred in production. Simulations let you test what would happen under a changed configuration. Keeping that connection alive makes the benchmark part of agent operations rather than a dataset used once before launch.

15:0915:19
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

15:09 · section reference included

Keep unseen cases and calibrate the reviewers

The audience discussion adds an important constraint to repeated experimentation: maintain a holdout that the agent has not seen during development. Asked about example counts and dataset splits, Feyzkhanov suggests an 80/20 training–validation split, depending on the use case. He does not prescribe a benchmark size. The central requirement is that the holdout remain unseen throughout experimentation, so it can provide a separate check on the resulting agent configuration.

Coverage requires more than collecting memorable failures. An audience question contrasts handpicked production runs with tasks created before an agent reaches production. Feyzkhanov’s guidance is to include both everyday workflows and edge cases: the happy paths users depend on, tool failures and database problems. The integration-test analogy applies again—successful routine behavior and failure handling both need coverage.

Task construction need not be entirely manual. In response to a follow-up about simulation versus handcrafting, Feyzkhanov points out that agents can already write much of the necessary code. The valuable foundation is to build the environment once and supply context that reproduces production interactions; automation can then help construct tasks around that foundation.

The final question returns to human involvement in verification. Snorkel uses subject matter experts at scale, but the goal is not to have experts review everything. Direct their attention to disagreements among agents and verifiers: a task appears solved but receives a failure judgment, or a trace is judged insufficiently good despite an apparently acceptable outcome. Experts can then tune the agent performing the review. The evaluator itself becomes something to improve, with human expertise concentrated where automated judgments diverge.

16:4817:04
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:48 · section reference included

Resources

From the talk

Read the complete timestamped transcript
  1. 0:00

    [upbeat music] Okay. Yeah, thanks everyone for coming, and I know this is the last session before lunch, so thanks for staying here.

  2. 0:19

    Let's make it smooth and with good vibes, just as Ned said, and thanks Ned for introduction and for inviting me. So yeah, my name is Rustem. I'm leading AI pod platform team, uh, at Snorkel.

  3. 0:31

    And, uh, today, I want to tell you how to turn agent traces into agent simulations and why this, uh, un- becomes the next stage for agent evaluations.

  4. 0:42

    So three main things that I want you to take away from my talk is, uh, every company needs a benchmark. It's the only way to reliably evaluate, release, and improve your agents.

  5. 0:54

    It has to be as close to production as possible. Uh, it has to mimic your real tools, real API services, policies, and workflows.

  6. 1:04

    And finally, it has to be part of your agentic life cycle. It's not a static benchmark. It's a constantly populated data set from your production traces.

  7. 1:17

    So why is Snorkel AI giving this talk? We are a data as a service company, and we, uh, basically selling, uh, benchmarks and we're producing benchmarks at scale, and for us, benchmark construction is an engineering discipline.

  8. 1:33

    We run millions of agent simulations per month, and, uh, we learned how to do, like, uh, en- environment build and scale, working using both agents, uh, and subject matter experts to build reliable benchmarks that are close to production and, uh, specific domains.

  9. 1:52

    So a lot of the time when people say about agent evaluation, they, they're focused on traces, and traces are very useful. The usual traces, like you can see an example on the screen, it basically shows, okay, here is the input prompt, here are the actions that agent took, and here is the agent o- output.

  10. 2:09

    And then evaluation can analyze it, eval, and say, "Okay, was agent successful or not? Was there any edge case?"

  11. 2:16

    Uh, so it is useful to find failures in production, but it's hard to test different variants. You can run A/B testing, and that's one way of checking different agent configurations.

  12. 2:28

    But it's hard to make sure that everything is repeatable because you will get different da- database state, different tool versions, and so on, so you never fully compare apples to apples.

  13. 2:38

    A flight simulation turns traces into repeatable experiments. Now you take tr- production traces, you construct tasks, and then you can run simulation, uh, benchmark, um, with different agent configuration offline, and you can compare agents using different metrics, not just success rate, but cost, latency, and retries, and you can run those in parallel.

  14. 3:05

    But you can ask, "Okay, but why do we need it? Like, we already have public benchmarks." The challenge with public benchmarks is that usually they are focused on a very specific domains.

  15. 3:14

    For example, SWE-bench is focused on, like, uh, fi- fixing GitHub issues, Terminal-Bench will focus on agent running in Terminal, and COAW-bench will focus on computer use agent. In your case, you want your benchmark to be focused on your company's domain, both from perspective of use cases and in terms of tooling that your agent has, whe- whether it

  16. 3:35

    follows the policies that your company uses, and whether you get full production environment.

  17. 3:41

    Basically, public benchmark is useful to o- orient and build your prior, but your private benchmark is useful to ship.

  18. 3:52

    And a lot of the time, public benchmarks, they're specifically focused on pass rate. Every time you see a new model release, you see performance, like pass rate on different benchmarks, which makes sense because it tells us, like, w- uh, like about the frontier, how good is the, like, new model.

  19. 4:10

    But when you release agent to production, you actually care about more metrics. You care about cost of you're solving the task. You care about latency. You care about number of retries.

  20. 4:20

    And by running, uh, evaluation offline with in simulations, you can effectively compare apples to apples and, and iterate on agent.

  21. 4:34

    In this case, you can test the full stack of your agent. You're not just checking, okay, is model, uh, one pe- uh, is one model performs, uh, better than the other model.

  22. 4:45

    You check even like thinking to- like thinking level, you can change the prompt, you can tune the full harness and skills, tools available to agent. Because in your production, you don't care about the model, you care about the full system.

  23. 5:00

    And here you can configure and test the full system while keeping environment and, uh, evaluators the same between runs.

  24. 5:12

    And that raises a point about like what benchmark is in this case. Because first of all, you can use it to first release the agent. You can make sure that it works, you can handle edge cases well, you can select the optimal model, and you can debug the traces.

  25. 5:27

    That's how you make sure that it works. Next, you can make it right. You can put it as a release gate for your agent and verify that a- any change to agent stack in- uh, didn't introduce regression suddenly, and iterate on harness.

  26. 5:42

    And finally, you can optimize it. You can tune it for better cost or latency, or you can use the traces to even do RL training.

  27. 5:52

    Uh, later I will say, uh, I will share a link to our website where we have example how we used simulation environments to fine-tune Qwen, small Qwen model to match performance of large Qwen model for specific tasks.

  28. 6:05

    Here effectively that becomes like trifecta of use cases. Like for you, benchmark becomes por- part of, uh, agent evaluation, becomes part of, uh, integration test for agent for release, and it becomes also training set for agent to improve it.

  29. 6:24

    So I hope I explained why you need benchmark. So now let's take a look, like how can you actually construct it at scale for your company? Like, what is the anatomy of the benchmark task?

  30. 6:33

    If you take a step back, like what, what is the sequence of running the benchmark? It's straightforward. Agent gets input prompt, it interacts with environment trying to solve the task with APIs, MCP tools, database, files.

  31. 6:48

    Then it produces the output. Trace, final state of the environment, and artifacts, basically output files. Then we run verifiers, and we can produce the metrics. How-- Was a- agent able to solve the task?

  32. 7:03

    How well did it do, and so on. The important second part of the task is oracle. When oracle solution runs, it runs through the whole sequence, but just instead of running the real agent, it runs oracle and it-- and when we construct oracle ourselves to make sure that task is solvable in the first place.

  33. 7:23

    Because if it's not solvable, agent won't be able to solve it. So oracle is important part of the task.

  34. 7:30

    If you look at the anatomy of the, like, uh, of the benchmark task, how it looks in terms of files. We can look at o- uh, one of the most popular formats nowadays, Harbor format, which was done by the same team who, uh, uh, maintains Terminal-Bench.

  35. 7:45

    In this case, basically, it's just three set of files. So basically fi- what agent sees and interacts with, instruction.md, classic markdown file. Environment, which you can see Dockerfile, could be Docker Compose in case you have multiple Docker containers.

  36. 8:00

    You have something that agent doesn't see, which are-- which is oracle solution and verifiers. And finally, you have some metadata. The-- It may s- look very straightforward, yeah. I'm saying like, okay, simulation environment is just Dockerfile and bi- bunch of stuff, but it is useful because now you have repeatable way of running experiments in agent simulation.

  37. 8:23

    So now let's dive deeper into two main parts of benchmark. First is environment. The main challenge with environment is that effectively it has to be mini production, but you don't want to run full production for every experiment.

  38. 8:37

    So you want to make sure that, uh, y- your database, API service, tools, and files match production. Just as like previous speaker mentioned, uh, like pre-- uh, that you don't, you don't want your agent to know that it's running within simulation, so it has to be real.

  39. 8:52

    One thing though, you cannot put real user in your simulation task. So you can simulate the user. In this case, that becomes effectively LLM with its own prompt, which with additional context that can mimic human behavior and interaction with your system.

  40. 9:11

    So in the port system, all these things exist in the environment and verifiers just interact with the environment afterwards.

  41. 9:18

    There are certain patterns to make sure that you can, uh, organize environment this way. And think about it as like how you construct integration tests. Basically, how you give effectively dev environment to your agent.

  42. 9:31

    You don't run the full production database. You have a certain snapshot. You can run side, uh, containers sidecars in this case. So your, uh, agent runs in one main, uh, environment, but there are other containers which contain API services, databases, MCP tools, and so on available to your agent.

  43. 9:49

    You don't need to have like full production API services, you can mock them. I already mentioned simulated users. Uh, and uh, one important piece here is multi-step. To handle long-horizon tasks, if your agent needs to handle tasks that span hours, you want to ensure that you have intermediate v- like steps, and for each step you have separate

  44. 10:08

    prompt, separate verifiers, and, uh, you can, uh, finish simulation early if you see agent failing. And basically, that enables you to simulate long-running horizon tasks.

  45. 10:21

    So next part is verifiers. Like in traditional sense, usually when people speak about verifiers, you just verify the output. You get agent output, you verify it, that's it. That's why, let's say, how coding works, like we just verify the output code with tests and so on.

  46. 10:39

    Here it's more complex. The way agent interacts with the simulation, we get a lot of different data. We get the world, basically how environment changed and the final environment state.

  47. 10:49

    What is your database state? What are the API responses? What are user replies? And so on. And your verifier analyzes final state, trace, and artifacts. So how can you analyze it?

  48. 11:02

    Effectively, there are multiple ways to do it. You can have deterministic checks, basically. Uh, and that can work really well for things like final output or tool calls where like it's very easy to check whether it was correct or not.

  49. 11:13

    It-- Sometimes you can use LLM as a judge or even harness as a judge or agent as a judge to evaluate basically whether the, uh, trace quality was successful, whether, um, planning of the agent was correct, and so on.

  50. 11:29

    In this case, it really depends on the use case. So you can use one or another or both, depending on what's, what works better. And finally, it's important to keep in mind that you can use sub- subject matter expert to review some of the traces, some of the outputs.

  51. 11:44

    Not for everything, but for cases where you see discrepancy in agent behavior and where you want human involvement.

  52. 11:55

    So final piece, how can we kind of organize everything together as part of agent release and agent improvement process?

  53. 12:06

    So can we just start? Not just yet. Can something go wrong with benchmark task? Hundred percent. Agent can try to reward hack simulation environment because it can understand that it's in simulation and it can hack it.

  54. 12:19

    Task could be too simple and, like, our verifiers could be too broad, and in this case, agent will always pass, even if it does something incorrectly. It could be that agent always fail because verifiers are incorrect.

  55. 12:30

    Or it could be that agents not perform in a stable way and, like, you have high variation of agent success.

  56. 12:38

    So all of these are effectively edge cases that you need to catch during your benchmark development. Because benchmark development is an art on its own. We saw already, like, hundreds of benchmarks appear over the course of last years.

  57. 12:52

    But this is something that the car- culture and engineering discipline that needs to be built in each, uh, engineering team that needs to ship AI agents to production.

  58. 13:06

    Because as you saw, effectively benchmark is software. It's code, it's files. You need to treat it as such. You need to have a separate CI pipeline for it. It-- And you can check pretty obvious things like, for example, making sure that all dependencies are pinned or, like, your base image is correct, or you don't have any missing

  59. 13:27

    fixtures. Then you can run Oracle, uh, uh, solution and making sure that it passes. Or, like, if you don't run Oracle, that verifiers fail. You can run several agent runs, uh, on the task and verify that, okay, it is solvable and it is hard for agent.

  60. 13:43

    You can tag the task whether it's simple, medium, or hard, depending on how much time-- uh, how many times the agent is successful. And finally, you can approve it to make it part of your benchmark.

  61. 13:57

    In this case, the process for improving agent becomes straightforward. You establish baseline in, uh, like, on your benchmark, you run evaluation dataset, you see the failures where it doesn't perform well, you change one thing, you rerun experiment and where you can use, uh, something like Arise to record your experiments, and then, uh, once you fix it, you

  62. 14:18

    rerun the full experimentation again. And then you can finally release to production.

  63. 14:24

    What it unlocks is to make sure that you fix issues correctly. There is a bit of anti-pattern in the industry where, like, folks try to fix things in the prompt, and they populate the prompt with things like, "Never do this," or, "Only do that," "Never output this," "Critical that," which is one way of handling it for sure.

  64. 14:45

    But with simulation, you control the full stack, you can evaluate the full stack, and you can make sure that fix lives in the correct, uh, place. You don't push everything to the prompt.

  65. 14:54

    You fix harness if you want-- uh, if, if you have context overload. Or you can-- If there is a missing procedure, you put it into skill. Or, like, if you need to have specific output schema, you put it as part of structured output.

  66. 15:09

    So once agent is in production, effectively you will have two loops. One loop for, uh, benchmark expansion.

  67. 15:19

    You take, uh, observability traces, uh, traces from observability, basically using something like Arise. You record failures and use failures to build your benchmark further.

  68. 15:30

    Then you have simulation runner that will run experiments on new be-- on extended benchmark on a ne- or on new agent config, uh, will record these experiments. Then you can use it f- as a release gate, whether, uh, agent performs significantly well, and finally release it to production.

  69. 15:48

    Uh, in this case, it's important that you have system, like it's important to underst- uh, to make sure that your observability piece and experimentation piece are connected

  70. 16:00

    because they're part-- they're two sides of the same coin.

  71. 16:07

    Um, so yeah, to summarize my talk, everyone needs-- every company needs a benchmark. Traces are useful for, like, the finding edge case in production, but simulation helps to, uh, test what would happen.

  72. 16:21

    And finally, uh, you want, uh, your, um, benchmark to be part of your, uh, agent ops, uh, loop.

  73. 16:29

    Thank you very much for, uh, for your time and, uh, I think maybe I will have answer for one question, but will be happy to answer any questions outside and please check our booth, uh, if you have any questions about benchmarks. [audience applauding]

  74. 16:48

    All right. A couple questions. All right. Hi, great talk. I have a question about structuring the benchmark, how many examples you should include ideally, and do you split them into, uh, like a train test split?

  75. 17:04

    If so, like how do you recommend structuring examples, um, across those two splits?

  76. 17:11

    Great question. So, uh, the question was basically how can we structure benchmark for training and validation? And just as previous speakers shared, basically, they also had a pa-pattern of like having train val split.

  77. 17:22

    This is very close to traditional machine learning, where we want to have standalone dataset that agent didn't see, wh- basically, where we can verify agent config. I think the classic approach applies when, like, you want to have eighty, twenty percent.

  78. 17:35

    Always depends on the use case, but, uh, you do want to have a standout dataset that agent didn't see through the experimentation process.

  79. 17:45

    Awesome. Next question.

  80. 17:47

    Um, so when you create the benchmarks, um, what data do you include in the benchmark? Do you include production runs that you've handpicked into the benchmark? Or if your agent is not yet in production, do you create, uh, datasets or problems to solve for the agent in the benchmark?

  81. 18:08

    And if you're, if you're like handpicking problems for the agent to solve, um, how do you make sure you have like- Enough coverage, uh, similar to what you'd see in production

  82. 18:19

    Gr- great question. So the question is how to ensure c- coverage, and distribution of benchmark is a very important piece. So effectively, you want to keep, keep-- make sure, like, you have both.

  83. 18:28

    You have bread and butter use cases, basically covering all main use cases that work, but also making sure you have edge cases. Basically, how you can make sure, like, your agent can handle edge case when tools fail, if, like, there is problem with database and so on.

  84. 18:41

    So you want to have both, um, e- basically think about this integration tests. You, you have happy path, but you also have edge cases.

  85. 18:49

    Would you simulate it with LLMs or would you create handcrafted LLMs?

  86. 18:54

    Yeah, uh, great question. Basically, simulate versus handcrafting. Uh, I think basically... I mean, people use agents to write code, so a lot of things here can be automated. So the-- what is handcrafted kind of changes.

  87. 19:05

    Like, the, the most important piece that you can provide is, like, the build environment once and then build the context, uh, for basically that mimics your production.

  88. 19:15

    Um, you mentioned, um, sometimes you use, um, LLM or sometimes you use a human expert to build verifiers. Um, can you elaborate on that? What's the best practice over there?

  89. 19:28

    Great question. So in our, uh, case, basically we have a lot of subject matter experts, so we do things at scale. So, uh, the important piece here is to spec- you don't need subject matter experts to review everything, but you specifically want to find cases where there is disagreement between, uh, a agent, uh, and different verifiers.

  90. 19:49

    If you, you think that basically task was supposed to be solved, but agent somehow marks it as un- like, not solved correctly, or, like, it marks that trace wasn't optimal enough.

  91. 20:00

    And this is where you want to have subject matter expert that can basically tune the agent that does the review. [outro jingle]