The models powering coding agents currently behave more like fuzzy function calls, or Q&A bots. For more complex tasks, it would be better if they (ironically) behave more like chat, where they refine their understanding (and mine too) with follow-up questions and discussion, rather than being biased towards “answering”/“solving” in the very next reply.
Just think of how you’d talk to a freelancer. Wouldn’t you expect them to ask follow-up questions and clarify the requirements until we’re both sure that we’ve really understood the task? Or maybe even clarify stuff while implementing. “Plan mode” is an okay approximation (especially if you explicitly ask it to list questions for me). But that’s a workaround - the model is not explicitly post-trained/architected for dialogue. And doesn’t come into play during implementation.
I think that coding models can be more effective at complex tasks if post-trained/architected for dialogue, rather than transactional replies.
Reasoning models were a good step, but that’s still just self-dialogue. Where’s the dialogue with me (the main stakeholder)? The current design biases too heavily towards “specification”, where we need to pack everything we can think of into a single prompt. A dialogue can unpack a greater depth of information than we could one-shot.
You could almost look at dialogue as just another form of tool-calling, where the agent “calls” me for clarifications. Tool-calling with reasoning reduced hallucinations a good deal, but without dialogue (aka “tool-calling” me), the agent is prone to hallucinating requirements or making bad assumptions.
This has already started showing up in frontier models. Copilot/Claude already asks a few follow-up questions (but not enough), and there are a couple of research papers that explore this further: