The B2B Podcast Index
Index
All categories
MarketingSalesSaaSFinanceHROpsLeadershipCustomer SuccessAI & DataProductStartups & FoundersRevOpsEngineering & DevTools
MethodologySubmit
Best of:MarketingSalesSaaSFinanceHROpsLeadershipCustomer SuccessAI & DataProductStartups & FoundersRevOpsEngineering & DevTools
An independent project byFame
SearchBest episodesGuestsInsightsMethodologySubmit a podcast
Index/Engineering & DevTools/O11ycast
O11ycast artwork

Ep. #91, Every Failure Becomes an Eval with Janaki Vivrekar

O11ycast · 2026-06-04 · 42 min

0:00--:--

Key moments - from our scoring

Substance score

57 / 100

Five dimensions, 20 points each

Insight Density12 / 20
Originality10 / 20
Guest Caliber13 / 20
Specificity & Evidence12 / 20
Conversational Craft10 / 20

Janaki Vivrekar, engineer at Amplitude, walks through the architecture and evaluation strategy behind Global Agent, a conversational AI system designed to automate analytics work. Rather than relying solely on model upgrades (like transitioning from Claude Sonos 4.5 to Opus 4.6), the team discovered that the "harness" - deterministic code, available tools, and encoded logic - drives performance more significantly. The Global Agent handles the full analyst workflow: understanding natural language queries, mapping them to correct data sources, executing analytical queries against behavioral event data, investigating root causes across product releases and marketing campaigns, and delivering actionable insights. To maintain quality across this multi-step agentic flow, Amplitude implements a layered evaluation strategy starting with manual inspection, then building toward automated error tagging via an internal AI evaluator. The team developed a taxonomy of error codes (missing context, wrong tool calls, incorrect interpretation, UI issues) and built Agent Analytics - a separate product for analyzing agent traces - to help product teams identify which errors to prioritize. The discussion covers moving from binary pass/fail evals to fine-grained rubric-based scoring, running evals both offline pre-release and in production, and the challenge of detecting quality issues without explicit customer complaints in systems with inherent opacity.

Key takeaways

  • →Model quality matters less than the deterministic harness - tools, prompts, and workflow logic - when building multi-step agentic systems; upgrading Claude models showed gains only for long-running tasks, not basic queries.
  • →Accuracy compounds across steps: a 95% accurate pipeline of 10 steps yields only ~60% end-to-end accuracy, making per-step evaluation critical before evaluating overall response quality.
  • →Manual error tagging first builds context and informs what to automate; the team invested significant effort categorizing failure modes before instructing an evaluator agent to auto-tag production conversations.
  • →Production evals flag low-quality responses in real time, enabling manual review and directing product investment, while offline evals run multiple times weekly to gate changes and ensure no regression on correctness criteria.
  • →Fine-grained rubric-based evals (checking specific task completion, formatting, numbers, breakdowns) outperform binary pass/fail scoring and help encode product expectations into evaluation criteria.

In this episode

  1. 1Introduction to Janaki Vivrekar and Amplitude's Global Agent
  2. 2The Agent's Role: Building Systems That Analyze Product Data
  3. 3From Model Upgrades to System Harness: Determining Quality
  4. 4Evaluation Strategy: From Manual Feedback to Automated Tagging
  5. 5Building Taxonomy and Error Codes for Agentic Failures
  6. 6Agent Analytics Product: Tracing and Monitoring Agentic Conversations
  7. 7Eval Framework: Beyond Pass/Fail to Nuanced Quality Criteria
  8. 8Prompt Control, Versioning, and Iteration in Production

Mentioned

AmplitudeGlobal AgentAgent AnalyticsHoneycombClaude Opus 4.6Claude Sonnet 4.5MCPSlackJanaki VivrekarJessica KerrKen RimpelHeavybit

Guests

Janaki Vivrekar

Topics in this episode

MCP (Model Context Protocol)Behavioral analyticsAmplitudeClaude Opus 4.6Global AgentClaude Sonos 4.5Agent Analyticsevaluation evalserror tagging taxonomyfunnel analysis

Questions this episode answers

How does Amplitude's Global Agent determine why spikes or dips happen in product analytics data?

The agent synthesizes behavioral data from Amplitude (user interactions), product release information, experiment metadata, marketing campaign details, and global events. When no obvious cause is found, it automatically segments data by properties (geography, platform, user cohort) to isolate contributing factors - work that normally takes analysts hours to complete manually.

What did Amplitude learn about model upgrades when moving from Claude Sonos 4.5 to Opus 4.6?

Upgrading to Opus 4.6 improved performance on long-running, multi-step tasks but showed no lift on basic queries compared to Sonos 4.5. This revealed that system performance depends more on the deterministic harness (available tools, logic, prompts) than on model selection alone.

How does Amplitude prevent accuracy loss from compounding across agentic steps?

The team runs evaluations at each step of the agentic pipeline and on overall response quality. They also moved from binary pass/fail evals to fine-grained rubric-based scoring that checks specific criteria like correct tool calls, data context, interpretation, and formatting.

What is Amplitude's error tagging and auto-flagging process?

