Connect your Claude, Codex or OpenClaw for full transcripts on millions of podcasts. Two week free trial, cancel anytime.
Start free trial →The TWIML AI Podcast · AI Builders · November 2026
Asked what went into the custom harness around Brush, Canva's design agent, Stefano says the harness was the hardest part and the one with the most iterations. The lesson was to strip constraints out and let the model write code to operate design tools.
…will take, you know, a minute. And so that was not feasible. But now, you know, that's why speed is not just a nice to have. Speed is like a complete game changer because it can really increase the quality, it can increase the user experience. It can really make it like an iterative process.
Sounds like there's a simpler way to think about it. Craft is a model and Brush is a kind of an agent. And so in creating Brush, like I'm imagining part of the task here is like a custom harness. And I'm wondering what all that entailed. How did you approach that harness development?
This is such a great question because I think people are like usually they are all focused on the model and not the harness. But I think the importance of the harness cannot be overstated. And for us, this probably was the hardest part and the ones, the part where we had the most iterations. In fact, we already like our third generation of harness for Brush. And really the high-level goal is basically to give as much freedom to the LLM to really run free of constraint and really be able to tap into the tools and have as much insight on what is able to generate. And so we have really focused on making the harness thinner and smaller and more agile and more and simple. And then at the end, Brush can write code to operate tools and make design operations. And so we were at the same time trying to leverage how good these LLMs are at writing code. And at the same time, simplifying the harness in the most basic possible way to really unleash the full power of the LLM. And so that's where we did a lot of iteration. And actually, it was more about removing the human knowledge and just letting the LLM like run free to some extent.
And when you talk about the code generation, what kind of code are we talking about? I can imagine a lot of what Brush might want to do is running a Python code, but I could also imagine you creating some design DSL that's like more natively represents the things that you care about.
Yeah, it can be that, or it can be just writing code also to operate API calls and layout operations and that kind of stuff. So primarily
code or a little bit of both?