Building Reliable AI Agents Through Production Monitoring and Intent Discovery

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

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

Problem

Domain: Production monitoring for conversational AI products

Raindrop addresses the reliability gap that appears when long-running AI agents move from offline evaluation into production, where users create unanticipated intents and failures often do not throw software errors.

Constraints:

Architecture

Raindrop frames AI-product reliability as a discover-track-fix loop over production conversations. The system ingests production user and assistant interactions, captures explicit feedback events such as thumbs-down, regenerations, copies, and relevance marks, and detects implicit signals such as refusals, task failures, forgetting, wrong dates, and user frustration. It clusters signals and intents to discover concrete issues, uses semantic search plus LLM-assisted binary matching to calibrate issue definitions, trains smaller custom models for broad production coverage, and reports issue impact by affected-user percentage and metadata such as model, modality, intent route, tools invoked, and tool errors. The fix loop encourages teams to convert repeated intents or issues into modular tool or sub-agent workflows so they can experiment and improve one bucket without rewriting the entire main prompt.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  production-conversation-data[Production conversation data] --> explicit-feedback-signals[Explicit feedback signals]
  production-conversation-data --> implicit-signal-detectors[Implicit signal detectors]
  production-conversation-data --> intent-clustering[Intent clustering]
  explicit-feedback-signals --> issue-discovery-clusters[Issue discovery clusters]
  implicit-signal-detectors --> issue-discovery-clusters
  intent-clustering --> issue-discovery-clusters
  issue-discovery-clusters --> deep-search-calibrator[Deep search calibrator]
  deep-search-calibrator --> custom-issue-models[Custom issue models]
  custom-issue-models --> monitoring-dashboard[Monitoring dashboard]
  intent-clustering --> metadata-breakdown[Metadata breakdown]
  metadata-breakdown --> monitoring-dashboard
  monitoring-dashboard --> tool-subagent-layer[Tool subagent layer]
  metadata-breakdown --> tool-subagent-layer
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Production conversation data Live multi-turn user and assistant interactions from deployed AI products. Explicit feedback signals, Implicit signal detectors, Intent clustering
Explicit feedback signals Analytics-style user actions such as thumbs up, thumbs down, regenerations, copies, upgrades, and search relevance marks. Production conversation data, Issue discovery clusters, Monitoring dashboard
Implicit signal detectors Detectors for conversational symptoms such as refusals, task failure, laziness, forgetting, wrong dates, repeated user messages, or positive win signals. Production conversation data, Issue discovery clusters, Custom issue models
Intent clustering Groups turn-level and conversation-level intents so broad signals become specific, describable product issues. Production conversation data, Issue discovery clusters, Metadata breakdown
Issue discovery clusters Clusters filtered events into candidate problems such as upload failures, wrong dates, contact-access failures, tone issues, or forgotten user context. Explicit feedback signals, Implicit signal detectors, Intent clustering, Deep search calibrator
Deep search calibrator Starts with semantic search, uses an LLM to rerank and score candidate events as binary matches, and asks clarifying questions as users mark examples right or wrong. Issue discovery clusters, Custom issue models, Monitoring dashboard
Custom issue models Smaller trained models that apply calibrated issue definitions across large production datasets without using expensive judges on every event. Implicit signal detectors, Deep search calibrator, Monitoring dashboard
Metadata breakdown Diagnostic tags for model version, modality, intent route, invoked tools, tool errors, and call counts. Intent clustering, Monitoring dashboard, Tool subagent layer
Monitoring dashboard Tracks issue impact, alerts when a change worsens production behavior, and gives teams the evidence needed to prioritize fixes. Explicit feedback signals, Deep search calibrator, Custom issue models, Metadata breakdown
Tool subagent layer A modular fix strategy in which open-ended product capabilities are split into tools or sub-agents that can be improved independently. Metadata breakdown, Monitoring dashboard

Data flow

Production conversations produce explicit signals from user actions and implicit signals from conversational behavior. Raindrop filters and clusters those signals with user intents to discover issue categories, calibrates candidate definitions through deep search and user labeling, trains smaller detectors for broad production coverage, and reports issue impact with affected-user percentages plus metadata such as model, modality, intent route, tools invoked, and tool errors. Teams then use the monitored issues to build evals, guardrails, prompt changes, or modular tool/sub-agent workflows and watch production alerts to see whether a change helped or hurt.

