A few days ago, I gave a talk on the impact of agents on digital manufacturing and supply chain. While preparing, I wanted to include a section on user interface and interaction implications. I realized there was little information available, which prompted me to write this post.
In my view, generative UI is the concept of generating a user interface dynamically based on the context. For example, a production planner might prefer a high-level overview, allowing them to dive deeper by clicking around. Each deep dive focuses on a single concern. Another planner might prefer a single view that displays all details at once. A third planner might switch between both options depending on the task at hand.
While one could implement all of the above and allow the user to choose from a menu, it is more likely that a workshop would take place, and eventual consistency would be reached. Given how slowly these systems evolve, it is entirely possible that the people who made the decision are no longer around.
Now imagine a world where the system either:
Technically, I have not seen many implementations of this pattern yet, but I can imagine at least two:
The above thinking is rather traditional. Why is an interface needed at all? What if there is an agent to augment and automate all your tasks that you previously would have done through a user interface? I can ask it to fetch some data, visualize it as a table and bar chart, and then upsert a few data changes. Over time, the agent memorizes which KPIs I usually request at the start of a session and provides them to me proactively.
Generated user interfaces adapt to the user and their context, while an agent adapts to every single question and interaction. The latter would not require any user interface at all, rather a headless CRM, ERP, or any other MIS. Eventually the agent could go beyond data operations, capturing the business logic, reducing the underlying MIS to a mere database.
The above discussion focused heavily on user interface and experience, but there might be more to it. While interacting with any interface, an LLM could observe your actions and provide suggestions. For example, you might be inputting data, and the LLM could spot a mistake. It could suggest a correction or even correct it for you. Leveraging an LLM in this way might seem far-fetched today (given cost and latency), but it is a promising direction for future developments in user interaction and data management.
A few days ago, I read an interesting analogy: our current way of interacting with LLMs is like using DOS before Windows. This made me wonder if we might go from Apps to Agents first, and then back to on-the-fly generated Apps, using code agents.