34 pointsby skull88888884 hours ago7 comments
  • dmos622 hours ago
    How do you reuse traces as benchmarks (eval datasets)? Is it about being able to synthesise an agent session from the trace, and having another agent watch the first agent's behavior? Having trouble wrapping my mind around all the little details.

    Edit: I initially asked also about general tips for observing agents, but later, noticing that there were no interactions with my comment yet, edited my comment to remove that question, because I felt that it was too broad and would detract from my main question. To my surprise, both were answered by op after my edit; kudos!

    • dinman hour ago
      Good questions.

      Agent observability is based on similar primitives as regular observability (OTEL), but is wildly different. Trace payloads are huge, and errors are much more subtle, they are not increased latency or elevated 500 response rate. We recommend tracing everything in detail, and reading a few traces manually at the beginning while you iterate. At scale, the answer is almost always use another LLM look at your traces, which is what this post is all about.

      Evals are critical. I really recommend adopting the Anthropic's capability / regression eval model [1]. We also deeply believe that agent evals should be end-to-end, and as high-level as possible. This again often involves a quality LLM-as-a-judge, tuned on a set of manually labelled data.

      With this idea in mind (to answer your question), we think that, for eval datasets, the most crucial bit is to be able to store input of what your agent was asked about in production. Collect a certain distribution of inputs for happy and unhappy cases, and then run evals on those inputs. That's why Laminar went great lengths to help our users automatically get actual inputs their users send to their agents [2].

      [1] https://www.anthropic.com/engineering/demystifying-evals-for...

      [2] https://laminar.sh/blog/extracting-tasks-from-agent-runs

  • ghm21803 hours 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?

    • skull88888883 hours 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.

  • danielmarkbruce2 hours 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.
    • dinm2 hours ago
      Thanks for the response! Curious, can you expand on the architecture, how does that work? If you can share of course.
      • danielmarkbruce2 hours 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.

        • dinm2 hours 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 real time.

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

          • danielmarkbruce2 hours 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.

  • SantiDev3 hours 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
    • kolbeyang3 hours 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.

  • BoorishBears2 hours ago
    You should try the bullet points then earning someone reading the rest, that's where I bounced.
    • skull88888882 hours 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?
  • aidiveyt2 hours ago
    [dead]
  • vibewright2 hours ago
    [dead]