When I started my AI research, I was focused on code generation. After a while, I could see that even the most challenging approach – building a general software engineering agent – is a solved problem, theoretically.
Start with where we are today. Replit Agent is my favourite so far. The way I see it, Replit Agent and friends already have an advantage over me in speed and cost on some time horizon, and that time horizon will get longer.
Consider the improvements we’re seeing in related areas. Tools like Cody and Aider show how understanding codebases as graphs makes LLMs radically more helpful.
Agents are also getting better at interacting with their environments. Anthropic just launched the Model Context Protocol – a framework for connectivity to new data sources – and the ChatGPT app can already see your editor and terminal.
The models themselves are improving, notably including new planning-oriented models, improvements in reasoning, improvements in efficiency, scaling of output quality with test time, faster inference… Each of these is super helpful for a general software engineering agent, and they are all happening at the same time.
Memory layers are also maturing. Letta and Zep are both amazing.
Orchestration is getting better. There are so many good new tools – I’m trying LangGraph next. That’s going to enable more complex workflows (TDD, outside-in) and – crucially – cognitive architectures.
Then there is a bunch of effort stuff. Putting together templates and examples for agents to train on and work with, building software with abstractions that play to the strengths of the agents building it, rather than being designed for humans. Remember, even though it seems like we can do it this way, this is not the easiest way for AI at all – we will make it much easier.
I suspect a lot of engineers would prefer not to think about it, but software engineering will be generally solved, with multiple approaches.