The team first manually tagged conversations with a taxonomy of error codes (missing context, wrong tool calls, misinterpretation, UI issues), then used those examples to train an internal evaluator agent to auto-tag new conversations. Agent Analytics (a separate product) lets product teams filter and prioritize errors by volume.

How does Amplitude get quality signals when most users don't leave explicit feedback?

They use multiple feedback layers: 0-5 star surveys with written feedback, thumbs up/down reactions on chats, real-time response-quality checks, and an auto-tagging system that flags low-quality conversations for manual review, allowing the team to identify improvement areas without waiting for customer complaints.

What our scoring noted

Our reviewer’s read on each dimension, with quotes from the episode.

Insight Density

12 / 20

The episode contains a handful of genuinely useful ideas - compounding accuracy loss across agent steps, the primacy of 'the harness' over model upgrades, and the manual-tagging-to-auto-tagger pipeline - but these insights are spread thin across significant filler, repeated explanations, and a multi-minute detour into the guest's calendar art project that is irrelevant to any B2B operator.

if each step is about 95% the way there, or 95% accurate, that leads to your response being Napkin math, about 60% accurate
a lot of the meat of how well our system does is related to, um, the harness around our agents rather than just upgrading the models

Originality

10 / 20

The core framing - 'every failure becomes an eval' and treating manual tagging as seed data for automated evaluators - is practically grounded but already circulates widely in the AI engineering community; there are no genuinely contrarian or first-principles arguments, and the stone soup metaphor is borrowed from the guest's own pre-existing article rather than developed in the conversation.

we parsed a lot of our internal notebooks and amplitude and generated nice tight evals from that that give us an input question
real investigations that took our own PM's hours to do then turned into evals that we were able to test our global agent system on

Guest Caliber

13 / 20

Janaki is a hands-on engineer who built the production system under discussion, citing real internal workflows, specific error taxonomies, and named Amplitude products she shipped - solidly a practitioner guest, not a thought leader - though her seniority level is engineer rather than a senior decision-maker or founder, which limits the strategic depth on offer.

I help build some of the systems that allow us to do analytics much faster
we just launched a product called Global Agent at Amplitude, which does the job of an analyst

Specificity & Evidence

12 / 20

The episode delivers useful concrete detail - named products (Global Agent, Agent Analytics), a specific funnel-chart eval broken into discrete sub-checks (six steps, one-hour conversion window), and the 95%-per-step compounding math - but lacks hard business metrics such as user counts, error-rate improvements, or revenue impact, and the model naming is inconsistent ('Sana 4.5' vs Opus 4.6), undermining precision.

Does the funnel chart now have the six steps that we're expecting for this particular storefront? Did it use the right conversion window of an hour?
if each step is about 95% the way there, or 95% accurate, that leads to your response being Napkin math, about 60% accurate

Conversational Craft

10 / 20

Jessica asks several sharp, well-timed follow-ups ('How do you check your checker?', 'Is there a separate eval process pre-release?') and Ken usefully references the guest's written article, but neither host meaningfully pushes back on any claim, the art tangent consumes several minutes of irrelevant airtime, and the conversation never reaches productive disagreement or stress-tests the guest's framing.

How do you check your checker?
Is there a separate eval process pre release for. We ask it the standard set of questions with this standard data set and see if it does a good job.

Conversation analysis

Computed from the transcript - who did the talking, and the words that came up most.

Share of words spoken

  • Speaker A74%
  • Speaker C15%
  • Speaker B11%

Most-used words

product43agent37users26analytics25amplitude25evals25system23happening19data18different16context14user14steps13particular12response12information12

Episode notes

On episode 91 of o11ycast, Ken Rimple and Jess Kerr sit down with Janaki Vivrekar. Janaki shares how Amplitude is building AI-powered analytics agents, why evaluation frameworks are becoming essential to AI product development, and how teams can use observability techniques to improve agent performance over time. The conversation explores eval-driven development, production feedback loops, and the challenges of helping AI systems reason about complex business data. The post appeared first on Heavybit .

Full transcript

42 min

Transcribed and scored by The B2B Podcast Index.

Speaker A: You don't always have customers writing into you, like, hey, I would really like this particular tool to be more accurate. Like, they're not going to, ooh, that feedback up front. You kind of need to be able to figure it out from the overall response quality. That's really similar to, like, how pretty much all product development works, but it's a little bit amplified in this world of AI where there's a lot less transparency into how these agentic systems work.

Speaker B: I'm Ken Rimpel.

Speaker A: Jessica.

Speaker C: And I'm Jessica Kerr.

Speaker B: You're listening to ObservabilityCast, a monthly series where we talk about how we can make production systems more observable, more reliable, and easier to maintain. Olycast is brought to you by Heavybit, the leading investor in developer first startups. For more information, visit heavybit.com.

Speaker A: I think something surprising for us was, you know, whenever the new models drop, we upgrade our systems to use them and we hope we get a little bit of a lift on our performance. But, you know, at some point there's a little bit of a cap to that is what we realized. With upgrading to Opus 4.6, we ended up seeing a lift on like, some of our long running tasks, or like tasks that take multiple steps. But for like, basic tasks, the performance remained about the same compared to like Sana 4.5. And so that was surprising to us at first, but then it made a lot of sense because that's what Opus 4.6 is good at, is like longer running tasks. And so we realized that a lot of the meat of how well our system does is related to, um, the harness around our agents rather than just upgrading the models.

