← All AI Engineer talks

AI Engineer Europe 2026

How agent o11y differs from traditional o11y

About this talk

Braintrust solutions engineering lead Phil Hetzel explains why non-deterministic AI agents require observability beyond uptime, latency, and token metrics. He describes real-time trace analysis, purpose-built storage with SQL access, Rust-based Tantivy search inspired by Apache Lucene, embedding-driven trace clustering, and expert feedback that becomes scalable automated scoring. Audience questions address agent-framework integration and Braintrust’s previous use of ClickHouse.

Chapters

  1. 0:00Introduction: Phil Hetzel, Braintrust, and agent quality
  2. 4:56Why non-deterministic agents require different observability
  3. 8:00Real-time traces, purpose-built databases, and Tantivy search
  4. 14:20Trace clustering and expert-derived automated evaluation
  5. 17:12Audience questions: agent integration, OLAP, and ClickHouse

Talk transcript

  1. 0:00

    [upbeat music] Uh, thanks for joining me today, uh, towards the end of the day here.

  2. 0:17

    So I hope, um, everyone has enough energy left for, um, maybe what is your most exciting topic of, of the day. [laughs] Remains to be seen, uh, how traditional observability differs from agent observability.

  3. 0:30

    Um, quick agenda. Uh, do a quick intro about myself and the company that I work for. Um, this is not gonna be a very product-forward talk. It's gonna be more theoretical.

  4. 0:39

    So I won't drown, drown you in sales slides, I promise. Um, and then we'll get into, uh, how these two ideas differ, and also talk about, um, um, like, what's next in the, um, in the space.

  5. 0:52

    Uh, my name is Phil Hetzel. I lead solutions engineering for Braintrust. What that means effectively is that me and my team, we're the folks that, uh, are charged with making sure that, um, our customers are getting the most value out of the platform as quickly as possible.

  6. 1:08

    Prior to Braintrust, I spent 12 years in consulting and systems implementation. Uh, I led the Global Databricks practice for Slalom Consulting before I came here, and I noticed that a lot of my customers were prolific at creating generative AI proofs of concepts, but not nearly as good at bringing those proofs of concepts to production.

  7. 1:26

    So I started using Braintrust as a user first, and I really liked it, and I applied for a job, and I've been here for about a year. Uh, I like to play chess out- outside of work.

  8. 1:35

    I like to spend time with my wife and dachshund. Um, that's Pistol Pete right there. That's, that's, that's my dog. Um, he's the person in brown and not black.

  9. 1:45

    Um, those of you who have been to my sessions before didn't laugh at that joke 'cause you've heard it, uh, at least, at least once already.

  10. 1:52

    Uh, what is Braintrust? Braintrust is a, um, agent quality platform. We mainly look at agent quality in two different ways. Is your agent performing as well as you thought it would when it's in production?

  11. 2:05

    Um, i.e., uh, can you remain confident in your agent? And then on the other side of that is, as you're experimenting with new versions of your agent, um, do you feel like you can become confident as you, as you tweak it and change it over time?

  12. 2:21

    Those are a couple of things that, that Braintrust does, obviously relevant to today's discussion because, uh, uh, agent observability is a massive part about what we do. Uh, anyone has, has heard of Braintrust?

  13. 2:33

    Show of hands. Before this week, did you hear of Braintrust? Yeah. Okay, a couple folks. Well, welcome back for the folks that have heard of us [laughs] before. Um, I'm gonna go, like, pretty quickly through the slides.

  14. 2:43

    Hopefully, we have enough time for questions a- as well. I don't have, like, a ton of content.

  15. 2:48

    Uh, traditional observability is established. So e- even when, uh, folks come to us, they'll say, "Well, we already have, uh, open source tools like Grafana," or, or, uh, a- as an example.

  16. 2:58

    Why wouldn't this be the same problem that we're solving with, uh, perhaps either an implementation or a contract that we already have? Uh, it's very established and, um, we know that these applications can operate at scale.

  17. 3:12

    So, um, the case that I'll be making is that, uh, the scope of traditional observability is actually quite different from the scope of agent observability, and, and I'll explain why.

  18. 3:23

    Scope of traditional observability, uh, it's all about uptime and technical performance. Um, is the application up, and is the application giving a user experience from a technical lens that we would expect?

  19. 3:36

    So, um, latency, uh, duration of, of interactions, four hundred and, and five hundred level errors, these are all things that we're measuring with, uh, with very established tools like a Grafana, like, uh, like a Datadog.

  20. 3:50

    Um, I, I will even say that, uh, at Braintrust, though we are an agent observability platform, we're happy users of Datadog. Like, it's, it's great for this specific type of use case for us to understand if people are running into five hundred or four hundred level errors on, on our website a- as an example.

  21. 4:07

    Is the system operational? Are we up or are we down? That's what traditional observability is. The building blocks of this are, uh, a couple different things. Um, metrics, these are the things that you're, you're measuring.

  22. 4:22

    I gave a couple examples before, but latency is, uh, is, is the most obvious one. Error count is another. The things that you can aggregate and, and, and measure over time.

  23. 4:32

    And then traces and spans, um... Uh, uh, is everyone here familiar with o- observability? Does everyone know what a trace is? Okay. I don't wanna take that for granted.

  24. 4:40

    A trace is just, like, a full interaction of, of some workflow. Um, and a span is just one step within that interaction. Uh, all of these things would apply to agent observability as well.

  25. 4:52

    So we have, we have the same, uh, building blocks.

  26. 4:56

    Um, problem one for why agent observability is different, agents are non-deterministic, whereas applications are deterministic. The reason why we love LLM so much is because they have high variety.

  27. 5:08

    They can do a lot of different things. They are abstracted. So because of that, while typical applications have very deterministic code paths by, you know, uh, um... And, and it, it's, it's on purpose that, that they do that, where they're performing some type of known control flow.

  28. 5:27

    Agent applications are very much non-deterministic. We're curious about why an agent might take one path versus the other. Um, this also means that traditional observability, um, are-- is going to really have to focus on very constrained and known metrics, whereas agent observability, um, needs to be a little bit broader in terms of the things that, um, that

  29. 5:52

    it needs to measure. This is, this is just an example of that. Um, so at the bottom, let's start there. Agent observability can- Uh, can measure some of these more traditional metrics.

  30. 6:05

    I, uh, I'll, albeit with, with more of a, an, an AI flair, time to first token, total tokens, duration, uh, latency. These are all things that you would think would be very traditional observability level metrics.

  31. 6:21

    But also you might want to understand more qualitative things about your application. So it's not just how, how long did I take to start responding to my user, which is more traditional observability.

  32. 6:34

    I wanna know was the information that I gave grounded in the context that I gathered with my application? Did I use the tools that I would have expected, um, in this, um, uh, in, in...

  33. 6:46

    as I was reasoning towards my response? Is, is a response aligned to the brand standard that I set for this agent in, in the system prompt? These are all things that are not really able to be tested by traditional observability tools because if you think about it, like, the, the trace necessary, the information and the trace that's

  34. 7:08

    necessary for us to compute these things up at the top is far larger than the, than the volume that a traditional observability trace would handle. Um, that kind of goes to, to the next point here.

  35. 7:22

    Agent traces are really nasty. They're, um, in, in a variety of different ways. Uh, they're nasty because they're highly semi-structured. Even within those semi-structured, there's a ton of unstructured text data that we need to chew through.

  36. 7:35

    They're voluminous, so they can be... an agent trace could be over a gigabyte in size. We've seen that, uh, uh, even with our own customers. An individual span can be twenty megabytes in size.

  37. 7:47

    So it, it's just a far different systems problem that you have to solve in order to ingest, process, and most importantly, use that, that type of data. And also it's, it's just as fast as a traditional observability data.

  38. 8:00

    So hopefully your, your agent that you're putting in production gets product market fit, and you have a ton of users and, and, and usage associated with it. You as the AI engineer or as the product manager for that agent, you're going to want to see that observability in real time, in true real time.

  39. 8:19

    Uh, trust me, we know that's the case because we always get the feedback. Yeah. Can you, can you just make it faster? We're always trying to make it faster.

  40. 8:27

    People always want it, want it to be faster. Tough to do when the agent traces look like this. Basically, this is just like an ex- example of an agent trace in Braintrust, where not only does it have a bunch of spans here enco- encompassing the model calls and, and, and, and tool calls, but even within those spans,

  41. 8:47

    you saw the amount of unstructured text that's in there as well. Very different problem to solve.

  42. 8:54

    Um, a little bit, a little bit more here. Um, like very... like may- maybe I'll just dive in, into the read pattern, uh, piece specifically. We need to do, uh, two things simultaneously.

  43. 9:08

    We need to be able to perform like the very fast read, uh, in- ingest and read style workflows that are common with observability, i.e., if someone does an action with my agent, um, uh, I need to be able to see that interaction basically inst- instantaneously.

  44. 9:28

    We also have to commit to read patterns where someone wants to use our CLI and fire off SQL commands to us so that they can incorporate either observability or eval traces to impro- to improve their application automatically.

  45. 9:45

    There are just a lot of different mediums that people use now in order to query these very large, uh, uh, trace shapes.

  46. 9:53

    Uh, this is a new, it's a completely new systems problem. Um, at least at, at Braintrust, we designed a, a database from the ground up specifically for agent traces.

  47. 10:03

    I'm not gonna really go into depth about this. We have a, we have a blog on our website. I think it was the last blog that we published, if, if you're really interested in diving deep.

  48. 10:11

    But just very quickly, there are a lot of different components that we have to build into this database in order to make it work. For example, we need to, um, immediately get data into a write-ahead log so that people can instantly see these traces as soon as they expect.

  49. 10:30

    We need to be able to perform indexing on these data so that whenever someone is performing a, a filtering or analytical query, that it's fast. And, um, we have this thing called a, a Tantivy index.

  50. 10:42

    Tantivy is a, um, is, is an open source framework that we forked. Anyone know what Tantivy does? Any guesses? Tantivy is how we perform, uh, like text style in- indexing.

  51. 10:56

    So if you remember when I was showing this trace, it makes so much sense for someone to want to perform the workflow of, okay, I would-- I just wanna know every trace that had the word Amazon into it.

  52. 11:09

    Well, it turns out it's really hard to do that unless you perform a, a full text-based index across your traces. That's another reason why, um, a- agent observability is far different than traditional observability.

  53. 11:22

    You really don't have to think about the text problems in traditional observability.

  54. 11:27

    Is that the same as OpenSearch?

  55. 11:29

    Sorry?

  56. 11:29

    It's kind of like an OpenSearch

  57. 11:31

    Tantivy is most similar to like an Apache Lucene ex- except it's, uh, written in Rust. Yeah. Um, and then all of these things, uh, come together and have to be unified through a, a SQL or SQL similar language.

  58. 11:45

    That's what we've... that's the route that we've gone to at Braintrust. Um, problem three, uh, this is a... whereas there's a very specific type of persona for traditional observability.

  59. 11:58

    It's a systems engineer. Maybe it's a product engineer. Um, it's probably not a subject matter expert or if it's a medical application, it's not a, not a clinician or, or, or a registered nurse.

  60. 12:10

    It's very technical people that align with traditional observability. Uh, that could not be further from the truth for a- agent observability if you're doing it well. We noticed that the best teams that are building agent have both technical and non-technical people in the fold performing this work because it's the non-technical people that are either, A, closest to

  61. 12:31

    the users, or B, have knowledge that is closest to the problem space. And what can they do now with prompts? They can write it in natural language. So they can add real value into being able to participate in, in agents.

  62. 12:44

    Um, we have folks that, that are clinicians or registered nurses or wealth advisors or, or, or lawyers. We have seen them operate in our platform looking through traces and using that information to improve their agents.

  63. 13:00

    That is a workflow that you j-- that you simply don't see in traditional observability where you're more worried about uptime.

  64. 13:08

    Um, I think it... Like, in, in general, people don't realize that in order to perform observability and, and also evals well, we kind of think of observability and evals as the same problem.

  65. 13:20

    The only difference between evals is that you're running them in batch and you know the inputs ahead of time. Um, it's, it's incredible. It, it... The, the depth that you end up going into when you create a platform like this, it looks like, it looks like this, um, because of the, the reasons that I've described.

  66. 13:38

    The nuances with the data, um, the amount of and, and types of people that you have to bring into the fold. Those are some of the reasons why it's so different to perform in this space.

  67. 13:50

    Uh, where is this space going? Um, we- we've done a lot of work in this area. I think the, the natural question that we used to get asked was, "If you're c-- If, if you, Braintrust, are collecting all of our agent traces and all of our agent traces have all of these valuable data in them, can't you

  68. 14:08

    just tell me how people are using my agent?" Um, and it's the si- it's the simple questions that usually need the, the most com- complex systems behind them. Um, this is something that we are starting to do.

  69. 14:20

    Um, we, we just rolled it out, I think about a month ago in, in our software as a service offering, where we see agent observability traces come in and then we'll run like a very lightweight LLM on top of them to perform embedding and then clustering on those traces to see how we can perf- like elevate topic,

  70. 14:41

    uh, e- elevate topic modeling to see, for example, how people are using, uh, your traces, their intent, how people are feeling about interacting with your agent, the sentiment, or if they're running into issues, what those in- issues potentially are.

  71. 14:54

    The whole idea is there is that you can, um, make the iteration loop between a problem that you're seeing in production and the fix that you perform experimentation on.

  72. 15:04

    Whole idea is to just make that faster and a little bit more direct. Um, I promised I would go through that really fast. I've got about three minutes for questions if there are any, uh, and I'd be really happy to answer them. [audience applauding]

  73. 15:23

    Anyone curious about this? Yes.

  74. 15:24

    So Braintrust is clearly about, uh, the, the functional observability of agents. Um, would you say it's-

  75. 15:33

    I would say technical as well

  76. 15:34

    ... would you say it's also good for non-functional agent performance, or is traditional observability good for that?

  77. 15:40

    That's a good question, yeah. I would-- Well, I think traditional observability can do that. Um, Braintrust specifically does do-- I like the way that you put that, functional observability.

  78. 15:50

    Um, what's the quality of my agent? How I've defined it? And then the technical observability just kind of comes on the house. Like, when, when, when you, when you trace the application, you automatically get prompts, duration, time to first token, et cetera, cache hits, et cetera.

  79. 16:07

    Yeah. In your iceberg slide- Yeah ... the human annotation- Yeah ... at the waterline there. Yeah. Could you explain what the human annotation part is in, in this platform?

  80. 16:18

    So let's think about it this way. Um, actually if, if I can, I'll go on a high wire act here and, um, and just show and, and, and not tell.

  81. 16:29

    So let's say that you have a trace come in and you want your product manager to be able to opine on whether that agent did a good job or a bad job. [clears throat]

  82. 16:39

    It's really valuable for you to have an expert come in, grade the agents, but then also like justify why they're grading the agents the way that they are. 'Cause eventually you're gonna take those justifications, you're gonna probably run an LLM over it, and you're going to make more, um, scalable scoring functions from those justifications.

  83. 17:01

    You're finding the failure modes that you can then implement in automated scores through that. Yeah. Human annotation is a really key part of this process. Okay. Thanks. Uh, yes, in the second row.

  84. 17:12

    Um, yeah, I just have a question, uh, because I've, I... You know, you just focused on observability piece today, but I'm interested actually how you also integrate with the other agentic framework to, uh, close the loop, like for the offline optimization.

  85. 17:27

    Mm.

  86. 17:28

    And then also, um, I guess the... Yeah, the, I think the main, uh, difference I feel that I see in this, your, uh, your database is that you're not using OLAP or ClickHouse like some of the users.

  87. 17:40

    We used to use ClickHouse actually.

  88. 17:42

    Oh, okay.

  89. 17:42

    Yeah. We moved away from it.

  90. 17:43

    Yeah. I just wanted to-- curious to, like, why you built your own? Like, what is the efficiency you found?

  91. 17:49

    Well, the, the funny answer there is that our, um, our founder is kind of an insane person. Like, he-- like only an insane person would build their own database.

  92. 17:59

    But he, he is, he is cut from that cloth. [chuckles] Um, he, he was one of the first employees at SingleStore, so he's kind of used to doing that. Um, but what he found was when, um, [lip smacks]

  93. 18:11

    I think it was, let's see, this slide. He found that when, um, he was performing some of these workloads, he just needed the more of the text-based, uh, indus- indexes, which ClickHouse wasn't really able to do, at least at that time.

  94. 18:24

    So we, we built our own. Um, and then the first part of your question, observability and evals to us, it's like we solve it with the same system. The only difference is that with evals, we know the inputs ahead of time, with obs- and we're doing it in batch.

  95. 18:37

    With observability, we, we don't know what the inputs are ahead of time, and we're doing them in real time.

  96. 18:41

    Oh, right. Uh, but I mean the experiment functionality. Like, um, how, how easy is it to integrate with like,

  97. 18:50

    uh, um, Braintrust?

  98. 18:51

    Oh, yeah. It should be pretty easy. Like, once, once you've traced ... And I, I apologize that I'm making this like about the product. Um, but when you, when you have a, a trace come in, you've traced it, and then you just like add it to an offline data set basically, so that you can experiment upon it.

  99. 19:06

    Yeah. And do we have, do we have... I'm not sure if there's anyone, uh, after us in this room. Do we have to- Yeah. Not sure. Okay. But ca- carry on.

  100. 19:16

    According to agenda, yes. Oh, is it? Okay. I'm, I'm happy to go on then. Yeah. I wanna- Yeah. Great.

  101. 19:26

    Carry on until- Perfect. Yeah ... until 11:30.

  102. 19:27

    Do you always, um, measure it quantitatively or do you also sometimes have some kind of qualitative piece of prose as the result? Like user satisfaction can be a number.

  103. 19:38

    You can also imagine certain metrics to be just-

  104. 19:41

    Yeah

  105. 19:41

    ... yeah, a flag check or something.

  106. 19:44

    Um, we can... Do, uh, do you wanna talk specifically about Braintrust, uh, like for that answer?

  107. 19:50

    Yeah.

  108. 19:51

    So like there is like the online scoring piece here where it's like a known unknown where you can like very much put a score behind that. Uh, but also there are, there are ways where more ...

  109. 20:03

    Like, like this is, these are not scores. This is like the unknown unknowns piece. Got it. Yeah. Thanks.

  110. 20:09

    Thank you.

  111. 20:09

    Um, where we can in a, in a more like open-ended way derive insight from it. Yeah.

  112. 20:18

    Yeah. Probably time for, for one question. If not...

  113. 20:26

    Great. I appreciate everyone's attention today. Thank you. [outro music]