Evaluating and Improving Replit Agent at Scale

๐ **Source:** [Evaluating and Improving Replit Agent at Scale](https://www.youtube.com/watch?v=snroDwX1-JU)
> [!note]+ Document Notes
> tags: #ai-evaluation #agent-development #continuous-integration #software-benchmarks #developer-tools
> author: Mikael Cata
> source: YouTube
> reference: https://www.youtube.com/watch?v=snroDwX1-JU
> date created: 2024-12-19 10:30
>
> # ๐ท๏ธ Title: Evaluating and improving Replit Agent at scale
>
<!-- deep-read:sections start -->
## ๐งฐ Action Inbox
- [H1] Implement continuous evaluation pipeline โ move beyond single-score evals to production trace analysis #ai-evaluation
- [H2] Build automated clustering system for failure analysis โ group semantic failures for systematic debugging #agent-development
- [H3] Establish AB testing infrastructure for agent improvements โ critical for steady progress validation #continuous-integration
## ๐งญ Table of Contents
- [[#๐ Summary]]
- [[#๐ Main Content]]
- [[#๐๏ธ Notes]]
- [[#๐ References]]
- [[#๐ฃ๏ธ Paraphrase]]
- [[#๐ฐ Newsletter]]
- [[#โ
Action Items]]
- [[#๐งช Hypotheses]]
- [[#๐ Methodology]]
- [[#โ Questions]]
- [[#๐ฎ Future Research]]
- [[#๐ก Implications]]
- [[#๐ง Learning Styles Assessment]]
- [[#๐ Accessibility Assessment]]
- [[#๐ DEIB Assessment]]
- [[#โ
Logical Validity]]
- [[#๐ก๏ธ DARVO Analysis]]
- [[#๐ฏ Conclusion]]
### ๐ References
- [ByBench.ai](https://bybench.ai)
- [SweetBench Benchmark](https://sweetbench.com)
## ๐ Summary
- Replit has developed a continuous evaluation system for their AI coding agent that processes millions of user traces daily
- They launched ByBench, an open-source benchmark for end-to-end AI coding evaluation that tests functional app correctness rather than just code patches
- Their two-pillar approach combines offline benchmarks with online production trace analysis through automated clustering and AB testing
- The system identifies failure patterns automatically and generates code fixes through their internal "Telescope" tool
- Human judgment remains critical for prioritizing fixes and making product philosophy decisions based on mixed AB test results
## ๐ Main Content
Mikael Cata, President and Head of AI at Replit, presents their comprehensive approach to evaluating and improving AI coding agents at scale. Unlike traditional software development tools, Replit Agent starts from natural language specifications with no framework constraints, requiring users to go from prompt to working application.
The core challenge is that models and requirements change constantly, with multiple daily releases reaching millions of users. This necessitates moving beyond traditional single-score evaluations to continuous assessment systems.
Replit's solution involves two main pillars: offline benchmarks for pre-release gatekeeping, and online production analysis for post-release improvement. The offline component includes their newly launched ByBench, which addresses limitations in existing benchmarks like SweetBench by testing functional app correctness rather than just code patch application.
The online component processes millions of daily traces through automated clustering to identify failure patterns. Their "Telescope" system discovers problems, generates automated code changes, evaluates them against benchmarks, and runs AB tests when needed.
## ๐๏ธ Notes
#### โฑ๏ธ [00:00](https://youtu.be/snroDwX1-JU?t=0) โ [H1] Introduction to Replit Agent evaluation challenges
- Key idea: Replit enables prompt-to-app development with no technical constraints specified by users
- Evidence: "The user expects to go from a prompt to a working application, but they don't tell us what kind of framework they want to use"
#### โฑ๏ธ [02:15](https://youtu.be/snroDwX1-JU?t=135) โ [H2] Why traditional evaluation approaches are insufficient
- Key idea: Constant model changes and daily releases require fundamentally different evaluation approaches
- Evidence: "Models are changing almost constantly and if anything the pace of evolution is even faster than it was a year ago"
#### โฑ๏ธ [03:30](https://youtu.be/snroDwX1-JU?t=210) โ [H3] Moving from single-score to continuous evaluations
- Key idea: Production traces contain valuable signal that can be extracted automatically
- Evidence: "We have a combination of fine evals... as well as online evaluations based on the system usage"
#### โฑ๏ธ [05:45](https://youtu.be/snroDwX1-JU?t=345) โ [H1] Limitations of existing benchmarks like SweetBench
- Key idea: Current benchmarks don't capture end-to-end app building from scratch
- Evidence: "Users are not writing the tests. They often start from a completely empty code base"
#### โฑ๏ธ [07:00](https://youtu.be/snroDwX1-JU?t=420) โ [H2] Introducing ByBench for end-to-end AI coding evaluation
- Key idea: ByBench tests functional app correctness using automated evaluators
- Evidence: "Rather than crafting them from synthetic data, we pick 20 real-world traces from usage of Replit"
#### โฑ๏ธ [09:15](https://youtu.be/snroDwX1-JU?t=555) โ [H3] ByBench evaluation methodology using browser automation
- Key idea: Evaluator agent opens browser and tests apps step-by-step with natural language test plans
- Evidence: "The actions are like open the admin dashboard and log in with a certain account and click on this toggle"
#### โฑ๏ธ [11:30](https://youtu.be/snroDwX1-JU?t=690) โ [H2] ByBench results show significant model performance gaps
- Key idea: 2x gap between frontier and open-weight models, with self-extension being most challenging
- Evidence: "Most models do a worse job when extending their own code"
#### โฑ๏ธ [13:00](https://youtu.be/snroDwX1-JU?t=780) โ [H1] Online evaluation through production trace analysis
- Key idea: Millions of daily sessions provide unscripted real user behavior data
- Evidence: "We're collecting millions of sessions every day and they're very valuable because they capture what our users actually do"
#### โฑ๏ธ [14:45](https://youtu.be/snroDwX1-JU?t=885) โ [H2] AB testing infrastructure for agent improvements
- Key idea: AB tests provide mixed signals requiring human judgment and product philosophy
- Evidence: "They never give you a crystal clear signal of what you should be doing"
#### โฑ๏ธ [16:30](https://youtu.be/snroDwX1-JU?t=990) โ [H3] Automated trace clustering for failure pattern discovery
- Key idea: Semantic clustering identifies failure patterns that regex-based approaches miss
- Evidence: "We cluster them by type so that we find out the different failures that are happening at a certain point in time"
#### โฑ๏ธ [18:00](https://youtu.be/snroDwX1-JU?t=1080) โ [H1] Telescope system for automated problem discovery and fixing
- Key idea: End-to-end pipeline from problem discovery to automated PR generation and testing
- Evidence: "We basically cut PRs with a coding agent based on the information we got from the trace"
#### โฑ๏ธ [20:15](https://youtu.be/snroDwX1-JU?t=1215) โ [H2] Real-world example of environment setup timing issues
- Key idea: Semantic trace clustering revealed subtle timing problems invisible in logs
- Evidence: "Agent went on a tangent and started to try to fix the environment on the spot"
#### โฑ๏ธ [22:00](https://youtu.be/snroDwX1-JU?t=1320) โ [H3] Human judgment remains critical for hypothesis formation and prioritization
- Key idea: Humans must formulate hypotheses and guide agent-generated solutions
- Evidence: "We always focus on formulating a hypothesis on what could be possibly go wrong there"
#### โฑ๏ธ [24:30](https://youtu.be/snroDwX1-JU?t=1470) โ [H2] Q&A on open-source approach and building taste
- Key idea: Evaluation should be collaborative, and taste develops through user feedback alignment
- Evidence: "I don't believe in competing on evaluations... It helps everyone to create better products"
## ๐ References
- [ByBench Open Source Benchmark](https://bybench.ai)
- [SweetBench Benchmark](https://sweetbench.com)
- [HumanEval Benchmark](https://github.com/openai/human-eval)
- [Replit Platform](https://replit.com)
## ๐ฃ๏ธ Paraphrase
- Replit has built a continuous evaluation system that processes millions of daily user interactions to automatically identify and fix AI agent problems
- They created ByBench, an open-source benchmark that tests whether AI-generated apps actually work functionally, not just whether code compiles
- Their approach combines traditional offline benchmarks with real-time production analysis, using semantic clustering to find failure patterns and automated systems to generate fixes
## ๐ฐ Newsletter
**Replit Launches Revolutionary AI Agent Evaluation System**
The team at Replit has cracked a major challenge in AI development: how to continuously improve coding agents at scale. Their new approach processes millions of user interactions daily to automatically spot problems and generate fixes.
Key breakthrough: ByBench, now open-source at bybench.ai, tests whether AI-built apps actually work end-to-end, not just whether code compiles. This addresses a major gap in current benchmarks that don't reflect real-world AI coding scenarios.
Their "Telescope" system automatically clusters failure patterns from production traces and generates code fixes, though human judgment remains crucial for prioritization and product decisions.
**Why this matters:** As AI coding tools become mainstream, evaluation systems must evolve beyond simple test-passing metrics to measure real user value and functional correctness.
Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/)
## โ
Action Items
#### DevRel
- Developer advocacy: Present ByBench as new standard for AI coding evaluation at developer conferences
- Education: Create workshops on implementing continuous evaluation pipelines for AI agents
- Developer experience: Build documentation comparing traditional vs continuous evaluation approaches
- Developer marketing: Promote open-source evaluation methodology to attract AI engineering community
- Community management: Foster contributions to ByBench benchmark expansion
#### OSPO
- Policy & Governance: Establish guidelines for open-sourcing internal evaluation tools and benchmarks
- License Compliance: Review ByBench licensing for enterprise adoption considerations
- Security Management: Assess security implications of automated PR generation from production traces
- Software Inventory: Catalog evaluation infrastructure components for compliance tracking
- Developer Support: Provide training on implementing production trace analysis systems
- Community Engagement: Support academic collaborations on AI evaluation research
- Strategic Alignment: Align evaluation methodology sharing with broader open source strategy
#### Community
- Maintainers: Encourage adoption of continuous evaluation practices in open source AI projects
- Contributors: Create pathways for community contributions to evaluation benchmarks
- Sponsors: Support funding for open evaluation infrastructure development
- Ecosystem: Coordinate standards for AI agent evaluation across projects
## ๐งช Hypotheses
- Continuous evaluation systems that combine offline benchmarks with production trace analysis will become the standard for AI agent development
- Open-source evaluation benchmarks like ByBench will drive faster improvement in AI coding capabilities across both commercial and open-source models
- Semantic clustering of failure traces provides more actionable insights than traditional log analysis for AI agent debugging
- Human judgment and product taste remain irreplaceable in AI agent development despite increasing automation
### ๐ Methodology
- Study design: Compare improvement rates between teams using traditional vs continuous evaluation approaches
- Data sources: Track ByBench adoption and performance improvements across different model families
- Experiments: A/B test automated fix generation vs manual debugging for common agent failure patterns
### โ Questions
- How can the WordPress community adapt these continuous evaluation principles for content management and site building agents?
- What specific metrics beyond functional correctness should AI coding evaluations capture for different use cases?
- How do you balance automation with human oversight in production AI agent improvement cycles?
### ๐ฎ Future Research
- Investigate applying continuous evaluation methodologies to other AI agent domains beyond coding
- Explore federated evaluation approaches where multiple organizations contribute to shared benchmarks
- Research optimal human-in-the-loop integration points for AI agent improvement pipelines
### ๐ก Implications
- Practice: AI teams must invest in production trace analysis infrastructure alongside traditional benchmarks
- Policy: Evaluation methodology transparency becomes competitive advantage when shared openly
- Security: Automated fix generation from production data requires careful access controls and validation
- Education: AI engineering curricula must include continuous evaluation and AB testing methodologies
- Funding: Evaluation infrastructure requires dedicated engineering investment beyond model development
### ๐ง Learning Styles Assessment
Reading level estimate: 12th Grade (technical presentation with specialized terminology)
#### ๐ Visual learners
- Present: Architecture diagrams showing two-pillar evaluation system, clustering visualizations
- Improve: Add flow charts of Telescope system, ByBench evaluation pipeline diagrams
#### ๐ Aural learners
- Present: Video presentation with clear explanations and Q&A discussion
- Improve: Provide podcast-style deep dive on implementation details
#### ๐ฃ๏ธ Verbal learners
- Present: Technical terminology explained with concrete examples and analogies
- Improve: Glossary of evaluation terminology, comparison tables between approaches
#### ๐งฉ Kinesthetic learners
- Present: Open-source ByBench allows hands-on experimentation
- Improve: Step-by-step implementation guides for trace clustering, interactive demos
#### ๐ง Logical learners
- Present: Clear system architecture, measurable results, systematic methodology
- Improve: Decision trees for evaluation approach selection, formal algorithms
#### ๐งโ๐คโ๐ง Social learners
- Present: Open source collaboration invitation, community contribution pathways
- Improve: Discussion forums for evaluation methodology, peer review processes
#### ๐งโโ๏ธ Solitary learners
- Present: Comprehensive documentation and self-contained examples
- Improve: Self-assessment rubrics for evaluation system maturity
#### ๐ฟ Naturalistic learners
- Present: Evolution of evaluation systems presented as natural progression
- Improve: Ecosystem thinking about evaluation infrastructure interconnections
### ๐ Accessibility Assessment
#### Screen reader semantics
- Present: Clear heading structure, descriptive link text in references
- Improve: Add alt text for any system architecture diagrams
#### Keyboard navigation
- Present: Video player supports keyboard controls
- Improve: Ensure timestamp links work with keyboard-only navigation
#### Contrast and readability
- Present: High contrast text in transcript and notes
- Improve: Verify technical diagrams meet contrast requirements
#### Text resizing and reflow
- Present: Text-based content responsive to zoom
- Improve: Ensure code examples remain readable at 200% zoom
#### Media and captions
- Present: Full transcript provided for video content
- Improve: Add closed captions to original video if not present
#### Forms and interactions
- Present: Standard web interactions for links and navigation
- Improve: Ensure any interactive demos include proper labels
#### Standards reference
- Meets WCAG 2.2 AA for text content, may need review for any visual diagrams
### ๐ DEIB Assessment
#### Cultural breadth
- Present: Technical presentation accessible to global developer community
- Improve: Include examples from diverse geographical contexts
#### Inclusive language
- Present: Gender-neutral technical terminology throughout
- Improve: Define specialized AI/ML jargon for broader accessibility
#### Neurodiversity support
- Present: Well-structured content with clear headings and sections
- Improve: Add content warnings for rapidly changing technical concepts
#### Representation
- Present: Technical focus allows broad participation regardless of background
- Improve: Highlight diverse contributors to open source evaluation tools
#### Psychological safety
- Present: Collaborative tone encouraging community participation
- Improve: Explicitly welcome newcomers to AI evaluation field
### โ
Logical Validity
#### Strong reasoning
- Deductive strength: Strong logical progression from evaluation challenges to systematic solutions
- Inductive strength: Good use of specific examples to support general principles about continuous evaluation
- Causal reasoning: Clear causal links between production trace analysis and agent improvement
- Analogical strength: Effective comparison between traditional and continuous evaluation approaches
#### Fallacies
- Appeal to authority: Minor reliance on "frontier models" without defining criteria, but supported by empirical results
- Hasty generalization: Some claims about "all AI teams" based on Replit's specific experience, but clearly contextualized
#### Tone of voice
- Overall tone: Technical but accessible, collaborative and open to community input, confident but not dismissive of challenges
### ๐ก๏ธ
---
## Full Transcript
[00:21] All right. Hi everyone. I'm Mikael Cata<br>[00:24] president and head of AI at Replit. And<br>[00:27] today I'm going to be talking about our<br>[00:29] both evaluating and improving on a daily<br>[00:31] basis Replit agent at scale.<br>[00:34] And as you know, Replit is a back-coding<br>[00:36] platform for knowledge workers. We're<br>[00:38] one of the top players in the space and<br>[00:40] we've been literally battling with this<br>[00:42] problem for the last you know almost 2<br>[00:44] years.<br>[00:45] The key difference between I would say<br>[00:47] back-coding has a very broad definition.<br>[00:50] It ranges all the way from being used by<br>[00:52] software developers. But in our specific<br>[00:55] case is even more of an extreme<br>[00:56] definition where you start from just a<br>[00:59] natural language specification of what<br>[01:01] the user wants and literally nothing<br>[01:03] else. So the user expects to go from a<br>[01:06] prompt to a working application, but<br>[01:08] they don't tell us what kind of<br>[01:10] framework they want to use. They don't<br>[01:12] write tests. They just expect things to<br>[01:15] work after you know our the agent run.<br>[01:18] So it means that a lot of the<br>[01:20] evaluations and a lot of the ways in<br>[01:22] which we've been building agents in the<br>[01:24] past especially for software developers<br>[01:26] has to fundamentally change.<br>[01:29] Now,<br>[01:30] how do we track internally the fact that<br>[01:33] the agent gets better on a daily basis<br>[01:34] and is actually aligned with all with<br>[01:36] what our users want?<br>[01:38] This is especially challenging because<br>[01:40] if you think about it, models are<br>[01:42] changing almost constantly and if<br>[01:44] anything the pace of evolution is even<br>[01:46] faster than it was a year ago. So we are<br>[01:48] always sit on shifting grounds. Models<br>[01:51] change fast. We have to change our<br>[01:54] prompts, system prompts, user prompts<br>[01:56] very often, you know, to comply to the<br>[01:58] new features that we're building in<br>[01:59] product. Of course, the tools<br>[02:01] definitions are changing as well. We're<br>[02:03] adding more of them, we're simplifying,<br>[02:05] and we're shipping constantly. Every<br>[02:08] single day we have multiple releases of<br>[02:10] wrap agent, which we put in front of,<br>[02:11] you know, millions of users.<br>[02:15] So, my argument today for this talk will<br>[02:17] be that we have to fundamentally rethink<br>[02:19] how we do evaluations.<br>[02:21] On the left side, you can see how evals<br>[02:25] look like for basically, you know, since<br>[02:26] since we've been working on AI. Um they<br>[02:30] you run your evaluation, you they<br>[02:33] produce a single score, and that score<br>[02:35] is produced by a human. And what the<br>[02:37] human decides based on the score is, my<br>[02:39] agent harnesses better than it was<br>[02:40] before or it regress, or my model is<br>[02:43] better than before, or we should be<br>[02:44] doing, you know, more post training.<br>[02:46] That's how how we've been doing this,<br>[02:47] you know, for a for a long time.<br>[02:49] I argue that we should move more and<br>[02:51] more towards a continuous setting of<br>[02:53] evaluations, where especially when you<br>[02:56] actually have something runs in<br>[02:57] production, and in our case it generates<br>[02:59] millions of traces every day, there is a<br>[03:01] lot of hot fat to be extracted from the<br>[03:03] traces themselves.<br>[03:05] So, what we do is we have a combination<br>[03:07] of fine evals, so very similar to sweet<br>[03:10] bench and other benchmarks that are very<br>[03:11] famous in the space, as well as online<br>[03:14] evaluations based on the on the system<br>[03:16] usage.<br>[03:17] What do we want our evals to capture?<br>[03:19] Fundamentally, first of all, they need<br>[03:21] to optimize what our users care about,<br>[03:24] you know, rather than just telling us if<br>[03:26] the agent is editing code correctly.<br>[03:29] They should also highlight immediately<br>[03:30] what is breaking, and they should inform<br>[03:33] us where what we should be shipping next<br>[03:36] in terms of improvement for our agent.<br>[03:39] What goes into this<br>[03:41] box, this black box? So, we're building<br>[03:43] a new system that allows us to do these<br>[03:45] constant improvements.<br>[03:47] The system looks in the following way.<br>[03:49] We have two pillars. On one end, we have<br>[03:53] the standard old-school benchmarks. They<br>[03:55] are usually employed before shipping a<br>[03:59] new version of the agent. Think of them<br>[04:00] sort of as a boolean flag. It's a<br>[04:02] gatekeeper before deciding if you should<br>[04:04] be launching a new version or not. So,<br>[04:06] if there is a major regression on an<br>[04:08] offline benchmark, of course you stop<br>[04:10] your release. If you see no changes or<br>[04:13] positive changes, you know that you can<br>[04:14] go on.<br>[04:15] But the part that is more intriguing and<br>[04:17] is what is helping us to make constant<br>[04:19] progress is the fact that we do a lot of<br>[04:22] baby testing and we also cluster all the<br>[04:25] traces that we obtain in production and<br>[04:27] we try to gain insights from them. So,<br>[04:29] in this case,<br>[04:31] the online pillar actually works after<br>[04:33] you ship a version of the agent and it<br>[04:35] forces you to react as fast as possible.<br>[04:39] And the loop here is, once I have these<br>[04:41] two pillars in place, you reflect on the<br>[04:43] results that both of them are giving<br>[04:44] you, you likely change the code once<br>[04:46] again, run your eval, rinse and repeat.<br>[04:49] And this is the cycle that we go we are<br>[04:51] going through every single day at<br>[04:52] Replit.<br>[04:55] I mentioned before SweetBench and I want<br>[04:58] to give you a quick understanding why<br>[05:00] we work on something, you know, more<br>[05:02] powerful than SweetBench or at least<br>[05:04] like more tailored towards our use case.<br>[05:07] Um something as SweetBench, HumanEval,<br>[05:09] they played a key role in our space, you<br>[05:12] know, to allow us to air climb them and<br>[05:14] make models more powerful. But<br>[05:16] eventually, they all follow the same<br>[05:17] protocol.<br>[05:18] Uh you make sure that the code that is<br>[05:20] generated complies with the user prompt,<br>[05:22] then you apply the patch on your<br>[05:24] repository, you run the test. If the<br>[05:26] tests are passing, you know, you you<br>[05:28] have a higher score on the benchmark.<br>[05:30] This does not reflect what happens in by<br>[05:32] coding. As I was mentioning before,<br>[05:34] users are not writing the tests. They<br>[05:36] often start from a completely empty code<br>[05:38] base. So, there is not a scenario where<br>[05:39] you can just apply patches. You're<br>[05:41] building things from the ground up.<br>[05:43] So, what we need to capture in instead<br>[05:46] is does the app do what the user asked?<br>[05:48] So, there is a functional correctness<br>[05:51] gap between what SweetBench provides and<br>[05:53] what we were working on.<br>[05:55] And today on stage, I'm launching<br>[05:59] ByBench. It's a new public benchmark for<br>[06:02] back-coding end-to-end that we worked on<br>[06:05] at Raptic for several months. I'm going<br>[06:07] to give you all the details after the<br>[06:08] URL and so forth, but let's start from<br>[06:10] the setup of the benchmark. The input is<br>[06:14] just a PRD. It's literally like a long<br>[06:16] prompt that describes how to build an<br>[06:18] application.<br>[06:19] Rather than crafting them from synthetic<br>[06:22] data, we pick 20 real-world traces from,<br>[06:26] you know, usage of Raptic, just plain<br>[06:28] English specifications<br>[06:30] without any implementation constraints.<br>[06:32] Then, we have an harness that builds the<br>[06:35] application end-to-end. So, it goes from<br>[06:38] an empty repo into something functional.<br>[06:40] And then, the key insight is rather than<br>[06:43] stopping the benchmark here and then<br>[06:45] having humans evaluating the output of<br>[06:47] those PRDs, we built automated<br>[06:49] evaluators. This is what allows you to<br>[06:52] go from a benchmark that you run maybe<br>[06:54] on a weekly basis into something that<br>[06:56] you can run every single time you<br>[06:57] literally have a new PR merge in your<br>[06:59] repository. So, of course, as you can<br>[07:01] imagine, we have AI running all the<br>[07:03] evaluations on our behalf.<br>[07:06] The<br>[07:07] the setup is the following. There is one<br>[07:10] core, and the protocol is you have an<br>[07:13] you have a input, you have an<br>[07:15] implementation strategy, and then you<br>[07:17] have a set of our core, sorry, our wired<br>[07:19] evaluations that you run on your app.<br>[07:21] And we came up, you know, with five<br>[07:23] different pairings, but in reality,<br>[07:26] there are a lot more pairings that you<br>[07:27] could come up with yourself. The most<br>[07:29] basic pairing is the input is the PRD,<br>[07:32] and we build the application single shot<br>[07:35] zero to one.<br>[07:36] Then, maybe in order, you know, to go<br>[07:39] from uh less complicated to more<br>[07:41] advanced, we have something called by<br>[07:43] bond ref or like the reference<br>[07:44] implementation where we start from<br>[07:46] something is already working and we<br>[07:48] build a feature on top of that.<br>[07:50] Let's make it more advanced. We have by<br>[07:52] bond vibe where we start from an agent<br>[07:55] on MVP and then we build a new feature<br>[07:57] on top of that. Maybe this is something<br>[08:00] that in the X lingo you would call slop<br>[08:02] on slop. So if we have something that's<br>[08:04] been built by the agent not verified and<br>[08:06] then you had more agent code written on<br>[08:08] top of that and then you run the<br>[08:10] evaluations to see if it's working or<br>[08:11] not. You can keep making this<br>[08:14] arbitrarily more complex. Uh for example<br>[08:16] on in agent four that we launched a<br>[08:18] couple of months ago, we completely hide<br>[08:20] the complexity of doing task<br>[08:22] decomposition and running agents in<br>[08:24] parallel and then merging all the<br>[08:26] patches together. So<br>[08:28] we can also take as an input the PRD, we<br>[08:30] do the task decomposition, we run all of<br>[08:33] that in parallel and then we run the<br>[08:34] valves after that. As you can imagine<br>[08:36] the parallel plus merge scenario is far<br>[08:39] more uh you know, challenging for a<br>[08:41] standard coding agent.<br>[08:43] I give you here some more ideas we<br>[08:44] describing in the paper, you know, but<br>[08:46] you can even start from a buggy<br>[08:47] application, build a feature on top of<br>[08:49] that and see how much your agent<br>[08:50] struggles, you know, to actually make it<br>[08:52] make it work correctly.<br>[08:55] So the the key question or the<br>[08:57] complexity here is how do you actually<br>[08:59] do the grading? And that's what I told<br>[09:01] you before, you know, was where we spent<br>[09:02] most of our effort. It turns out that<br>[09:05] when we're working on our previous<br>[09:06] version of the agent, we put quite a lot<br>[09:08] of effort in building an automated, you<br>[09:10] know, app testing feature which<br>[09:12] literally doesn't know anything about<br>[09:14] the app per se. Cuz if you think about<br>[09:16] it, when it comes to web coding, you we<br>[09:19] don't give any level of<br>[09:21] uh you know, guardrails to our users.<br>[09:23] They can decide the language they want<br>[09:25] to use. We can decide a different<br>[09:26] framework. So the evaluator has to be<br>[09:29] totally agnostic on how the<br>[09:30] implementation looks like.<br>[09:32] And what our evaluator<br>[09:34] evaluator agent does is it reads the<br>[09:36] code base, it then opens a browser and<br>[09:39] points it to the application that our<br>[09:41] agent has built and then step-by-step<br>[09:44] goes through our testing plan. And even<br>[09:46] the testing plan is expressed in natural<br>[09:48] language and the actions are like open<br>[09:51] the admin dashboard and log in with a<br>[09:52] certain account and click on this<br>[09:54] toggle. And if any of those steps fails,<br>[09:57] then you know, we collect all of them<br>[09:58] together and we generate a score. So, we<br>[10:01] go through all these test plan and then<br>[10:03] we decide ultimately if the score is<br>[10:05] good or not. So, this is the key<br>[10:08] complexity. When it comes to SweetBench,<br>[10:11] we always had a fixed surface. We know<br>[10:13] the repositories, we know the task<br>[10:14] hardness, we know exactly how to make<br>[10:16] this work. In ByBench, the surface is<br>[10:18] completely green field and that's why it<br>[10:21] took us several months of work to get<br>[10:23] there.<br>[10:24] Now, as I mentioned, we're announcing it<br>[10:27] today. Here's the QR code. You can find<br>[10:30] the entire benchmark available open<br>[10:31] source on bybench.ai.<br>[10:34] I'll let you to dig into the paper. You<br>[10:36] know, we<br>[10:37] it's going to be presented a couple of<br>[10:38] weeks from today at the conference on AI<br>[10:40] and energetic systems.<br>[10:42] Peter, the you know, lead of the project<br>[10:44] and first author of the paper is sitting<br>[10:46] here. So, after my talk, please come and<br>[10:48] have a chat with him if you want more<br>[10:49] details.<br>[10:50] I'm just going to give us sneak peek of,<br>[10:52] you know, the most notable results<br>[10:53] there.<br>[10:54] First of all, we are noticing almost a<br>[10:57] 2x gap between the frontier models and<br>[10:59] the open weights models.<br>[11:01] And<br>[11:02] the reason why I want you to pay<br>[11:03] attention there is how I think it<br>[11:05] because we know that<br>[11:07] every single model player as every<br>[11:09] single model builder is hit climbing<br>[11:11] specific benchmarks. That's why we<br>[11:13] release this open source. I want the<br>[11:15] entire community to embrace it across<br>[11:17] open weights and closed weights and make<br>[11:19] sure that you know, we make progress<br>[11:21] overall on by coding as well.<br>[11:23] The other one, possibly not very<br>[11:25] surprising is most models do a worse job<br>[11:28] when extending their own code. So, the<br>[11:30] slop on slop or by bomb vibe scenario<br>[11:33] that I was describing to you before is<br>[11:35] by far the most challenging. And that's<br>[11:37] the reason why I always advocate to have<br>[11:39] a testing step in between every time you<br>[11:41] create a new feature, otherwise you keep<br>[11:43] building on shaking foundations and<br>[11:45] eventually your vibe coding application<br>[11:47] is going to fail.<br>[11:50] I'm going to give you back the QR code<br>[11:51] later on. But, you know, let let's move<br>[11:53] to the to the next step.<br>[11:55] We talk about offline eval. I talked to<br>[11:58] you about vibe bench, but as you recall<br>[12:00] there were like two main pillars that we<br>[12:01] care about. And the reason why we also<br>[12:04] care about the online one is because<br>[12:07] there is a great difference in terms of<br>[12:09] volume of signal that we can collect.<br>[12:12] So, on the offline or right now we're<br>[12:14] working roughly 20 applications. The<br>[12:16] reason, by the way, why we made it open<br>[12:18] is because we are more than welcoming<br>[12:21] contributions from the community. So,<br>[12:23] more applications, harder prompts, we<br>[12:25] can keep making this benchmark arbitrary<br>[12:28] harder so that we make our traffic's<br>[12:30] life harder to actually come with over<br>[12:31] time.<br>[12:32] But,<br>[12:33] when it comes to Rabbit Engine instead,<br>[12:35] you know, we're we're collecting<br>[12:37] millions of sessions every day and<br>[12:38] they're very valuable because they<br>[12:40] capture what our users actually do on<br>[12:42] the platform. And they're completely<br>[12:44] unscripted, the agent is always running.<br>[12:46] So, how do we distill useful information<br>[12:49] out of them?<br>[12:50] Well, it turns out that we run a lot of<br>[12:54] AB tests. It's basically our way to keep<br>[12:56] ourselves honest because vibe bench only<br>[12:58] tells us part of the story.<br>[13:01] And I invite every agent builder out<br>[13:03] there to start to invest on their AB<br>[13:04] testing infrastructure as soon as<br>[13:06] possible. It's the best way in which you<br>[13:08] can make steady progress.<br>[13:10] Now, we ask a wide variety of questions<br>[13:13] for ourselves. So, we we built a lot of<br>[13:15] different instrumentation and metric in<br>[13:17] our agent so that for instance, we can<br>[13:19] find out is there a normal span ongoing<br>[13:22] or is the agent running for longer than<br>[13:23] expected? Or we constantly keep track of<br>[13:27] the user sentiment. It's it's a very<br>[13:29] easy thing of to collect because every<br>[13:30] time you receive a prompt, you can do<br>[13:32] sentiment analysis on it and then<br>[13:34] receive the user is getting frustrated<br>[13:36] or not. And last but not least, this is<br>[13:39] very idiosyncratic to Rapid. Our users<br>[13:41] can also publish their application on<br>[13:43] our product. So, it's a very strong<br>[13:46] positive signal if they decide that<br>[13:47] whatever they built is worth to share<br>[13:50] with their colleagues or to put it in<br>[13:51] public in front of everyone. So, all<br>[13:53] these signals clustered together gives<br>[13:56] us something like this. If you have ever<br>[13:58] done an AB test in your life, I'm sure<br>[14:00] this looks familiar.<br>[14:02] And<br>[14:03] it might look familiar especially<br>[14:04] because not everything is either green<br>[14:07] or red. This is the, you know, hard<br>[14:09] harsh truth about running an AB test.<br>[14:12] They never give you a crystal clear<br>[14:14] signal of what you should be doing. So,<br>[14:16] in this case for example, uh the average<br>[14:19] run duration of our agent, you know,<br>[14:20] went up by 7% but conversely is 8%<br>[14:24] cheaper and we saw the fluctuation in<br>[14:26] terms of positive and negative<br>[14:28] sentiment.<br>[14:29] What shall we do in this case? This is<br>[14:31] where human taste and product philosophy<br>[14:34] still plays a key role. You will never<br>[14:37] get or very rarely do we get like a<br>[14:39] crystal clear configuration of the<br>[14:41] results of your AB test.<br>[14:43] And<br>[14:45] to make our life a bit easier on how to<br>[14:47] generate these AB test candidates, what<br>[14:49] we do is we cluster all the traces that<br>[14:52] we receive every single day and night as<br>[14:54] you can imagine and we try to identify<br>[14:57] first of all, which cluster are<br>[15:00] capturing normal nominal behavior of the<br>[15:03] agent. And as you can imagine, there are<br>[15:04] plenty of them because the vast majority<br>[15:06] of times the application is actually<br>[15:08] successful but of course there is a long<br>[15:10] tail of problem that it happens to<br>[15:12] surface.<br>[15:13] In case we find a problematic cluster,<br>[15:15] then what do we do? We embed all the<br>[15:17] failure summaries.<br>[15:19] We<br>[15:21] we cluster them by type so that we find<br>[15:23] out the different failures that are<br>[15:24] happening at a certain point in time.<br>[15:26] Then we pass them through an LLM to<br>[15:28] classify exactly what is going on. And<br>[15:31] the fact that we do this<br>[15:33] not based on regex on logs or like very<br>[15:35] deterministic techniques is what<br>[15:37] actually makes a difference because you<br>[15:39] will be able to cluster things that are<br>[15:41] semantically close to each other even<br>[15:43] though the agent doesn't give you always<br>[15:45] the same type of output.<br>[15:47] And you know, once once we find these<br>[15:50] uh cluster configurations, we are forced<br>[15:52] to retrain them every single night<br>[15:54] because we are running several versions<br>[15:56] of the engine in parallel. We ship many<br>[15:58] versions every single day, so we can't<br>[16:00] live with a fixed cluster configuration.<br>[16:05] And aside, you know, from also helping<br>[16:07] us to identify the failure modes,<br>[16:09] another interesting feature is the fact<br>[16:11] that once we retrain those clusters, we<br>[16:14] can go back and see if after we believe<br>[16:17] we fixed a problem, a certain cluster is<br>[16:19] actually disappeared. So, say you have a<br>[16:21] certain tool failure that is happening<br>[16:23] only a limited amount of time. So, not<br>[16:26] something that will show up in your<br>[16:27] DataDog dashboard, for example, not a<br>[16:29] failure that happens 50% of the times,<br>[16:32] but maybe it was happening 1% of the<br>[16:34] times in certain specific conditions.<br>[16:37] And from here, you will start to<br>[16:38] realize, okay, I shipped my new PR and<br>[16:41] that cluster is disappeared. So, you<br>[16:43] start to have some evidence that you<br>[16:44] mitigated the problem.<br>[16:48] The<br>[16:50] The technology that we built internally<br>[16:53] was called Telescope and it's a fairly<br>[16:56] simple loop, I hope, after I explain<br>[16:57] everything. Uh first of all, we start by<br>[17:00] discovering the problems. And this is<br>[17:02] based on the trace clustering that I was<br>[17:05] talking about before.<br>[17:06] Then, based on that, we create code<br>[17:09] changes. So, it's completely automated.<br>[17:11] We basically cut PRs with a coding agent<br>[17:14] based on the information we got from the<br>[17:16] trace, based on information we collected<br>[17:18] from the logs, from all the different<br>[17:19] different dashboards that we had.<br>[17:21] Then we evaluate if the change we<br>[17:24] generated, first of all, is is is a<br>[17:26] breaking change. So, we rerun by bench.<br>[17:29] By bench is kind of like a litmus test.<br>[17:31] If the score drops by 10 points, we<br>[17:33] decide that the change is bad.<br>[17:35] If it's a controversial change that we<br>[17:38] believe could affect also negatively our<br>[17:40] agent, we run an AB test. So, we put it<br>[17:43] in front of the users and we try to find<br>[17:44] out what are the trade-offs. If it's a<br>[17:47] clear sure shot, then we just ship it in<br>[17:49] production.<br>[17:51] And<br>[17:52] few times when we believe that the<br>[17:54] hypothesis was correct and maybe the PR<br>[17:57] was not perfect, we keep iterating on<br>[17:59] the problem. Maybe maybe we run another<br>[18:01] AB test until we are in a good<br>[18:03] configuration and then we actually ship<br>[18:05] it.<br>[18:06] If you think about it, this is very<br>[18:07] similar to the work you do as an AI<br>[18:09] engineer all the time, but 90% of it is<br>[18:12] now aided by an agent in the loop, you<br>[18:15] know, rather than you having to sweat<br>[18:16] about every single step of the process.<br>[18:20] Let me give you all an example of, you<br>[18:21] know, what we actually experienced, you<br>[18:23] know, once in production.<br>[18:25] Um<br>[18:26] Rabbit Agent immediately starts an<br>[18:28] execution environment the first time you<br>[18:30] submit a prompt. And of course, to set<br>[18:32] up everything, especially with the level<br>[18:34] of complexity we built, requires, you<br>[18:35] know, quite a few seconds.<br>[18:37] We had a degradation in the long tail<br>[18:39] where our, you know, setup time was<br>[18:41] longer than expected and our agent was<br>[18:44] ready to roll before the environment was<br>[18:47] fully set up.<br>[18:48] As you know, agents have become really<br>[18:49] eager to fix problems. So, Rabbit Agent<br>[18:52] went on a tangent and started to try to<br>[18:54] fix the environment, you know, on the<br>[18:56] spot. Um<br>[18:57] it turns out that by the nature of<br>[18:59] agents not being deterministic, every<br>[19:02] single debugging session looked a bit<br>[19:04] different. So, if it tried to find out<br>[19:06] this long tail problem just by grabbing<br>[19:08] the logs, it would have almost not<br>[19:10] appeared.<br>[19:11] But the moment we cluster all the<br>[19:13] traces, you know, with basically with we<br>[19:15] we through the semantic layer, then we<br>[19:17] started to figure out that this problem<br>[19:19] was happening quite often, and we<br>[19:21] immediately able to create a patch and<br>[19:24] fix the issue. In this case, we didn't<br>[19:26] have to run an AB test because it was a<br>[19:28] pure regression case. But in case it was<br>[19:31] a problem that required testing, of<br>[19:32] course, we would have put an additional<br>[19:34] step in between.<br>[19:37] And even though I'm a big fan of<br>[19:40] trying to optimize as much as possible<br>[19:42] the life of an AI engineer with agents,<br>[19:45] I do think that there is a lot of<br>[19:48] intellectual work to be done by humans<br>[19:50] still in the kind of loop that I<br>[19:51] presented to you.<br>[19:53] For example, whenever we find one of<br>[19:55] these clusters that I was talking about<br>[19:57] before, as a team, we always focus on<br>[20:00] formulating an hypothesis on what could<br>[20:02] be possibly go wrong there. Cuz the<br>[20:04] truth is when running in production,<br>[20:06] you're going to get a really a large<br>[20:08] amount of candidates of what you could<br>[20:10] be fixing. So, you need to prioritize<br>[20:12] where you put effort, where you put<br>[20:13] resources. So, if the hypothesis is<br>[20:16] intriguing enough, then we move forward,<br>[20:18] and we don't just let the agent write a<br>[20:21] PR without any kind of supervision. We<br>[20:23] actually try to feed some of our<br>[20:24] understanding of what is wrong. So, we<br>[20:26] give it more guidance.<br>[20:28] And ultimately, if you think about it,<br>[20:31] every single time we decide of working<br>[20:34] on a PR and doing an AB test, we're sort<br>[20:36] of like shaping the hill that we try to<br>[20:38] optimize. Cuz if we only care about,<br>[20:40] say, making the product more affordable,<br>[20:43] we're going to go and try to fix all the<br>[20:45] anomalous spend problems, and then we're<br>[20:46] going to do our best to optimize that as<br>[20:49] much as possible. So,<br>[20:51] all these choices really determine the<br>[20:53] product philosophy of what you want to<br>[20:55] put in front of our users. And then,<br>[20:57] last but not least, as I was showing you<br>[20:59] before on the AB test dashboard, if<br>[21:02] there is not a clear result, ultimately,<br>[21:05] if you decide to launch or not, is still<br>[21:07] a choice that a human does. Often times,<br>[21:10] that's that's on me in the rabbit. And<br>[21:12] again, that determines really what's<br>[21:14] going to be the ultimate product<br>[21:15] experience.<br>[21:18] So, my In closing, what I want you to<br>[21:20] have as a takeaway today is don't think<br>[21:22] of evaluation just as this last check<br>[21:25] before shipping. It shouldn't be just a<br>[21:27] boolean flag, but rather think of this<br>[21:29] as an engine that allows you to ship a<br>[21:31] better agent every single day.<br>[21:34] Thanks, everyone. And<br>[21:36] I'm going to invite Hannah on stage so<br>[21:37] we can have a chat about how we've been<br>[21:38] working together in the last few months<br>[21:40] to go. Thank you.<br>[21:42] >> [applause]<br>[21:47] >> Awesome. So, my name is Hannah. I'm part<br>[21:48] of the Applied AI team at Anthropic, and<br>[21:51] I work with Michele<br>[21:52] on the Replit agent and on everything<br>[21:54] that they build with Claude. So, I want<br>[21:56] to ask you a few questions about what<br>[21:58] you built here. My first question is<br>[22:00] Vibez is something that we've seen a<br>[22:02] couple times. You've used it with us to<br>[22:04] give us feedback on research models that<br>[22:06] we're testing. But, what was was your<br>[22:08] vision from the beginning to make<br>[22:10] something that you were going to open<br>[22:11] source and make available to the<br>[22:13] community? I think a lot of people may<br>[22:15] be trying to build evals like this for<br>[22:16] themselves where they see holes in the<br>[22:18] public benchmarks, but I think this is<br>[22:20] kind of a unique approach, and I'm just<br>[22:22] wondering if you could talk about that a<br>[22:23] little bit.<br>[22:24] Yeah, I've been asked this often, why<br>[22:26] don't you keep this as a private appeal<br>[22:28] of your company? Fundamentally, I<br>[22:30] believe that<br>[22:31] we should try to give back as much as<br>[22:33] possible to the community. And we all<br>[22:35] have to benefit from creating public<br>[22:37] evals. It helps you to make better<br>[22:39] models. It helps us to make a better<br>[22:40] agent. It helps everyone to create<br>[22:42] better products. And I I don't believe<br>[22:45] in competing on evaluations. I come from<br>[22:47] a research background where everything<br>[22:49] should be open.<br>[22:50] So, we'll we'll keep doing this for as<br>[22:52] long as we can in Replit. And And again,<br>[22:54] I I really invite people to collaborate<br>[22:57] on Vibez. I I tried to instill this idea<br>[22:59] in the community several times when I<br>[23:01] was giving talks in the past and at a<br>[23:03] certain point I realized we have to<br>[23:04] build it ourselves rather than just<br>[23:06] trying to invite others to do it. Mhm.<br>[23:08] Well, I'm really excited to see what<br>[23:10] people do with that. Um<br>[23:12] I also want to ask you about the second<br>[23:13] pillar, telescope. This is um you know,<br>[23:17] a pretty sophisticated system that<br>[23:19] you've built. It sounds incredibly<br>[23:20] useful. It sounds like something you've<br>[23:22] tuned quite a lot over time.<br>[23:24] For people in the room who might be<br>[23:26] trying to build something similar like<br>[23:28] this, what lessons did you learn along<br>[23:31] the way? What kind of tips could you<br>[23:32] give them about how they can build<br>[23:34] something useful like this?<br>[23:38] So, first of all, if you try to do this<br>[23:40] even, I don't know, 6 months ago and you<br>[23:42] got discouraged because you didn't get<br>[23:44] like a return on your investment, uh<br>[23:46] definitely try it try it again. The same<br>[23:50] inflection point that you experienced<br>[23:51] with coding agents back say in November<br>[23:53] with Opus 4.5 and and similar frontier<br>[23:56] technology, uh it also reflects to what<br>[23:59] I just talked about now. So, the the<br>[24:01] fact that long context and models that<br>[24:04] are really capable of reasoning on a lot<br>[24:06] of content means that you can<br>[24:08] practically inject an entire trace of<br>[24:10] your agent into Opus and get fairly<br>[24:13] sophisticated feedback about it. Um so,<br>[24:17] you at the same time you should really<br>[24:19] be investing in collecting all the<br>[24:21] signal that you can from your agent and<br>[24:23] as well as you know, the environment<br>[24:25] where you're executing it. So, I know<br>[24:26] that I I had to run fast during the<br>[24:28] talk, you know, but I couldn't go in<br>[24:30] depth on all the different signals that<br>[24:31] we bring into telescope. It is not<br>[24:33] purely<br>[24:35] what's coming from the trace, it's also<br>[24:37] the feedback that we collect in product.<br>[24:39] Like we have a feedback form, so every<br>[24:40] time the agent doesn't behave correctly<br>[24:43] and the user complains, we have the user<br>[24:45] point of view, we have the trace of the<br>[24:47] agent, we have everything we instrument<br>[24:49] in the platform in DataDog.<br>[24:52] Unsurprisingly, all of that together,<br>[24:54] put, you know, in context, helps even<br>[24:56] more to pinpoint where where the issues.<br>[24:58] Yeah, I think that idea of building the<br>[25:00] clusters, like you were saying that a<br>[25:02] single trace, it's very hard to debug<br>[25:04] what might be going wrong there, but<br>[25:05] when you are able to group them all<br>[25:07] together and get these other signals in,<br>[25:09] really reveals a lot more information<br>[25:11] and something actionable. Makes a ton of<br>[25:12] sense. Yeah, it does and I think it also<br>[25:15] makes the life of an agent builder less<br>[25:17] overwhelming because it really is when<br>[25:19] you start to get a lot of usage, the<br>[25:22] amount of feedback you receive is<br>[25:23] actually overwhelming. And it's a good<br>[25:26] It's a good signal. It means that people<br>[25:27] care about what you're doing, but at the<br>[25:29] same time it's hard to prioritize what's<br>[25:31] actually important versus what doesn't<br>[25:33] move the needle.<br>[25:34] What I showed today is also a way for us<br>[25:36] to try to understand, okay, this cluster<br>[25:39] keeps showing on a daily basis and it's<br>[25:41] fairly large and it has a lot of volume,<br>[25:43] so we should actually fix that first of<br>[25:45] all and then there is the long tail of<br>[25:46] problems to fix will always be there<br>[25:48] with agents given the fact that they're<br>[25:49] non-deterministic. Yeah, that really<br>[25:52] makes me think about the third thing I<br>[25:53] wanted to ask you, which is what you<br>[25:54] said about taste.<br>[25:56] Uh, I think this is really interesting<br>[25:57] point um that the taste of the AI<br>[26:00] engineer is very important and could you<br>[26:02] talk about how your team develops that<br>[26:05] taste? Have you always had this taste or<br>[26:08] have you improved your taste over time?<br>[26:10] Like what's the process of building that<br>[26:12] and developing that for people who might<br>[26:13] be trying to build their own taste?<br>[26:16] I think we all brewed it over time<br>[26:18] because you know, when we launched<br>[26:20] these, you know, was more than a year<br>[26:21] and a half ago, agents were way less<br>[26:24] powerful than they are today.<br>[26:25] Uh, maybe not much taste to be applied.<br>[26:27] It was more like a survival game just to<br>[26:29] make sure it was barely functional. And<br>[26:32] now that they're becoming so powerful<br>[26:34] and you have such a wide variety of<br>[26:36] choices you can make, um then you you<br>[26:38] start to develop a taste that should<br>[26:40] really be in tune with your actual user<br>[26:42] base. Like if if you're building an<br>[26:44] agent for software developers, maybe 80%<br>[26:48] of the choices that we make every day in<br>[26:49] the team will be almost the polar<br>[26:51] opposite of what we do.<br>[26:53] And you always want to keep in mind that<br>[26:56] it's being used by personal likeness<br>[26:57] different from you. Especially in our<br>[26:59] case, like everyone at Rabbit is very<br>[27:00] technical and we are giving the product<br>[27:02] to knowledge workers who have never<br>[27:04] written a single line of code.<br>[27:06] So, it's a it's a very good trade-off to<br>[27:08] to learn.<br>[27:09] Awesome. Thank you for sharing that.<br>[27:11] I'm sure people are going to have lots<br>[27:12] of questions for you and for Peter, who<br>[27:14] is one of the authors of Vibrent. So,<br>[27:16] everyone please come find them and thank<br>[27:17] you so much for coming for<br>[27:19] >> Thank you.<br>[27:20] Have a good one.
<!-- deep-read:sections end -->
๐ **Full text:** ![[Full Document Contents/Articles/Evaluating and Improving Replit Agent at Scale.md|Evaluating and Improving Replit Agent at Scale by YouTube]]
## Highlights
- how do we track internally the fact that the agent gets better on a daily basis and is actually aligned with all with what our users want? This is especially challenging because if you think about it, models are changing almost constantly and if anything the pace of evolution is even faster than it was a year ago. So we are always sit on shifting grounds. Models change fast. We have to change our prompts, system prompts, user prompts very often, you know, to comply to the new features that we're building in product. Of course, the tools ([View Highlight](https://read.readwise.io/read/01kr6v66ma21htp8bnp8j93pqm))
- Tags: ๐ป ai highlighted
- you run your evaluation, you they produce a single score, and that score is produced by a human. And what the human decides based on the score is, my agent harnesses better than it was before or it regress, or my model is better than before, or we should be doing, you know, more post training. That's how how we've been doing this, you know, for a for a long time. I argue that we should move more and more towards a continuous setting of evaluations, where especially when you actually have something runs in production, and in our case it generates millions of traces every day, there is a ([View Highlight](https://read.readwise.io/read/01kr6v66mmcjph7p92hj1vnsdh))
- Tags: ๐ป ai highlighted
- on slop. So if we have something that's been built by the agent not verified and then you had more agent code written on top of that and then you run the evaluations to see if it's working or not. You can keep making this arbitrarily more complex. Uh for example on in agent four that we launched a couple of months ago, we completely hide the complexity of doing task decomposition and running agents in parallel and then merging all the patches together. So we can also take as an input the PRD, we ([View Highlight](https://read.readwise.io/read/01kr6v66ntmfd07319gdzpbp51))
- Tags: ๐ป ai highlighted
- And I invite every agent builder out there to start to invest on their AB testing infrastructure as soon as possible. It's the best way in which you can make steady progress. Now, we ask a wide variety of questions for ourselves. So, we we built a lot of different instrumentation and metric in our agent so that for instance, we can find out is there a normal span ongoing or is the agent running for longer than expected? Or we constantly keep track of the user sentiment. It's it's a very easy thing of to collect because every ([View Highlight](https://read.readwise.io/read/01kr6v66pxqymsmgcv8sh70hem))
- Tags: ๐ป ai highlighted
- AB test until we are in a good configuration and then we actually ship it. If you think about it, this is very similar to the work you do as an AI engineer all the time, but 90% of it is now aided by an agent in the loop, you know, rather than you having to sweat about every single step of the process. Let me give you all an example of, you know, what we actually experienced, you know, once in production. Um Rabbit Agent immediately starts an execution environment the first time you ([View Highlight](https://read.readwise.io/read/01kr6v66rd0r7gfb3qmbycx187))
- Tags: ๐ป ai highlighted