Speaker C: The harness, like the deterministic code in the agent.

Speaker A: Exactly. And just like, what are the specific tools that are accessible to the agent, what is the logic that it can run? And how do we encode being able to do analytics into a system rather than just using state of the art, uh, models?

Speaker B: Ooh.

Speaker C: Okay. Tell our audience who you are, where you work, and what you mean by analytics.

Speaker A: Yeah. Hi everyone. My name is Janaki and I'm an engineer at Amplitude. I help build some of the systems that allow us to do analytics much faster. And so analytics includes the world of product analytics, marketing analytics, any sort of information that you want to know about how users are interacting with your product in production and how they're behaving with your tools and what you can do to make them better.

Speaker C: Nice. So the agent that you're working on that's doing the analytics, does it have A name?

Speaker A: Yeah. So we just launched a product called Global Agent at Amplitude, which does the job of an analyst. And that involves not only asking what is going on in my data, but also why. And that's really the job of an analyst is to investigate why spikes are happening, why dips are happening, and then what are we supposed to do about those? What are we supposed to do about that information?

Speaker B: So you're building these agents specifically. This is like a Persona almost, right? You're kind of building a Persona of a, an agent that has the workflow and the thought process of a human agent to a degree. So how do you break that apart? How do you actually break that into steps and make sure each of those steps are being properly processed and doing what they're supposed to do?

Speaker A: Yeah, that's a really good point because there's a lot of steps to doing the job of an analyst really well. If you imagine, Ken, if you were an analyst and I work with you and I want some information from you, I'd probably tell you, like, hey, I noticed there's like a surge in signups happening in our product. Go and figure out why. And there could be a number of reasons why that's happening. It could be something related to just organically users finding your product more, or it could be the results of an experiment that you're running or like some product improvement that took place. There could be something globally happening, uh, that is causing people to discover your product more. And so you as an analyst have to piece together information across the global sphere, across what's happening in your product, and break that down by segments, do a lot of hours of analytics and time consuming work to arrive at an answer. And so we had to encode all of these different steps into an agent that not only understands natural language questions, but, um, but is also able to query the correct data sources, understand your taxonomy for how you instrument all these different events that users may be doing in your product, build the correct analytical workflow, and then do the actual analytics behind the scenes and come back to you with a cogent explanation for why you have certain observed behavior, for example, in your product, and then also tell you, uh, potentially like, what you can do about it. Like, maybe this experiment's really successful, you should consider rolling it out or looks like this cohort of users is struggling with your product. Maybe you should deploy a survey or add a guide to help them better learn how to use it.

Speaker C: Okay, okay. Where does it get all this context for? Why is it reading the news?

Speaker A: Yeah, there's A lot of different places where it can find all this data. So backing up a little bit, here's a little bit of context about amplitude. Amplitude, if you use it, has a whole host of behavioral data. Like your users, whenever they interact with your product, are doing lots of different actions. They're clicking on buttons, they're scrolling, they're hovering on things. And whatever provides you as a builder signal, you might have instrumented that already. So you're sending that data to Amplitude. So amplitude knows how users are interacting with your product behaviorally. And that's a lot of data. And so for a human to sift through that, like I said, it takes hours and hours, but for an agent to look through that, it can do that in minutes.

Speaker C: Right. We use amplitude at Honeycomb.

Speaker A: Mhm.

Speaker C: And we do, we can follow people go to this page and where do they get to from there kind of thing. But that is how an agent can get to what was happening. Definitely. But for the why, you need to know what experiments are being run, what marketing campaigns are happening. Did your CEO just speak at an event?

Speaker A: Yeah, that's really where the golden ticket lies. I think an agent that's really good at doing analytics will be able to synthesize all of that information. So in Amplitude, there is information about product releases that have taken place. If you're going in and documenting that, there's information that you might have encoded into your projects on amplitude, about any time based information that's relevant into making sense of spikes and dips in your data. Um, but then also there's kind of this like synthetic influx of data where it's like, you know, maybe there's a spike happening and there's no product release or like there's no global event or anything that you can be aware of happening right now, but we're still observing a spike. How do you then go in and figure that out? And a really common workflow that analysts do is they segment by different properties. Like, okay, maybe this spike could be attributed to users in Latin America rather than other users, or maybe only users on our mobile platform are exhibiting this behavior. And so that takes hours to manually go in and segment my data by all of these properties. And so the Amplitude Global agent is able to run those for you in the background and then come back to you saying like, okay, I was able to isolate this particular factor as a contributor to a spike or a drop or any trend that you're observing. And so automating that time consuming work is really the value proposition of Global Agent for some of these longer running tasks. That being said, it's also really good at doing the manual work of, um, exploratory data analysis in collaboration with the user. If I just want to explore and build charts and build analyses, I can use Global Agent to do that by just asking it like, hey, show me, uh, how my weekly actives have changed over the past year. Actually compare that against the year before. Or you can build complex analyses with Global Agent that understands your question in natural language and is able to map that into how amplitude works behind the scenes.