6 supporting quotes
“what raindrop does is it allows you to sort of define these intents and define these things in production and then allow you to build these things offline whenever it makes sense.”transcript, stated
“we think about it as like a combination of two things. The first is signals and the second are intents. So and u a signal is some sort of sign that something's going poorly or well from your app. And these can be explicit. So these are like thumbs up, thumbs”transcript, stated
“first is signals and the second are intents. So and u a signal is some sort of sign that something's going poorly or well from your app. And these can be explicit. So these are like thumbs up, thumbs down can be a signal, especially if you have enough users. Um, and I think really interestingly and”transcript, stated
“when we say discover, what we mean is defining these initial signals, defining some sort of initial signal and then clustering those things.”transcript, stated
“the way it works is like it starts by doing a semantic search and then like pulls in an LLM to like rerank and score”transcript, stated
“We train a little model under the hood so that we can process millions of events a day without anyone going broke.”transcript, stated

Why this architecture

Raindrop chooses production monitoring because long-running agents depend on conversation history, memory, tools, and real user context that offline eval sets cannot anticipate. It combines signals with intents because broad symptoms like user frustration are not actionable until they are tied to what the user was trying to do. It trains custom models rather than judging every production event with a frontier model because useful monitoring needs coverage across production data, not a tiny sampled slice. The Trellis/tool-subagent guidance exists because targeted workflows reduce prompt crosstalk and make experiments safer.

6 supporting quotes
“the fact that you can only do so much in these like offline settings and a lot of what you'll end up having to do in real life is understanding where your users are coming from”transcript, stated
“as agents are running longer and longer, uh, as they get more and more capable, um, there's actually this entire like context and conversation that can span days or weeks or months”transcript, stated
“actually can understand the the impact of. Um, the thing that makes this really tricky is that for agents, there's often no concrete error, right? Like if you think about any of the cases that I just mentioned, like okay, it's going to kick someone off for using the”transcript, stated
“These are like you can sort of even though user frustration is a broad category you can actually like each of these start to become like describable issues.”transcript, stated
“you're going to be only able to cover a very very small percentage of production data. So, what we do is actually we kind of um we have this feature called deep search. So, it's I was kind of showing a little video of it before, but the way it works is like”transcript, stated
“as much as you can descriize these the functionality in your app like you're you're able to sort of make targeted changes”transcript, stated

Models used: LLMs for semantic reranking and binary event matching · Custom small issue-detection models · Embedding or semantic search models · Specialized tool/sub-agent models such as the query-language model example

Scale

Alternatives considered (roads not taken)

Rely mainly on offline eval input-output pairs

Rejected because: Long-running agents accumulate context, memory, tools, and external state that make fixed input-output expectations insufficient.

“this is kind of like what eval most people think about evals today. um like specifically, you know, there's a lot of different words.”transcript, stated
“really really hard increasingly to say like you know given this input I expect this output. it really depends on so much um so much external state. So, um, and I think again we're seeing this like I think OpenAI constantly has, you know, they're really at the forefront”transcript, stated

Monitor only traditional latency, token, and cost traces

Rejected because: Raindrop wants product-quality monitoring that asks whether the app is doing well and whether a prompt or model is better in the real world.

“what they mean by monitoring is more like things like latency, token counts, um costs like these sort of things which are obviously important”transcript, stated
“when we talk about monitoring what we mean is like is your app doing well or not or is this prompt better than that prompt?”transcript, stated

Use subjective LLM-as-judge scores for every production output

Rejected because: Scored judging requires its own eval product and cannot affordably cover enough production data.

“LMS as a judge, um, as you'll usually see them described, usually involve getting an LM to to either score score the output”transcript, stated
“you're going to be only able to cover a very very small percentage of production data. So, what we do is actually we kind of um we have this feature called deep search. So, it's I was kind of showing a little video of it before, but the way it works is like”transcript, stated

Count raw signal events

Rejected because: Raw counts can be dominated by one user repeating the same problem, so user-level percentages better represent impact.

“if you just count the number of events a lot of times you'll have a single user that like complains about something a 100 times that's not really that useful.”transcript, stated
“if you can say that like oh x percent more users than yesterday um complained about something then that's an interesting signal.”transcript, stated

Put all domain and query-language knowledge in the main agent prompt

Rejected because: The main agent became slower and confused when the query language lived in the central prompt, so Raindrop used a separate model invoked as a tool.

“if we try to like force all that knowledge of how that our query language works into the main agent. A it's like slower. B it gets like confused”transcript, stated
“So what we did instead was like have a separate model which is like um I think we used five nano for that um which understands the query language like has all the context and it's essentially invoked as a tool. So it's just like it gets a description of what”transcript, stated

Patterns

observability-tracing (monitoring)

Raindrop treats production conversations as the source of reliability truth, tracking live signals, affected users, metadata, and alerts rather than only offline test outcomes.

