Machine-generated source transcript; recognition errors remain. Timestamps and subtitles use the selected source recording’s clock, not clip-relative time. Section links use cited source moments; sections without a verified moment return to the talk start.
0:40:03Hello, my name is Armin Ronohar and I want to share with you a little bit the lessons that we have learned from building software with agents.
0:40:13And in particular, I want to make a strong case for not so much building the factory as building the artiller or workshop.
0:40:21and I want to show some data with this from our own usage but in particular I
0:40:25want to explain what I mean by building the atelier or the workshop prior to
0:40:30building the software factory and I think everybody here is being used has
0:40:36been using agents for quite a while and you have probably noticed that it is
0:40:40we're sort of an exponential curve in what we can do with them but the
0:40:45comparison that I want to give here is that you can be an amazing artist and
0:40:49and use the greatest and latest technology
0:40:51from CNC machines to 3D printers,
0:40:53which is very good power tools.
0:40:55And it can increase the ambition
0:40:57of what it can do with your art.
0:40:58And I think we can also look at software
0:41:00a little bit in that sense.
0:41:02So less about building much more software
0:41:05and just building way more ambitious
0:41:07and high quality software.
0:41:10So I'm going to show you a little bit
0:41:11of what I mean by that.
0:41:15And you might know that Arendelle
0:41:17is working on the PyCoding Agent.
0:41:18So we have obviously a little bit of a horse in the race here of how we're looking at this.
0:41:23But I think what is probably quite interesting is that the PyCoding agent has not really changed in a year on the core harness.
0:41:30It still has the same tools today as it did in December last year.
0:41:34And I think this is interesting because it has become much more powerful purely as a fact of the models getting better.
0:41:41So I'm much more capable today of what I can do with Py without any changes landing in the core functionality of what the harness is doing.
0:41:48And I think this is an interesting thing to reflect on because it means that we are all simultaneously getting better even without landing any significant changes in how we're doing this.
0:41:59And you might have remembered throughout the last year and a half maybe that there were a lot of ideas of how you can prompt the machines better or how you can do some interesting tricks with the harness.
0:42:10Very few of them are still necessary.
0:42:11For me, a good example here is that I was in love with Pi Auto Research, which was a
0:42:15plugin that basically allowed an agent to drive towards a goal, like improving performance.
0:42:19But if you use a present-day state-of-the-art model, you actually discover that the entire
0:42:23plugin is no longer necessary.
0:42:25So there's a lot that is just happening in the models that is dramatically improving
0:42:29how we're doing.
0:42:30So these machines are getting better.
0:42:33And I just want to show this from a couple of graphs from basically my Pi sessions where
0:42:38I filtered them out to have nothing but the default set.
0:42:41And the total amount of corrections,
0:42:43and I used Jeff to analyze this,
0:42:44the total amount of corrections that I had to do
0:42:47got down and down and down with every single model
0:42:49that got better and better.
0:42:51So I'm pushing back a lot less against the agent
0:42:57with the latest model than I did in December last year.
0:43:00It's the same thing with how often I'm aborting it.
0:43:04And I think this to me was the most interesting way
0:43:07in which I sort of analyzed my sessions, which is the average, so this is the P 90th percentile,
0:43:11but the 90th percentile of how long an agent was running in response to a task that I gave it
0:43:17with Opus 4.6 in December last year was about two and a half minutes. And now with the latest
0:43:22models, they are on the 90th percentile running for 14 minutes or more. And that does actually
0:43:27change something about how you want to work with a harness, but really, again, nothing in Pi has
0:43:32changed and still I'm seeing this sort of different behavior of how I'm using
0:43:37this. And this probably you have noticed in one form or another if you're still
0:43:43using an agent and we're going to see what it's doing you'll probably notice
0:43:46that the present-day agents are much more likely to use bash than any of the
0:43:50other tools that are being provided but again nothing has changed in how we
0:43:54configure the harness it's just that there's a lot more emergent behavior
0:43:57coming from the models. What's missing here is Astra and Sol they actually look
0:44:01very similar to Opus for my testing, I just didn't have enough data in my test set to
0:44:05show this nicely. You will notice that there's a little purple thing here. I want to talk
0:44:12about this in the end, which is sort of code mode is sort of slowly creeping up. But the
0:44:17core of this is even if you have a piece of infrastructure nowadays that is sort of there
0:44:24and is doing a good job, it's still changing as a result of the models. What has not changed
0:44:30in the last year, at least this is the case for me,
0:44:32and I think this is the case for a lot of people,
0:44:34is that we're still humans.
0:44:35We're still limited by our fundamental capabilities.
0:44:39And as we are being more ambitious
0:44:40and we're doing more with these machines,
0:44:43I don't want to say we're the bottleneck,
0:44:45but we are the thing that paces what they can do.
0:44:49And in particular, human attention is, for me at least,
0:44:52the limiting factor, and I'm noticing this largely
0:44:55in how coding agents are deployed in teams,
0:44:58that this is a stable amount of attention that we have to work with.
0:45:07And starting new projects is getting incredibly easy with these agents.
0:45:10And I think particularly when a new model comes out,
0:45:12we are all super excited of trying the latest and greatest thing you can do
0:45:15from 3D games to new ways in which we automate things.
0:45:18But maintaining them has not really gotten easier.
0:45:22But we are also increasingly taxing a lot of external systems
0:45:26that actually in many ways are not supposed to be part of this revolution.
0:45:30I think we all know that GitHub has a lot more commits being pushed up there, a lot more repositories,
0:45:35but I know quite a few people who have well established old websites on the internet that
0:45:40found a new life for agents and they are totally not ready for the new volume that's coming from
0:45:45from us kind of directly hitting them. So I just want to caution a little bit here in saying that
0:45:51when we are pushing things we're also accidentally simultaneously all of us pushing things
0:45:56which we're not really ready for what agents are doing.
0:46:01And this to me I think is an interesting graph
0:46:04because the number of prompts that I'm actively pushing
0:46:08over the year is sort of flat.
0:46:10I know that in some months it's a little bit higher,
0:46:13in some months it's a little bit lower,
0:46:14but they're alternating between 120, 190 something like this prompts
0:46:19that I'm pushing per day.
0:46:22But you can see that the time that the agent was active for my use went from like less than my
0:46:29working day to many times my working day. And this November is not even over, right? So you
0:46:35can see that this is taking an exponential curve up. And this here is the number of projects,
0:46:41this is Git repositories that I've created over the last year. And this is like obviously
0:46:44cumulatively going up. So I have 141 different projects that I started. But the number of
0:46:49project I'm committing on a regular cadence to, which means I'm committing for more than
0:46:53five days to and I'm returning to them also, is pretty much flat with between 10, 15, something
0:47:00like this. And I have done this sort of informal survey with a bunch of my friends as well,
0:47:06and this seems to be a common trend that actually maintaining something regularly is tricky.
0:47:11And I had this discussion with a friend of mine in relation to this graph, and he said,
0:47:16like, well, actually, I have an open source project that is now fully automated.
0:47:20So there's an issue tracker coming in.
0:47:23There's an agent that's set up to auto-review, commit, and send it back.
0:47:26And that is maybe a way to scale up, so you take the human out of the whole thing.
0:47:30But actually, he also turned it off because eventually he didn't care about the project
0:47:34as much anymore, and he wanted his token specs to use them for other things.
0:47:39So our attention to an open source project matters even if maybe we have automated it
0:47:43entirely.
0:47:43So if we stop using something where we have a tendency to no longer actually actively take care of it.
0:47:51So if we're pushing towards, and I would make this argument,
0:47:55first figuring out how to make a really good workshop to build really high quality software,
0:47:59there's a question of what matters.
0:48:01And I think for me the three most important things to matter is on the one hand
0:48:05to really know when to push back against what an agent is doing,
0:48:10telling it that this is the wrong way of doing it.
0:48:12And I think that this is a crucial skill because an agent is really rewarded in just completing a goal.
0:48:21And it is very easy to look at if it has succeeded in this goal or not.
0:48:26And we can sort of see it in the same way as the RL environment maybe is rewarding the model during training.
0:48:32But that doesn't mean that what is being actually delivered is something that we are intrinsically happy with over a longer period of time.
0:48:38And this becomes tricky the more and more commits we're doing, the larger and larger the software is going.
0:48:45It's very easy to basically create the Simpson car of all the features in a software,
0:48:49but actually having something that intrinsically fits together where the internal complexity of the system does not explode
0:48:57still requires us to work with it as it's working.
0:49:03And I like to call this true skill versus agent skill.
0:49:08there is clearly a difference between someone who is an experienced software engineer working with an agent
0:49:13and someone who is not an experienced software engineer.
0:49:16And I think for me, the truest form of this is that my son is now sending me pull requests on a project that we're doing together.
0:49:24And there's a very clear quality difference in what his contributions are.
0:49:28Because he is not a software engineer.
0:49:31We're using the same system to prompt it, right?
0:49:35And I have noticed this myself in situations, but I've heard this also particularly from a lot of others.
0:49:41It is actually a very frustrating experience if you're in a situation that really matters
0:49:46and other people in the room are basically just going to the agent to answer a question
0:49:51and no longer have a really good understanding of either what the system is doing
0:49:55or that the fundamental problem that they're working on, they actually comprehend.
0:50:01So, there is a lot of value in still understanding what you are doing.
0:50:06That also means that you kind of have to moderate the speed in which you are doing things to still work within your understanding.
0:50:12And one of the ways in which I started doing this as my commits started going through the roof basically,
0:50:18was I looked into how are my trajectories of sessions going.
0:50:22And can I hook myself into a part before the end of it to find a consistent way for me
0:50:29to evaluate what's going on?
0:50:30And so for instance, I started basically prompting the agent that before it's going towards
0:50:35the verification, which is typically around 70% of it, to start producing a really nice,
0:50:40short executive summaries and a nice typeset HTML page that can really understand what
0:50:45it's doing as it's finishing.
0:50:48particularly with newer models, it's no longer quite as horrible to read the text that comes
0:50:53out of it.
0:50:54But this is one way in which I found to balance out that I'm basically no longer reading the
0:50:59code in a lot of cases.
0:51:01And this I think is something that increasingly is more important to me is to also show up
0:51:08with a little bit of a guidance towards not writing all the software over and over.
0:51:17I'm a huge believer in using fewer dependencies and writing more code yourself.
0:51:21So I really like the Archantic Revolution for that element of it.
0:51:27But in German, we have this word called Wildwuchs, which basically means uncontrolled growth.
0:51:32And uncontrolled growth in software that is supposed to work together
0:51:36can have a lot of really negative consequences.
0:51:39You might have seen a blog post that was going around recently
0:51:42about a TAR archive that has been crafted in a way
0:51:46that different TAR implementations read it in different ways.
0:51:51And I think this is a bit of a problem now.
0:51:55For us to work together, we really want to have standards.
0:51:58We want to have common specifications.
0:52:00We want to have common file formats.
0:52:02And we now can basically make an agent
0:52:05and implement any format we want.
0:52:07But there are going to be these differences.
0:52:09And what really makes it hard for us to agree on standards
0:52:13and what makes us work together on something
0:52:15often is not a technical challenge
0:52:17as much as it is a problem of how do people agree
0:52:20on what is supposed to be in this file format
0:52:22and how is it supposed to be implemented
0:52:23and how is it supposed to be interpreted
0:52:25because there can be multiple interpretations of it.
0:52:28And I really think that these open protocols
0:52:30and file formats are a really important aspect.
0:52:33You can imagine there is a future
0:52:34where we all have our own little Photoshop clones,
0:52:36but we'll no longer be able to send file formats to each other
0:52:39because we have diverged too much.
0:52:42And this really comes down to this part
0:52:44that collaboration between humans is as hard as it has ever been.
0:52:49And this is slowing us in a way down, right?
0:52:53And I think it's important to sometimes resist this temptation
0:52:56of just having the agent solve the problem
0:52:59and just taking a step back and figuring out
0:53:01if this is maybe one of those problems
0:53:02where we should be working together with other people.
0:53:05It is for me coming from an open source background
0:53:08fascinating to see how little actual human collaboration
0:53:11is happening in open source projects now
0:53:13and how many more projects end up with gazillions of forks
0:53:16because it's just easier to have a fork happen
0:53:20than to try to upstream changes.
0:53:24So I wanna make a very strong argument
0:53:26for building software that strives towards excellence.
0:53:29And I understand that this is hard.
0:53:32We have, I think, seen a pretty big explosion recently of verified software.
0:53:37It's also very clear that this is in itself hard.
0:53:40The technology stack is not right there yet where this works.
0:53:43But I think it is one of those areas where it's really worth pushing towards
0:53:46and seeing if this is maybe something that can help us over time creating more stable software.
0:53:53I really am very happy with seeing so many people wanting to build fundamentally faster
0:53:58and more memory efficient software.
0:54:00I think it's a great development. For years I was very frustrated with how
0:54:06little my RAM usage actually goes to things that I think are worthwhile and
0:54:10now there's a significant trend of people trying to rebuild things in a
0:54:14native language rather than for instance just building an electron wrapper. So all
0:54:18of those things are really cool developments but they are in many ways
0:54:23still building up on technology we have created before times. I really like Rust,
0:54:27I like that there is now a trend towards building memory-safe software.
0:54:31I think you've probably all been exposed to what happens with good models finding security issues.
0:54:39So there's a strong argument towards that.
0:54:42And it now has also led to people that would never have picked that language before
0:54:46to actually give it a try because it delivers some value that now can, in quote, come for free.
0:54:53On the last part, I want to talk a little bit about maybe there is something where Harness
0:54:57can do something. And this is less so much for me to say, hey, here's a path that we're on,
0:55:03is to give you some idea of maybe where some of the challenges are as we're pushing this task to
0:55:07be much more long running. The first one is, if you have a task that only takes two minutes to run,
0:55:14you're kind of willing to babysit it and if it breaks and it ends early or it
0:55:20doesn't run to completion or you have to restart the agent to just restart it
0:55:24manually and tell it to continue. Right so it's like we have we have largely been
0:55:28working in environment for quite a while but that was acceptable. If you now have
0:55:33automated agents running on thousands of issues overnight you want to have an
0:55:38agent actually be able to restore itself. And so we're pretty big believers on this
0:55:43concept of durable agents, also durable agents that create durable workflows
0:55:46where they orchestrate themselves in a way where you can start it, stop it,
0:55:50you can suspend it, you can bring it back. And this not just because we have this
0:55:54longer-running tasks but also because there's a lot of inefficiency in what
0:55:57we're doing and we are all compute constrained, we are all constrained in
0:56:04terms of the cost of inference and being able to be a little bit more
0:56:08intelligent about how we're doing this I think is really interesting and I wish
0:56:11more people would be pushing towards that. For instance, if you pay raw token costs, you get a
0:56:15pretty significant discount on flex scheduling. But that means that maybe for minutes, no token
0:56:20is coming, right? And so then you want to suspend your agent, you want to suspend also your sandbox
0:56:24and actually not waste the other resources that are also expensive. So this is one part where I do
0:56:30think beyond the quality of the models, because the models are getting so good now, we might want
0:56:35to rethink a little bit of how we are using these resources intelligently.
0:56:41And the second thing is you probably know that when Pi came out there was a pretty big
0:56:51motivation to say like bash is everything that you have to run and this is still largely
0:56:55what we believe.
0:56:56But now we also see that there is an emergence of desire to orchestrate sub-agents, a desire
0:57:05to use models which are not LLMs, like decision models or classifier models like Jeff.
0:57:11And in those cases, you need to start composing workflows.
0:57:16And this, I think, originally came from the folks from Cloudflare,
0:57:20say, like, instead of having thousands of tools being put into the code,
0:57:26into the context, what if we just give the agent, in addition to Bash,
0:57:30JavaScript, in addition to bash, JavaScript to run and have all the tool calls that the
0:57:35agent would natively do happen via JavaScript.
0:57:38Then he can orchestrate them better.
0:57:39And this has gone from a curiosity, I think, in many ways, to something that is fundamentally
0:57:44shockingly useful.
0:57:46And this means that now the harness in many cases, and this is definitely the case already
0:57:50in Codex, you can do it in Py and many other harnesses at this point, you can have the
0:57:54harness orchestrate very large invocations of tool calls without having to go through
0:57:59pretty inefficient context.
0:58:01And this does require a little bit of a rethinking
0:58:03of how you're doing things.
0:58:05And it also allows you to use classifier models.
0:58:08And I think this is the other big part
0:58:11that really changed how I was looking at
0:58:13how far I can push certain technology.
0:58:15Because you're not being penalized
0:58:17for not having an active KVCache,
0:58:20but they're also very cheap and very fast.
0:58:23And they allow you now to take certain problems
0:58:25that previously were just too expensive or too slow to do,
0:58:29to have a decision model do this.
0:58:31And the way I think you should be thinking on this
0:58:34is that when you have code mode,
0:58:35what the harness can do is it can create a little workflow
0:58:38that can have decision points along the way
0:58:41where if you, for instance, have to crunch through
0:58:443,000 incoming customer support requests
0:58:47and you have to make decisions along the way
0:58:48if this is being sent towards having an agent work on it,
0:58:52towards requiring more feedback from a customer,
0:58:54you can have the agent create basically
0:58:56an on-demand workflow and then for every single
0:58:59if condition that it's doing, it's just going through Jeff.
0:59:01And then you can crunch through thousands of issues for very little time in no time in
0:59:06your coding agent, but previously that would have taken you hours.
0:59:10So with this, I just want to leave this idea.
0:59:15Now that we can build everything, maybe we should not, but we should really, I think,
0:59:20push towards much more enjoyable and in many ways much more ambitious software than we
0:59:27have been doing before.
0:59:27Thank you.