AI Engineer Summit
November 12, 2026Main stage5 min read

The Software Atelier

Ronacher's coding agent has become much more capable while its core harness has barely changed.

Armin RonacherEarendilCTO

Day 2 livestream · 0:40:03–0:59:29 on YouTube. The player starts and stops at this session’s boundaries.

Introduction

Armin Ronacher, CTO of Earendil, makes the case for improving the workshop before maximizing the output of the software factory.

Ronacher's coding agent has become much more capable while its core harness has barely changed. Pi still offers the same basic tools, but stronger models need fewer corrections, survive longer tasks, and find new ways to use those tools. If the machine improves without a matching change in the operator, what should the operator optimize?

His answer starts with the workshop. Better power tools let an artist attempt more demanding work; they do not require the artist to maximize the number of objects produced. A software atelier can use agents to pursue quality, coherence, and ambition before trying to become an unattended factory.

0:41:07 ↗

The harness stayed still while the models moved

At 00:41:07, Ronacher describes Pi's relatively stable core. Behaviors that once needed special prompting or plugins increasingly appear in the model itself. He offers his experience with an autoresearch plugin as an example: a sufficiently capable current model can pursue the optimization goal without the extra machinery he previously found useful.

He then examines his own sessions. Corrections and aborts fall as models improve. Long task runs become much longer. Tool-use preferences change too, with greater reliance on Bash despite no corresponding change in the tool inventory. These are observations from his usage, not a controlled benchmark of all coding agents, but they expose a practical problem: a familiar interface can acquire substantially different behavior after a model upgrade.

The operator should therefore reassess how the system is used, not assume that an unchanged harness implies an unchanged workflow.

0:46:45 ↗

Starting projects scales faster than caring for them

Human attention has not followed the same improvement curve. Ronacher's agents spend more time working while the number of prompts he sends remains comparatively stable. The machines can expand the work behind a request. They cannot manufacture a corresponding amount of sustained interest in every project that request creates.

Armin Ronacher's graph compares cumulative projects started with projects worked on for at least five days in each month.

The source graph at 46:45 ends at 141 projects started, while the monthly bars for projects worked on for five or more days remain much smaller. These are Ronacher's own repositories, not an industry estimate.

That difference is easy to overlook during the excitement of a new model. Beginning another repository is cheap. Returning to it, using it, and deciding what deserves attention still competes with everything else in a person's life.

Ronacher recounts a friend who automated issue handling and changes for an open-source project, then eventually switched the system off. The project no longer mattered enough to justify using the available inference budget on it. Even an automated project depends on someone deciding it is worth maintaining.

The increased activity also lands on systems outside the agent's immediate environment. Git hosting and older websites may receive much more traffic because agents have discovered new uses for them. Multiplying an individual's productivity can multiply pressure on shared infrastructure that was not designed for the new volume.

0:48:05 ↗

Interrupt before the result becomes expensive to understand

At 00:48:05, Ronacher identifies an essential workshop skill: knowing when to push back. An agent can satisfy a local goal while adding complexity that makes the overall product worse. A pile of completed feature requests does not necessarily form a coherent application.

He distinguishes skill at operating an agent from knowledge of the engineering problem. Two people can use the same system and receive very different results because one recognizes bad tradeoffs earlier. This knowledge matters even when the person is no longer reading every changed line. Without it, a team can end up asking an agent questions about a system that nobody in the room understands well enough to challenge.

One adjustment in his workflow is to request an explanation before the final verification phase. Rather than wait for a large completed change, he asks the agent for a short executive summary in a readable HTML page while there is still time to redirect it. The purpose is to preserve a useful point of human comprehension inside a longer autonomous run.

That is a pacing decision. The fastest rate of code production may exceed the rate at which the owner can understand the consequences. A good workshop has places to inspect the work before it disappears under the next layer.

0:51:17 ↗

Reimplementing a format does not create agreement

Agents make it easier to write code yourself and reduce dependencies, a development Ronacher welcomes. At 00:51:17, he also warns about Wildwuchs: uncontrolled growth.

The danger becomes obvious at the edges between programs. Multiple implementations of an archive format can interpret the same bytes differently. A collection of personalized image editors is less useful if their files can no longer be exchanged. An agent can implement a specification quickly, but it cannot remove the need for people to agree on what the specification means.

Forking can feel cheaper than collaborating upstream, especially when an agent can implement the desired change immediately. The cost moves into future interoperability and duplicated maintenance. Ronacher asks engineers to recognize when a problem calls for agreement with other people rather than another isolated implementation.

His preference for excellent software includes faster, smaller, memory-safe systems and exploration of verified software. These are valuable ambitions for the new tools. They also rely on knowledge and shared infrastructure built before agents arrived.

0:55:03 ↗

Long-running agents need a different runtime

The last part of the talk moves from human pacing to runtime design. A task lasting a couple of minutes can be restarted manually after failure. Thousands of overnight tasks cannot depend on that habit.

At 00:55:03, Ronacher argues for agents and workflows that can stop, suspend, restore, and continue. This is also an economic concern. If cheaper inference scheduling means waiting for tokens, keeping an otherwise idle sandbox fully allocated wastes another resource. The workflow should be able to suspend the surrounding execution while the model is unavailable.

Code mode supplies a second opportunity. Instead of forcing every tool interaction through a fresh language-model turn, the agent can write a program that orchestrates calls, combines their results, and makes decisions. Ronacher describes combining that approach with fast decision models for workloads such as routing thousands of customer requests. The language model creates the workflow; cheaper classification handles repeated branches inside it.

The atelier is therefore not nostalgia for manual coding. It is a place to decide which parts need human understanding, which parts benefit from a better model, and which parts should become ordinary efficient computation. Ronacher closes by asking for software that is more enjoyable and ambitious, rather than treating the ability to build everything as an obligation to do so.

Full transcript 294 timestamped passages

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.