Launch HN: Laminar (YC S24) – We trained a model to catch silent agent failures

Hi HN, we’re Robert and Din from Laminar (https://laminar.sh). We’ve been building open-source observability for AI agents since 2024. Recently, we released flow-1, a model trained with RL to find errors in agent traces. On our benchmark (https://laminar.sh/blog/flow-1), it matches GPT-6-sol in detection quality while being 23x cheaper. This makes it affordable to analyze every production agent trace, without sampling.

Here’s a one-minute walkthrough: https://youtu.be/KJa3h6ZJNLQ

We also put together a post with example traces and analyses from flow-1 and other models: https://laminar.sh/blog/flow-1-in-action

Agent observability is crowded, so instead of a bullet list of how Laminar differs from X, we’ll explain how we’re solving agent observability from first principles.

Agents now run for many steps and fail implicitly. An agent can click the wrong button or cite the wrong document while every call completes successfully. These errors are the most useful ones to catch and understand. To find them, you need to understand what the agent was trying to do and inspect its LLM calls and tool results. Simply looking at the final agent output is not enough.

Collecting traces alone doesn’t solve this. A lot of agent observability platforms are still data collectors at their core. You can end up paying to store traces that nobody has time to read or extract value from.

Using another LLM to inspect traces is THE solution, but capable models are expensive at scale and cheaper ones often miss errors or flag unrelated things.

So we built our model to solve exactly this problem. We finetuned a small OSS model and then post trained it with RL on thousands of synthetic investigations of realistic agent workflows in software, legal, customer support, etc. We got a model that is both good at agent trace analysis and very cheap to run.

flow-1 runs inside a harness we call Signals. It acts as a coding agent, treating an agent trace like a repo, with each span (an LLM call, tool call, etc.) as a file. It starts from a compressed string representation of a full agent trace and a user prompt, then greps across spans and reads the relevant ones in full.

The beauty of Signals is that it can respond to a general prompt. You can ask it to identify user frustration, check whether your browser agent completed a checkout, and so on. It’s not limited to raw error detection. It returns findings as JSON in a schema users can freely define. We call these signal events.

Once you’re analyzing every trace, you also have too many individual events to read. That’s why we automatically group similar signal events into clusters. You can see recurring problems and how often they happen, then drill into individual events and the traces behind them.

You can use traces from a cluster to build an eval dataset for that type of failure. You can then use your favourite coding agent to hillclimb on those evals and check that the fix works across these cases before shipping it to prod.

Trace → analyze → catch errors and form clusters → fix → release. Making this loop easy is why we built Laminar.

We’ve put the same thought into the rest of Laminar. Our blog (https://laminar.sh/blog) explains how looking closely at how agents actually work led us to build 20x trace compression, a custom SQL query engine and automatic task extraction.

Laminar is Apache 2.0 and self-hostable (https://github.com/lmnr-ai/lmnr). We make money from the managed cloud.

We’d love to hear how you track your agents’ performance today. How much do you learn from user feedback versus your own monitoring? And when you fix something, how do you check that it hasn’t introduced a different failure?

24 points | by skull8888888 2 hours ago

6 comments

  • danielmarkbruce 25 minutes ago
    To answer your question - we use cheaper models to just flag if something looks obviously flawed. That covers the vast majority of things because it's the propagation of obviously stupid stuff that causes a problem for our system. To the extent we are doing something sophisticated, we use an appropriate architecture, like it's built into the system.
    • dinm 22 minutes ago
      Thanks for the response! Curious, can you expand on the architecture, how does that work? If you can share of course.
      • danielmarkbruce 9 minutes ago
        There are all manner of documented architectures in papers and books, I don't know that there is anything new under the sun at this point, the devil is always in the details. That said, some of the things we use off the top of my head: generate multiple responses using different models and have a third model judge the best answer; generate an answer and have another model critique the answer and then a third take the answer and critique and generate a new answer; multi-model debate; iterate in a loop either x times or until some condition is satisfied; pipelines of specific single calls to check for specific conditions.

        I'd say in general, with respect to errors/low quality responses etc you have to be extremely clear about what you are doing because once you get into the weeds, what is and is not an error is very grey in many cases.

        • dinm 6 minutes ago
          Interesting. Seems to me like latency is not critical in your application and you are doing something more like background processing rather than serving humans on the other side in the real time.

          Also, some of what you describe sounds expensive. Do you find these techniques + cheaper models better than single-shot with larger models?

          • danielmarkbruce 1 minute ago
            Correct, latency is not critical.

            Yes, it can get expensive. We do something in financial markets where the cost of a single end to end task could be $100. That doesn't mean cost doesn't matter though, it matters a lot - if we screw up and it propagates, it's money down the toilet. And if we could get the task down to $20, it would make a difference.

  • ghm2180 1 hour ago
    Very cool. I liked the high level overview where you can view it like do a funnel analysis for failures. Good for fast decision making.

    I wonder if you have thought of using this for the voice AI space for creating traces from many test calls to speed up testing of voice bots? It's true there are a lot of challenges _before_ one gets to the stage of running actual calls like creating good test data etc, but I wonder if you see a definite role for this framework in that space?

    • skull8888888 1 hour ago
      >for creating traces from many test calls to speed up testing of voice bots

      I assume you mean tracing voice agents in general. If so, it depends on the where do you want to trace things. Right now, Laminar, unfortunately, doesn't trace voice SDKs like OpenAI's realtime, but we're very actively looking into it.

      However, if somewhere in your pipeline you have transcripts of your voice agents, then it shouldn't be that different from tracing any other agent. In this case, Laminar and Signals work perfectly.

      We also trained and benchmarked flow-1 on a lot of multi-turn voice agent like conversations.

  • SantiDev 1 hour ago
    Congrats on the product! I love the design of the website and the app. Curious whether it was made in-house, by an external design agency, with AI models, or something else
    • kolbeyang 1 hour ago
      Thanks! Our design is all done completely in-house.

      Workflows are constantly changing but our design process happens across Figma, old-fashioned paper, and code.

  • BoorishBears 10 minutes ago
    You should try the bullet points then earning someone reading the rest, that's where I bounced.
    • skull8888888 7 minutes ago
      I can write some bullet points if you want. I'm serious, this is not a sarcasm. With which AO platform do you want a comparison?
  • aidiveyt 1 minute ago
    [dead]
  • vibewright 5 minutes ago
    [dead]