“in order to build reliable agents you need signals um you need some sort of live signal from your app that things are going well or that things are going poorly.”transcript, stated
“if you push a change and it's like worse, you'll get a notification describing like what changed.”transcript, stated

eval-driven-development (quality)

Offline evals remain part of the reliability stack, but Raindrop uses production discovery to decide which issues deserve evals, guardrails, prompt changes, or monitoring.

“We use evals a lot. Um I think eval are really important. Um the question is more just like proportionally how much time do you spend on each”transcript, stated
“there's a lot of things to do from here like you could create evals from this from the ones you find etc.”transcript, stated

data-quality-loop (feedback)

The system collects explicit and implicit feedback signals, clusters them into issues, tracks impact, and uses those findings to refine issue definitions and product behavior.

“there's these explicit signals and there's these implicit signals.”transcript, stated
“Um, you know, always adjust existing issue definitions. Like I think one thing you'll find is that if you think about something even like forgetting like the agent forgetting something user told it.”transcript, stated

llm-as-judge (evaluation)

Raindrop uses LLMs for constrained binary event matching inside deep search, but distinguishes that from open-ended subjective scoring.

“we use LMS to like label data for people, label issues, label tests.”transcript, stated
“We think about it like essentially a binary classifier like are you like does this you know if you describe an issue”transcript, stated

model-distillation (modeling)

After users calibrate an issue definition, Raindrop trains a smaller model to apply that detector across production traffic economically.

“We train a little model under the hood so that we can process millions of events a day without anyone going broke.”transcript, stated

tool-use-orchestration (architecture)

The talk recommends treating tools as sub-agents and splitting domain-specific functionality into modular workflows that can be monitored and improved independently.

“the realizations here is that tools are really actually sub agents, right?”transcript, stated
“you can really like target and improve these tools experiment with different models for these tools etc.”transcript, stated

Tradeoffs

Combine offline evals with production monitoring

Chose Offline evals plus live production signals over Treating eval suites as sufficient reliability coverage.

Rationale: Offline evals are useful, but real users expose intents and failure modes that builders cannot predict before deployment.

“I think both are important. Like if you I I I think that as much as possible try to think about this like normal software engineering”transcript, stated
“real world use is what helps us spot problems and understand what matters the most to users.”transcript, stated

Detect specific issues instead of judging open-ended quality

Chose Binary issue detection over subjective scoring over Asking an LLM to rate output quality or writing quality.

Rationale: Specific issue presence is easier to calibrate and scale than broad, subjective score judgments.

“So we think about again implicit signals that are they're more like detecting not judging.”transcript, stated
“does the response or input have x issue um these end up being easier to make reliable.”transcript, stated

Measure affected users instead of raw events

Chose User-percentage signal tracking over Raw signal-event counts.

Rationale: Affected-user percentages better represent business impact and avoid over-weighting repeated complaints from one user.

“if you can say that like oh x percent more users than yesterday um complained about something then that's an interesting signal.”transcript, stated
“you also have like number of users affected and time number of times that it happened these things are really important”transcript, stated

Train custom detectors for broad coverage

Chose Calibrated custom issue models over Using the same or larger model to judge every production output.

Rationale: Production monitoring is most useful when it covers all data, and frontier-model judging at that scale is too expensive.

“coverage across all of your data and um if you're using the same model to score um you know the output as you're using to generate the output”transcript, stated
“We train a little model under the hood so that we can process millions of events a day without anyone going broke.”transcript, stated

Decompose product capabilities into tool or sub-agent buckets

Chose Modular tools and specialized sub-agents over One general agent prompt that owns every capability.

Rationale: Buckets reduce crosstalk, allow targeted model experiments, and make changes safer when existing behavior already works.

“bucket your app's functionality and build for those buckets independently so that they they there's sort of as little cross talk between those buckets as possible.”transcript, stated
“you're able to create new tools right without changing any like the main prompt the main functionality”transcript, stated

Sometimes fix with guardrails before writing large eval suites

Chose Direct fixes or guardrails for obvious bugs over Always expanding eval coverage first.

Rationale: The Q&A notes that some known issues are better fixed directly rather than spending time inventing difficult evals around them.

“there's actually a lot of ground that you can cover just by fixing the issue and knowing these things will be fixed with like guardrails”transcript, stated
“rather than trying to measure, you know, or or make up a bunch of these really difficult evals.”transcript, stated

Gotchas (what bit them)

Offline eval sets miss failures caused by long conversation state.

Root cause: Agents accumulate memory, tools, custom tool sets, and context over days or weeks, so correctness depends on state that fixed input-output pairs cannot represent.

Resolution: Use offline evals where useful, but add production monitoring and issue discovery from live conversations.

“there's actually this entire like context and conversation that can span days or weeks or months that's happening before that.”transcript, stated
“So, um, and I think again we're seeing this like I think OpenAI constantly has, you know, they're really at the forefront”transcript, implied

AI product failures can be invisible to traditional error monitoring.

Root cause: Bad agent behavior often appears as wrong promises, refusals, forgotten context, or unsafe conversations rather than thrown exceptions.

Resolution: Detect explicit and implicit conversational signals instead of relying only on exceptions or spans.

“there's often no concrete error, right? Like if you think about any of the cases that I just mentioned”transcript, stated
“these are something weird about what the agent's doing, something weird about what the user is saying”transcript, stated

Raw event counts can misrepresent how widespread a problem is.

Root cause: A single user can generate many complaint events, making event counts look large without indicating broad user impact.

Resolution: Track signal changes by percentage of affected users per day.

“if you just count the number of events a lot of times you'll have a single user that like complains about something a 100 times”transcript, stated
“A lot of times you want to count signals not by the time number of times or number of events but by the percentage of users that day”transcript, stated

Discovery-quality clusters are not precise enough for fix verification.

Root cause: Loose clustering is useful for finding unknown issues, but tracking requires accurate definitions so teams know whether a fix worked.

Resolution: Refine issue definitions, calibrate search examples, and train detectors before using them for tracking.

“one difference between discovery and tracking is that accuracy doesn't matter as much for discovery.”transcript, stated
“while it doesn't matter for discovery much it does really matter for tracking and tracking is the prerequisite to fixing.”transcript, stated

Subjective LLM-as-judge scoring becomes a second product to maintain.

Root cause: Teams need their judge outputs to match human labels, so every scored criterion requires its own eval and prompt-calibration work.

Resolution: Prefer calibrated binary classifiers for specific issues, with humans marking examples and detectors learning the definition.

“you essentially need e models for your evals like you need a way to know that those scores are aligned with the scores that you would choose”transcript, stated
“as you mark things as right or not we're at we will generate questions and ask them to you”transcript, stated

Adding domain knowledge to one large agent prompt can slow and confuse the product.

Root cause: The main agent may start applying specialized query-language context everywhere, and prompt changes become coupled to every product behavior.

Resolution: Move specialized capabilities into tool-like sub-agents that receive a natural-language task description.

“A it's like slower. B it gets like confused and starts using that all the time.”transcript, stated
“the main agent is describing given all the context of the conversation and the request what the query should be in natural language”transcript, stated

Evaluation

The evaluation approach is production-first: define explicit and implicit signals, cluster them into issues and intents, track affected-user percentages and metadata, calibrate binary detectors through deep search and labeled examples, and keep offline evals for critical or repeatable cases.

Metrics: Percentage of users hitting a signal each day · Event count and number of affected users · Thumbs up, thumbs down, regeneration, copy, upgrade, and relevance-mark feedback · Implicit issue presence such as refusals, task failures, forgetting, wrong dates, or user frustration · Model, modality, intent, tool invocation, tool-error, and average tool-call metadata · Issue prevalence such as an 8% affected-user detector · Latency, token counts, and costs as complementary operational metrics

5 supporting quotes
“if the number spikes by a few percentage points, like you care about it, you know, just like if you see that error rates go up two or 3%”transcript, stated
“these are things like thumbs down, thumbs up, regenerating, upgrading.”transcript, stated
“what are the tools that were like invoked in this sort of issue, what were the you know, like did those tools have errors more commonly?”transcript, stated
“what they mean by monitoring is more like things like latency, token counts, um costs like these sort of things which are obviously important”transcript, stated
“most actually most of our customers use us with uh either Langmith or Brain Brain Trust.”transcript, stated

Outcomes

Concrete operating scale includes long-running agents of 15 to 20 minutes, detectors intended for millions of production events per day, issue monitors that can report examples like 8% affected users, and customer context at five-plus million users. The talk does not provide latency, cost, precision/recall, or before/after reliability metrics for Raindrop itself.

4 supporting quotes
“I'm going to go through kind of each of these steps what we mean by discover, track, and fix.”transcript, stated
“We train a little model under the hood so that we can process millions of events a day without anyone going broke.”transcript, stated
“most actually most of our customers use us with uh either Langmith or Brain Brain Trust.”transcript, stated
“the product it's raindrop.ai. Um yeah that's the and the feature is called deep search.”transcript, stated