Isaac Grau

Interfaces Are the Last Mile of AI

var(--variable-VtZ0WKehP)

Most enterprise AI projects do not fail because the model was wrong. They fail at the handoff.

The team builds something that works. The model is grounded in the right data. The agent logic is solid. Then someone asks: how do users interact with this? And the answer is usually one of three things: a chat widget that was not designed for this use case, a raw API that someone downstream has to wrap, or a promise to build the front end later that never gets fulfilled.

The interface is treated as a delivery detail. It is not. It is the point where the system either creates value or does not.

The interface problem is a production problem

Prototypes have it easy. A Jupyter notebook, a terminal, a quick Streamlit app: these are fine for showing that something works. The problems start when you need to put it in front of a non-technical user, on a device you do not control, in a workflow they did not design.

Enterprise users do not want a chat interface for every task. They want a task-specific interface: a form with the right fields, a dashboard with the right metrics, a step-by-step wizard that guides them through an unfamiliar process. General-purpose chat is a reasonable fallback. It is not a product.

The teams that get this right build an interface for the task, not an interface for the model. The difference is significant.

Delivery channel is a product decision

The user interface question also includes the channel question. Where does this agent live? Is it a web app, a WhatsApp message, an email, a voice call? Different tasks have different right answers. A procurement approval agent probably belongs in the workflow the approver already uses, not a new tab they have to remember to open. A customer-facing assistant might live in WhatsApp because that is where the customer already is.

Treating channel as a technical detail is how you build something nobody uses. Channel is a product decision that should be made before the first line of agent code is written, because it changes what the interface needs to do.

The tooling gap

The tooling situation for AI interfaces is genuinely bad. You can build the agent logic with a framework. You can host it on a cloud provider. But when it comes time to build the interface, you are usually back to writing a React app from scratch or buying a no-code tool that cannot talk to your data layer. The connection between the intelligence and the interface is custom code every time.

This is not a skills gap. It is a tooling gap. The layer that handles UI generation, connects it to live data, and deploys it to multiple channels does not exist in most AI stacks. Teams either skip it (ship the API and hope) or build it themselves (slow and fragile).

Closing the loop

At Timbal, the interface layer is built as part of the platform, not as an afterthought. The visual UI builder generates production-ready, data-connected applications. The same application can be delivered to a web front end, a WhatsApp thread, an email, or a voice channel without rebuilding the logic for each one. The data it connects to is the same data layer that the agents query, with the same access control.

This is what it means to treat the interface as infrastructure rather than decoration: the interface is part of the system, not a consumer of the API.

The last mile is where AI projects succeed or fail with real users. Build it like it matters.