Portrait of Ricardo Tavares

Ricardo Tavares

The ambiguous intelligence of coding agents

As an increasing part of coding, LLMs (large language models) aren’t another layer of abstraction, but a level of ambiguity that you can work with to incorporate something you do know with something you don’t.

This can be used to grow your cognitive debt in exchange for getting something done without any real understanding. But it can also be used to scaffold your knowledge, allowing you to deepen your understanding of what is really important to you. You can choose what to think about, but also choose not to think at all.

boat.jpeg

Either way, LLMs have a very flat horizon without our human discernment and judgment. Even with the advent of world models, only we can feel how to trace some path between implicit and ever-changing hierarchies of priorities. Making predictions isn’t only about staring at knowledge gaps, but also about living with acceptable risks.

One simple example of how accepting ambiguity can unlock a coding project is scraping websites. Usually, you don’t put in the time to set up a scrape because the website can change in a few months and force you to keep paying attention in order to maintain that data pipeline. Now you can just tell an agent what normalised values you expect, and it can generally keep up with whatever copy-pasted mess somebody is putting online from a Word document. Notice that people now have to be more deliberate with how they sabotage automation, as LLMs can keep up with random data put into text boxes.

Another example, but on the side of development itself, is making a desktop app with only some knowledge of web technologies. You still need to be aware of the territory where you’re building that boundary, namely what do you need from native APIs. You still need to decide on shipping Chromium or relying on a web view like Safari. But you don’t necessarily have to know Rust or Go to leverage Tauri or Wails, as an LLM can take care of that, especially if most of your app is still a web interface. You can make some separation of frontend and backend work for you and a coding agent. And yes, most agents are so bad at frontend currently that you don’t want to try this the other way around. In theory, we will need world models instead of LLMs for agents to actually understand interface design.

So right now, we can describe the AI of LLMs as ambiguous intelligence, not only because they may not be intelligent at all, but also because they let us feed ambiguity into deterministic workflows. We can now give ourselves many dials to find a useful balance between natural and machine language.

Craftsmanship produces knowledge, but now our own cognition of a project becomes much more fluid as we sail across the fog of its timeline and scope. Can we become more aware of the future by knowing less about the present? As our eyes look up, what do our hands hang on to?

About Ricardo Tavares

Creates things with computers to understand what problems they can solve. Passionate for an open web that everyone can contribute to. Works in domains where content is king and assumptions are validated quickly. Screaming at phone lines since before the internet.

View From the Web