Speaker B: So it sounds like there's a lot of tools that are being built as well as prompts and such that can parse out. I was reading, uh, some of the posts and I guess one of the harder challenges has been query to SQL kind of mappings and figuring out what you actually want to ask. So it sounds like you've got this iterative process. Obviously everything is iterative in every world, realistically. But in these development loops, how do you determine the quality of what your various steps are doing?

Speaker A: Yeah, that's also a really good question because quality can erode at various points in the process. For your final answer to be really good, every step along the way has to be doing really, really well. If you think about how accuracy loss compounds in just 10 steps, if each step is about 95% the way there, or 95% accurate, that leads to your response being Napkin math, about 60% accurate. And so that's a huge jump. Even if you're doing really well each step of the way, ultimately your answer may be more or less, you know, subpar. And so the way that we try to make sure that our system is doing well on all accounts is to make sure that we're doing our absolute best each step of the way. And this is where evals comes into play. This is where we have evals on specific tools. We have evals on, like, the overall response quality. We have evals on making sure that the responses are formatted in a way that like, users perceive them to be useful. There's a lot of aspects of what makes a response from an agent. Good.

Speaker C: Do you do any of these evals in real time? Like there's. Is, Is there a double check step anywhere?

Speaker A: Yeah, so we do run certain checks in real time.

Speaker C: Okay, so they're checks in real time. That makes sense.

Speaker A: Yeah, yeah, there's checks in real time. And that lets us actually be able to go through some of these traces of, um, chats that users are having in real time manually and see, like oh, hey, this one was flagged with a response quality that is less than 50% or that's what our evaluator system deems. And so maybe it's worth looking into manually. Now, that being said, a whole lot of users are using this product already and so there's a huge volume of these. How do we even figure out, out of all the issues that may be taking place, where to focus our attention? Where do we continue to invest our product resources into making our system better? You know, certain users may be facing issue A and then others may be facing issue B. How do you measure which one's more important? And as a real world product development team, we have to be able to make those trade offs. And so if you want, we can talk about how to think about being efficient in that process too.

Speaker C: How do you think about being efficient in that process?

Speaker A: Yeah, uh, great.

Speaker C: M question.

Speaker A: I think being efficient there actually starts with being really inefficient at first and not just being really bad at it, but being a little slow. And so this is what I mean at amplitude. We were so excited to roll this out to customers and see an incoming flux of real users using our product. We're getting feedback from them in a couple different ways. We have a survey attached to this where they're able to give us zero, uh to five stars and then they can write in feedback. And so that's great, manually written human feedback, super high signal for us to dive into. But then if you think about how many users even bother to write feedback, we need better ways to determine whether they left the conversation feeling happy or sad. And so we have a thumbs up, thumbs down attached to it as well. So that's another lever of manual feedback that we can look into attached to chats. Now if you think about how many users even bother to give us that thumbs up, thumbs down, we still want to know how good those chat conversations are. And so that's where we decided to come up with a auto tagging system where we can see what sorts of issues are happening in each conversation. What do I mean by an issue? Maybe the agent failed to find the context, the right data context for answering the user's query. And that can yield a pretty disappointing result. Maybe it executed the wrong tool calls, maybe it did the wrong workflow, or maybe it got the right data but it just interpreted it wrong. Or maybe there was a UI issue. And so there are a lot of things that can go wrong and decrease the quality of the end user experience.

Speaker C: How do you detect any of those

Speaker A: that was the question we were asking ourselves, where we're able to manually look through these conversations, but how do you automate that process? And so the part that was really slow was actually going through manually and tagging each conversation with the issues that we perceived were happening. And what we did was based on a combination of user feedback, manual internal testing, and then running a bunch of responses through our internal AI system, our internal responses through it, we were able to come up with a taxonomy of error codes. And so these error trace codes captured some of the different types of issues that I enumerated earlier, where we're now able to manually go through each conversation and tag them with like, oh, user was missing context, or like, user just asked a bad question, or the system failed to make the tool call, for example, or the chart was malformed and there was an error on the front end. And so manually tagging was the first layer. And we're still actually doing a lot of that and investing a lot of time into doing manual tagging. Number one, it builds our user context, but number two, it helps us figure out what we need to encode into a system that can automatically detect when these issues are happening.

Speaker B: Okay, so you've gone through that. Now you're on to the next step. So where are you headed from there?

Speaker A: Yes, where we're headed from here is to encode a lot of information about the volume of errors that we're seeing on many of these different counts and instruct an agentic layer to be the evaluator for, like, determining fairly accurately when certain errors are taking place.

Speaker C: That's the auto tagging step.

Speaker A: Yeah, yeah.

Speaker C: Okay, so you did a bunch of manual tagging, and also you said you had examples from internal responses. So you're like dogfooding your product where there you can really understand the data that it's working with and whether it got it right and really get the examples for the issues that you do. You then use those in prompts to get the agent to recognize that in other scenarios.

Speaker A: Exactly. That's exactly the flow that we're dealing with. Now that we've identified a pretty tight set of error codes, we're able to instruct our evaluator system, hey, keep an eye out for these sort of errors. And whenever you think one of them is happening, one or multiple of them is happening in an incoming chat thread, flag that for us. And now we're able to use our own product, actually, that we built, called Agent analytics, to filter down by particular error codes or see that, hey, this particular Error code has like a huge volume of issues. We should invest our product development efforts here. And so the Agent analytics product that we also shipped recently is built for teams like us trying to look at traces of agentic conversations and figure out what to do and how to make them better.

Speaker C: So is Agent analytics, is it an agent or is it analytics? Is it analytics about agents or is an agent about analytics?

Speaker A: It's analytics about agents. Great question.

Speaker C: Okay. Okay. So it's actually looking at the traces for you and at that point the traces are already tagged.

Speaker A: Yes, they're auto tagged. And then also there is a huge like manual layer on top of it as well. Whereas humans looking at these traces with the auto tags from a system, you can also go in and manually update them. You can add notes, you can iterate on these auto tagged layers.

Speaker C: Okay, so your traces, which are describing the whole conversation that the agent had and how it performed and all those tool calls and stuff.

Speaker A: Mm.

Speaker C: All right, so those are something you can look at and then they get tagged by the auto flagger. Auto tagger also they can be looked at by humans and tagged by humans.

Speaker A: Exactly. And that iterative process, obviously the auto tagging is like a, uh, great to have because it automates a lot of the hard work of going in and figuring out like, okay, what do we do next? You don't always have customers writing into you like, hey, I would really like this particular tool to be more accurate. Like they're not going to give you that feedback up front. You kind of need to be able to figure it out from the overall response quality. So that gives our product teams much needed direction into where to invest. Like, where could these systems be better? What is ultimately going to help users feel like the response quality of our agent is trending upwards and our users may not even know that what's happening behind the scenes. And so we need to be able to figure out what the users want without them having to ask for it explicitly. And that's really similar to how pretty much all product development works. But it's a little bit amplified in this world of AI where there's a lot less transparency into how these Agentix systems work.

Speaker C: True, true. Is the interface to Global Agent is uh, it like a chatty interface?

Speaker A: It is, it is a chat based product. And so it's a chat interface where the chat shows up in context with where you're doing your analysis. And then also you can access some of these tools through our external MCP product. You can access it through Slack pretty much wherever you do your analytics work this global agent and the NCP will show up alongside it.

Speaker C: That makes sense.

Speaker B: So I know we were talking earlier about like models and evaluations and so this is kind of like prompts, evaluation prompts, things like that. How uh, do you like control the iteration of those things and approval of changes of them and review of even the prompts themselves? Like have you found workflows that work better for this as opposed to like you know, I mean m. It is version control of files that have prompts in them after all. Right. I assume.

Speaker A: But yeah.

Speaker B: Like what do you find there as being challenging or interesting?

Speaker A: Yeah. Whenever we have significant changes happening to like either if it's prompts or tools or other parts of the agentic flow, we definitely run all of our evals and make sure that we're not seeing first of all any adverse effects or like we're not like suddenly like failing half of our evals or anything like that. But then if there is an intended effect that we're observing that that the changes that we're intending to make are taking place based on our set of evals. And so we do run our evals whenever trying to ship big or small changes.

Speaker C: Okay. We've been talking about evals on production.

Speaker A: Mhm.

Speaker C: Is there a separate eval process pre release for. We ask it the standard set of questions with this standard data set and see if it does a good job.

Speaker A: Yeah, yeah, there definitely is an eval, um, running process that we have offline as well and we try to run that very frequently as well, um, multiple times a week and also associated with whenever we're shipping changes. But these evals cover all sorts of things even. Well, first of all they cover how good is the response quality that we're seeing like rubric based evaluations or how long are ah, the responses taking. We shouldn't be shipping changes that are suddenly like making the response time skyrocket or anything like that. Do the responses make sense semantically to an end customer? Are the responses violating any rules that we have set? Is the agent performing all the right tool calls? So we have evaluations for each of these different, I guess, correctness criteria for our uh, agentic product.

Speaker B: And in your article, by the way, I just want to take this one quick diversion because this is an interesting one. So in the one you posted on X, you were saying that early on when you were doing evaluations you were doing like a pass fail. So there was no such thing as partial credit. Right. So that's something you learned as you were doing these agents. Right. And these evaluations of the agents, you were learning that like maybe the way we evaluate something needs to be more fine grained than just a true false.

Speaker A: Yeah, right, exactly, exactly. Like for example, if a user has asked the amplitude global agent to, to make me a funnel analysis, um, and measure how many users fully complete registration if they scanned a code at uh, checkout. For example, if this is like a storefront, the agent should be able to create you that funnel chart. So there's like one check there. Like did it make you a funnel chart? Did it do the task that you asked it to? Does the funnel chart now have the six steps that we're expecting for this particular storefront? Did it use the right conversion window of an hour? Are we showing you the right conversion rate and drop off? Is the response interpreting the chart? Does it have the right numbers that a user is expecting? Like the median or the delta between steps? Does it break down by platform? Does it have all of the information that the user has asked for? And we encode all of that into like the expected insights that a user should be seeing for this particular case. So evals are a really great opportunity for you to predefine what you're expecting your Agentix system to output.

Speaker C: And some of those are verifiable deterministically. Like did it make a funnel chart? Does it have the right number of steps? Yeah, and some of that is interpretive. Is this response something that the user will be able to understand?

Speaker A: Correct, Correct. And those things seem like they're a little bit more qualitative. But that's where our product building context comes in. We know that users find responses formatted in maybe a certain way to be more helpful. And so we can check whether responses are structured in that certain way and break down certain criteria of a response.

Speaker C: You could say, oh, that's clearly too many em, um, dashes. Exactly. Or dang it, it said, you're absolutely right again. What is the optimal level of emoji content?

Speaker A: Yeah, we've had so many excited AI esque responses and teaching the system to respond in a matter of fact way that's still approachable and friendly is also part of the way that you build a system that's perceived to be correct or perceived to be usable. Um, cut all the fluff and just get straight to the facts.

Speaker C: Yeah. And there's like a level of confidence that I want it to express.

Speaker A: Mhm.

Speaker C: Which is not. You're absolutely right. Everything you said. Yes. Yes.

Speaker A: Yeah. And you know, in the world of analytics, that's even more important because you can see a case where like, maybe a customer has seen like a huge dip in their data and they're panicking already. They're like, why am I, like, why are my signups going down? And then like, if you have an AI coming to you and being like, oh, your system is down, like, that can be very alarming and that would affect users trust with this AI tool. And so we have some pretty strong instructions to tell it to output hypotheses and not try to make determinations about facts. And that's important as an analytics assistant tool that, you know, it's only hypothesizing on potentially things that could be going wrong and handing control back to the user. And like, hey, these are five hypotheses that I have. And, and let me know if you want me to dig into like any of these further. Like, let me know if you want me to take this action for you. And really using the human as a partner, rather than being like, I went off, did analysis and sorry, your product's down.

Speaker C: Right. Because if it gets too confident on one thing, it can take us in the wrong direction because it hasn't been reading the news and maybe it doesn't know that it's Super Bowl Sunday and all your users are just watching tv.

Speaker A: Exactly.

Speaker C: There's always context that a human has that it doesn't.

Speaker A: Yeah, yeah. And in analytics, the human having context is really key to like, not just related to world events, but also about your particular taxonomy. And what I mean by your taxonomy is how do you label different events that are coming in? And wouldn't you know it, a lot of customers have really messy taxonomies. Things are labeled poorly. Things are labeled things that they used to be called 10 years ago and not necessarily what they're called today. How do you even interpret that as, you know, this is something that would take you or I effort too in terms of going in and figuring out how do I interpret this one customer's taxonomy when I'm not even that familiar with their product. And so that's also really difficult. And this is where we also allow customers to add in specific context related to their product. And we let our agent read that context and be able to know like, oh, okay, this customer actually defines weekly actives in a way that's completely different from how I would have thought. And so let's use that definition or let's use these standard definitions for metrics. When they say, clicked on the checkout button, they're not talking about the event that's labeled checkout button. They're actually using this other event. And so those sort of org specific contexts are able to be defined by users and the agent has access to those.

Speaker C: Yeah, that's so important.

Speaker B: So one of the things that I know, you know, I've struggled with is when you're dealing with building evaluations, right. When you just get started with them, there's there are libraries that have all sorts of like basic built in ones. Uh, you're using an LLM as a judge. Right. So you're basically filling up a prompt with business specific things in it. Right. That are important to your customers. And then you have hopefully enough context with that, plus the data that's happening and being filled in along the way with all the analytics. What does some of that look like when you get it wrong?

Speaker A: You mean like an evaluation where the agent is not finding the right answer

Speaker B: yet or more like you didn't really, as you're starting to build your evaluations, you didn't get the evaluator right?

Speaker A: Mhm.

Speaker B: Like how do you debug those things?

Speaker C: How do you check your checker?

Speaker B: Yes.

Speaker A: Yeah. Part of it is understanding exactly what you're trying to measure. I think when you get your checker wrong, it's either being too general like trying to check like correctness in an under specified way, or it's being too specific in a direction where maybe like you know, this isn't exactly what you're trying to check but you're getting the wrong signal or you're checking for the wrong signal. And so really crystallizing what are the correctness criteria for your system that you care about is some of the pre work that you have to do before you even start defining evals. You have to define the structure of your eval. You have to be able to figure out, okay, I care a lot about whether the agent created the right type of analysis. And that's like one thing that I'm going to measure that now is a well specified problem. If you step back and you're like, I want the agent to give me good responses that make a lot of sense. You know, you have to do a lot of work. What does it mean to make sense? And you have to break that down into like, okay, it should tell the right story and be interpretable by an end user, but then it should also be interpreting data correctly. It should also be producing the right sort of artifacts.

Speaker C: It should be saying I don't know. And it doesn't know exactly.

Speaker A: It should be refusing to do certain tasks that it can't do. Instead of making them up. It should not be hallucinating. And so these are all different types of correctness checks that you then have to break down and layer into different types of evaluators.

