Replay agent0:00
Hi everyone, I'm Pierluca D'Oro, and I'm the founder at Programma Labs. Today I'm going to talk about computer-used agents evaluation. Most of the work, um, and the details about it, are in a paper with this title, and I did this work while at Meta Superintendents Labs with the collaborators you see on this slide.
So to start, I want to introduce this type of agent. It's a weird type of agent that I call a replay agent. So imagine we run this process, we run our frontier, a frontier model, a good one, on a benchmark we like, and then for every task we collect a successful trace or a successful trajectory.
And we have a recorded tape of this type, so the actions might be tapping, typing, scrolling, and we record this. And then we do this for all the tasks in the benchmark, and we sort of compile this into a replay agent that just, when the tasks arrive, replace that sequence of actions blindly.
So if you do this for a common benchmark with hundreds of tasks, this is going to be a script that is like less than a megabyte. And this is a completely valid, like, type of agent that you can evaluate on the benchmark.
And if you try to evaluate this, this kind of agent on standard benchmarks such as OSWorld or Mobile World, you will see that the success rate of this agent compared to the frontier model from which the agent was extracted is actually the same or even better.
Match by replay1:41
So this is a kind of a weird but maybe trivial phenomenon, but I would argue that we shouldn't accept these kind of blind scripts beating the frontier models. And the trick here, or like the reason for why this happens, is the determinism of the existing, of most existing benchmarks.
And so if the benchmark is static, it's deterministic, then it is somehow gameable by this sort of strategy. And it goes even deeper than this. Like if you look at one of the metrics that people have been using in the past for evaluating computer-used agents, and it's pass@k, this metric is defined as, you know, the probability of at least one of k attempts succeeding.
Pass@k exploit2:22
But if you look into, like, the details of how this metric works on a deterministic environment, you will see that it's literally, and we prove it, like, formally in the paper, like evaluating the success rate of the replay agent that I've shown to you.
So basically, if that replay agent felt weird to you, also pass@k on computer-used tasks should somehow feel weird to you. Or in other words, pass@k is sort of a metric of that, of that exploit of the replay agent.
So these are two problems, specific problems, but they point at two general classes of problems in CUA benchmarks. And these problems are around environments, so building environments, and evaluation, building good metrics to know if your agent is good or not.
And in particular, we want to have environments that don't have exploitable structure, and we want to have metrics that are not fragile or that are not based on fragile statistics. And so I'm going to talk about both of the aspects now.
So let's talk about building principal environments first. So the first aspect that I, that I worked on while, you know, working on environments is to try to design a set of principles that could be guiding principles when building environments so that build, like, robust environments and trustworthy environments.
PRISM principles3:50
And so if you think about the problem that I was describing with replay agents, the first thing that you could think about as a solution, not to have a replay agent to, like, hack your benchmark, is to have your benchmark to be multifactorial.
So that means varying, generating variation for your benchmark, so having stochasticity into the benchmark. And for computer-used environment, that means varying stuff like data or appearance or simply the initial state. But if you do that, you want to make sure that all the combinations that you generate are valid.
And so you want to have, as a design principle in your environment, also a system for checking and verifying that everything is working as intended for every combination. And of course, you want the usual, the usual things for your environment.
So you want your environment to be sandboxed, and you want your environment to support, like, verifiers, so privileged information. And you want, of course, your environment to be realistic. So if it's a reproduction of a real system, you want that reproduction to be faithful so that the score that you get out is a good one.
And so if you sort them out, you can remember these sort of principles as the PRISM principles for environment design. And we tried that method to build a benchmark that would be satisfying all of these principles. And if you look at existing benchmarks, some of them do some things in a good way, some others do other things in a good way, but there is no unified benchmark that sort of matches all of these boxes.
DIGIWORLD5:31
And we built one that is called DIGIWORLD. So the way DIGIWORLD in practice was built is as a set of, like, mobile apps for Android devices. So it's 15 apps spanning different domains with 387 verified scenarios and a number of configurations.
So these configurations, they are in a large environment, so 3.2 million. But the important thing is that they are verified. And indeed, the axes are the ones that I was mentioning before. So you can imagine for each one of the tasks, you can vary things like the instance, so what is the exact amount of money that you're sending, for instance, or the data profile, like which kind of contacts or emails you have in the data for your task, or like the theme, or the starting screen.
So do you start from the login page or do you start from another valid page? So if you do the math, even if you start from a relatively low number of base cases for each one of these variables, you end up having many, many combinations.
So you can get to, like, millions of combinations. And if you scale this up, you can get to easily to billions of combinations. And all of these, you know, different axes can be, can be manipulated by coding agents because in the end they are, like, forms of software.
So you can have a coding agent to generate different instances, different themes, and such. So you might think maybe it's easy to build an environment, you just generate as much software as you can with a coding agent, and then you have, like, a diverse environment.
Verified configs7:25
But it's a little bit trickier than that. And indeed, coding agents can generate a lot of software, but a lot of software is not the same as an effective CUA environment. And the reason for this is that you need to verify the correctness of your combination,right?
And so the key to scale these up is to have a verification strategy for the variations of your tasks. And so the kind of verification strategy to follow is this one. So you can generate many configs, all the combinations of the different factors that I've explained before, and you can then have a system that rejects the broken ones, the ones that are not valid, and just keeps the valid configs.
And so in the case of DIGIWORLD, we did this by building a system that looks a little bit like a compiler and that works in the following way. So you start from a parameterized task template. And so this might look like something like this.
So you have send certain amounts or certain recipient, and then you have a verifier that corresponds to that template, and then you have mock data for that task. So data that you need for that specific task to happen.
And then we have a system that is like the DIGIWORLD compiler that takes all of these and, given a base case of data, base case of UI state, puts all of these together and creates, like, a valid configuration.
And so you can build systems like this in which the main craft is good software engineering to make sure that actually the combinations that you have are both diverse and valid.
Fragile models9:21
And so if you build a benchmark in this way and you follow the PRISM principles that I was talking about before, you actually can have a benchmark that is not hackable in that way. And so if you do the same process we did before, you evaluate your frontier model, and then you evaluate the corresponding replay agent, you will see that the replay agent doesn't get a lot of performance.
It gets a little bit of performance. That is probably what you want. Sometimes some tasks maybe are repeatable by nature, but on average, you shouldn't expect a replay agent to have good performance on the benchmark.
Once you build, like, these diverse combinations, you also can do other things, like measuring the robustness of frontier models on different, over different axes of variation. So the axes of variation I described before are here represented there. And you can see that in the worst case, frontier models are pretty bad, actually, at being robust to these variations.
And so, for instance, if you have a model that seems to be good at a given task, you would expect that if you just vary, you know, which screen the task is starting from or, like, what is the theme of the app, the model should pretty much have the same performance.
But this is actually not the case for most frontier models. And so if you have infrastructure like this, you can actually measure that and, like, tailor your expectation about this kind of robustness. So this was about the first aspect.
This was building an environment that supports diversity and that is robust enough to evaluate models. But the second aspect is as important as the first one, is to measure uncertainty, honestly. So once you have all of these variations, how do you handle, like, computing the real performance of your agent?
Two variances11:05
And basically, there are two sources of stochasticity of variation. And they are not exactly the same, but they are equally important. And so the one that we usually think about is the one about the actions,right? And so you run your model multiple times.
In many cases, you can have even quite different trajectories out of it because the action at each step will be different. But if you have a benchmark like the one that I've described with multiple combinations, with multiple variations, then also the variability from the environment becomes important.
And we want to capture that because that is what we are going to find in the real world. And so we need a methodology that captures both of these types of variation. And in the paper, there are the details, but basically we build a, we built a methodology that can accurately capture these two types of variation, taking into account the structure of the benchmark.
And so if you start, like, in practice, it is useful to use this concept of coverage. So when you compute a confidence interval, basically you have some confidence that the performance of the model is inside of that range.
Confidence coverage12:31
And so you would expect that a 95% confidence interval would say that, you know, 95% of the time the performance of the model is on that range. But if you only use rollouts, so you only use the base case and what people would use normally, actually in realistic cases you have something like 17% or 20% coverage.
And that means that basically you only 20% of the time you guess theright performance of the agent, which can be pretty bad. But, like, if you take into account the hierarchy and you use the proper way of computing confidence intervals, you can get to the full confidence interval and be 95% accurate.
And so if this seems quite abstract, you know, in practice that means that if you want to make a decision about which model to deploy, maybe you have model A, model B, and you do an eval for those two models, you can have cases in which the confidence intervals seem really, really small.
And so you make a decision based on those small confidence intervals, but they are actually overconfident. And so this was the wrong decision. So the orange bars are the real performance here. So you make this decision, and if a mistake is pretty costly for you and you have many tasks, like if you have 1 million tasks and there is a 4% mismatch in performance for real in the models, and each mistake is like $12 on average, it can cost you, like, hundreds of thousands of dollars in a single month.
So it can be, like, super costly as a mistake just for a confidence interval being overconfident. But if you have, like, a reliable way of computing the confidence interval, the method would tell you, I'm not confident enough to make an informed decision.
And so you can choose, like, to spend more money, to spend more time on evaluating models and avoid the costly mistake. So we don't want to, like, elude ourselves with, like, wrong confidence intervals because there is, you know, money on the table, essentially.
Conclusion14:50
And so this is sort of a final checklist of the things that I've discussed so far. So again, to recap, some of the things that are important in building a benchmark are about the environment, and some other things are about the metrics.
So on the environment, you can follow the principles that I described before, like the PRISM principles. So some of these things are rather common, but some things, like varying initial state across runs, they are pretty rare across existing benchmarks, but they are very important.
And so I would suggest you to try to incorporate these into your evals. And things about the metrics, you can, of course, read the paper for the details, but essentially it's very important to avoid replayability as something that you can have in your benchmark and also to focus on having accurate confidence intervals.
So respecting the benchmark structure and trying to avoid underestimating the uncertainty overall.
And so I've heard many times sentences like this, this benchmark can be gamed, but everybody's still using it, or, like, there is no error bar, but I don't see people using them. So these are sort of things that we can think when we don't have enough time, but actually are non-rigorous benchmarks is misleading.
You know, it can be misleading for the field because everybody could be seeking, you know, maximizing a score on a benchmark that maybe is not capturing what we care about. But especially it can be misleading for, you know, your own decisions.
And so if you are deluding yourself on thinking that a score is, like, confident and that is confidently telling that your model is good, actually you are going to pay for those mistakes. And so I think it's very good usually to be honest with yourself and to try to be rigorous in the evaluations that you have.
As the last slide, I just started this company Programma, and we are building the best infrastructure for CUA and inability verification. And so we are hiring. If you're interested or want to chat, this is our website. Thank you very much.