Speaker C: And then depending on those outputs, you're refining the prompts and the tool sets for each step of the global agents work.

Speaker A: M Exactly. Refining those steps, sometimes adding more steps and realize like, oh, users really want to do this particular analytics task and we have no tools that can help them do this. Let's add one. And so that's where we use failures happening in real time to change where we're investing our product development efforts.

Speaker B: You had a whole article that you wrote, um, making stone soup.

Speaker C: Mhm.

Speaker B: Eval driven development for analytics with AI, which we'll link to in the show notes. I think it's excellent. Really kind of talking about like start with some sort of framework of setting up your evals and put the stone in the water. Right? Correct.

Speaker A: Correct.

Speaker B: Is that how you started getting people interested in jumping in and adding some business context in the eval process for these things?

Speaker A: We absolutely did. And it was a team effort, let me tell you. It took a lot of hands on deck to get a really great set of internal evals because one thing we have a lot of is internal data. We've been using our own product for ages and. And then also we internally have so many experts on amplitude because we have people in the day to day who are training others on how to use amplitude. We're using amplitude ourselves to see how people interact with amplitude. It's very meta. And so we decided to use our own product as a really great set of example cases where we're asking real analytics questions like why did our signup surge even though we had no top of funnel product improvements? And so real investigations that took our own PM's hours to do then turned into evals that we were able to test our global agent system on. Like, hey, is it able to get this thing right? That RPM spent like four to five hours over a week trying to investigate last year. And it's a really great signal when the agent's able to get something like that right, we know we're headed in the right direction.

Speaker B: That's gold really if you think about it. Uh, all those little findings that you're able to pull out of experience and years of work with your product and then suddenly being able to apply those to other customers on the fly.

Speaker C: Right. To like take the expertise that we do this at Honeycomb too, that we have internally and encode it into the agent to make it available to everyone without our customers having to develop that expertise on their own in order to use the product to maximum effect.

Speaker A: Right, exactly. And the magic of it is we, we have users at Amplitude who span so many different Personas. Like, we have product developers like PMs and engineers, and then we have our customer success managers who are also using Amplitude to answer their sort of questions. We have people on the sales and marketing side. And so when we bring all those people together and say, like, hey, what are questions that you would like to ask Amplitude? Or like, what are questions that you try to answer in your day to day? Get those questions, get their expected outputs, and then put our system to the test, that's when we can build that internal confidence that we're building a robust system. And it takes a lot of effort. You know, we're still working on it internally. People are manually adding in evals based on their real life experiences. But there's also a piece to it where we automated this process of generating evals as well from that very article that you mentioned, the Stone Soup one, where we realized we want more evals and we want them fast. So we have an artifact in amplitude called a notebook, which we've been using internally at Amplitude for a while too, which is essentially a handwritten document online where you are documenting your steps to analysis, maybe. I shipped an experiment and it was very successful and I've documented that in an amplitude notebook. Here's the analyses that I did to figure out what's going on. Here's the output result that I have. And so we parsed a lot of our internal notebooks and amplitude and generated nice tight evals from that that give us an input question like, oh, what was the success rate of this experiment? How well did this experiment do? And an expected output.

Speaker C: That's excellent. Speaking of notebooks, uh, this is not really a notebook, but I wanted to take a few minutes and ask you about something really important, which is your art. I found your website. It's jennickievibrekart.com, right?

Speaker A: Yes, that's the one.

Speaker C: Yes. And it lists all your writing, your blogs, like the ones that we've been talking about today. Also it has art and I love the one from March 10th. About the calendars. Yeah, it's like you've somehow taken a Google Calendar that like starts in January of this year, I think.

Speaker A: Yes, right.

Speaker C: And it, I clicked on it and it displays like this Week. And there's meetings on it for today that say, pain is not something I want to feel, yet it is something I have to carry. That's from 1 to 7am and then at 8am we have hot blooded. And at 12:30, what should we name her? And then. And we named her Longing. This is so beautiful. And then I can hit back and see previous weeks and I can even add the events to my calendar.

Speaker B: Like poetry and philosophy on a calendar.

Speaker A: Yes, exactly. This is a live intervention project that I'm running right now, which is transforming this, you know, very synthetic element that we use in our day to day lives, the calendar, to bring order to our lives, really. But instead I'm using it to add chaos. And so it's a really subversive project because it's repurposing all these affordances that we have. You know, you have an event title, you have event duration, you have a location, you have a description. And we use all of these to tighten up and, and schedule our lives down to the minute. But our real lived experiences are so different. There's things going on minute to minute that we don't choose to document. And so I've decided to bring some of those more latent narratives that we all have ongoing in our lives and bring them into this grid system of, um, a calendrical frame and instead use it to write poetry or thoughts that otherwise you wouldn't even think of putting in a calendar.

Speaker C: Oh yeah, Hot Blooded takes place at a Spotify track.

Speaker A: Exactly. There's embedded artifacts within these events if you choose to click into them. There's images, there's Google forms, there's Spotify links. And so really it's this landscape that now my audience can interact with and participate in. But, you know, it's really trying to project these vague thoughts and impressions, you know, fleeting thoughts, into this tangible calendar space.

Speaker C: I have to ask, did you use AI anywhere in this project? And if so, how did you evaluate the results?

Speaker A: That's so funny. Uh, if only, if only this was an AI project, but this is decidedly not an AI project. Um, in fact, if you go to March 3rd on that calendar, you'll see a little bit of a nod to how this is very much not an AI project.

Speaker C: Whoa, there's a cool triangle, Greg. I'll just let our listeners go to March 3rd in Jonicki's calendar poetry project and see how not AI it is.

Speaker B: That's pretty great.

Speaker C: It's beautiful.

Speaker B: Thank you.

Speaker A: Thanks for checking it out.

Speaker B: All right, so now we know where we can find your writings, your calendar, poetry and calendar, um, free writing and fun. Where else do you write things and talk about things? You're on X with your work for amplitude, right?

Speaker A: Yes, you can find me on Twitter, you can find me, um, on my own website. Uh, you can reach out to me.

Speaker C: Would you spell your URL for people?

Speaker A: Yes, my website is J A N A K I V I V R E K A R dot com. That's my name. First name, last name, dot com.

Speaker C: Thanks. And I would like to ask you for a piece of advice or a random thought that also works, uh, to leave our listeners with, yes, one piece

Speaker A: of advice as we're all figuring out how to orient ourselves in the AI landscape is particularly about evals, since we've been talking about them so much, is try to demystify evals for yourself. Um, it can seem kind of daunting and scary if you've never written an eval before, if you've never built, um, an evaluator before. But really think about it to start off as just an input and an output, um, it's just like a test that you want to run on your agentic system. What is something that you can think of asking it, and what should it respond? And then once you think about what it should respond, break that down then into what are different angles of that? What are the success criteria? Should the output have a particular artifact like I mentioned, or should it be structured in a particular way? Should it contain a specific detail necessarily, and then take it from there. So break it down for yourself. It's not as mysterious as it may sound where everyone's talking about evals today, but really all it comes down to is an input and an output. And you can get to evaluating your AI systems this way.

Speaker C: If you in the audience have ever done property based testing, it's a lot like that.

Speaker A: Yeah, yeah.

Speaker C: Just thinking about the properties or correctness criteria that you want the responses to have, because you can't hard code, it should say exactly this.

Speaker A: Yeah, absolutely. And once you have that up and running, the next step then is how do we turn this into product development? How do we learn from our evals and the outputs? You know, whether you're running them online or offline or both, there's information to be learned from them and, and figure out where your system could be better and then invest your product development efforts there.

Speaker B: Because you're specifying these things in regular language, you have a conversation piece to use with everybody about this instead of code. So in a way, uh, it kind of makes it easier for more people to participate than if it was software that was running deterministically with unit tests, for example.

Speaker A: 100%. A lot of our evals are written by our own PMs, our own customer success managers.

Speaker C: Nice.

Speaker A: Also other engineers. But really, anyone who uses your product can help you write an eval. We even have had customers being like, hey, like I really asked this particular question a lot. And the system could be better in this way. What if we do, we turn that into an eval for ourselves. So every failure that you witness can turn into an eval that you have running perpetually in the future.

Speaker B: A domain specific language called language.

Speaker A: Yeah.

Speaker B: Um,

Speaker C: beautiful. Thank you so much.

Speaker A: Thanks, Ken. Thanks, jessatron.

Speaker C: That's all we have time for today. If you're interested in being a guest on this show, or if you would like to suggest a topic, find us on twitter@olycast. That's 011 y c a s t. Olycast is brought to you by Heavybit, the leading investor in developer first startups. To learn more about Heavybit, visit heavybit.com.

Related episodes across the Index

Other episodes covering the same guests and topics, from across The B2B Podcast Index.

  • 225: Every Website Already Has An Agent Experience And Most Are Bad With Netlify CEO Matt BiilmannNo Hacks · on MCP (Model Context Protocol)95 / 100
  • EP 115: The Moment Claude Co-Work Replaced 4 Days of Work in 30 MinutesEmbracing Marketing Mistakes · on Claude Opus 4.685 / 100
  • Go Viral with Customers Like a Granola PMMProduct Marketing Adventures · on MCP (Model Context Protocol)85 / 100
  • Mozilla CTO: Why Most Enterprises Don't Control Their AICXOTalk · on MCP (Model Context Protocol)83 / 100
  • From Legacy to Agents: Rethinking API Governance for AIAPI Platforms For Scale · on MCP (Model Context Protocol)83 / 100
  • AI Reality Check: What CMOs Are Actually Building - with Nicole LefferGrowth Activated · on MCP (Model Context Protocol)80 / 100

More from O11ycast

All episodes →
  • Ep. #90, Outcome Engineering in the AI Era with Cory Ondrejka
  • Ep. #89, Software Is the Killer App for AI with Bryan Cantrill
  • Ep. #88, Metrics Are Good, Actually with Charity Majors
  • Ep. #87, Augmented Coding Patterns with Lada Kesseler
  • Ep. #86, 12 Years and 100 Million Customers with Amarilis Campos of Nubank
Explore the best B2B Engineering & DevTools podcasts →
All O11ycast episodes →