Architecting New User Experiences

User experiences are changing

UI Development is moving towards non-linear, adaptive designs that give a unique user experience based on the users needs.

I have been finding myself building out solutions that capitalize on the benefits of Agentic AI for my clients more and more lately. How I would design solutions now versus 3 years ago has changed with the mainstream introduction of Agents and the SDK’s that support them.

I am now engineering less situational code as agents guide users, surfacing necessary UI components. The development of new logical components that are engineered just for the passthrough and management of Agent responses to the end user.  These types of smart components never existed before because there has never been a need for an intermediary component that can handle services with such robust abilities and can trigger/execute about any type of action.

Building something like this also requires some planning because a browser should only be managing so much data within your app and tasks at once.  Here are a few considerations you will need to think about when building your own Agent components layer..

Service Layer | Agent Interactions

Hiding your agents behind your API layer.  This is important because you will need to have your agent return structured data instead of the free-form chat-botish data you normally see and interact with.  You can still have your chat bot style text, it will just be a property of the structured data.  The other properties help you understand and manage the requests better.  For example, your agent will be able to tell you what the user wants to do now and also help you form some of the payload that you will send to a specific component so it is already partially filled out.

UI Design | Working Like A Human

Your main component that the user interacts with should be very simple BUT also very robust.  You need to be able to support an array of actions simultaneously.  As humans, we typically don’t talk in singularities; so don’t expect that with your users.  You will need to have an interface that can take user input and then have a way to support multiple response/action requests, meaning that a single input may result in 2 separate and distinct actions that you need to represent on a single UI/Screen.

UI Architecture | Non-Linear Designs

The requirement to have your entire collection application actions at the finger tips of a single component is coconuts!  Well actually it is completely possible and realistic and is no different than a standard “Dependancy Injection” concept that you would use on your service layers.  There are many ways to implement this so the browser is ONLY loading on-demand the components that it needs.  Lazy Loading and Barrel files are going to be key here which is how I have been doing this recently and it is working great!

User Experience | True Communication

Final consideration and probably the most powerful consideration: Get good at AI Thread management!  A single user interaction could have 2+ threads initiated to fulfill their requests. This will require some caching on the service layer and a good redux model/logic on the UI.  If done right, your users could switch computers or just open your app on their phone and pick up where they left off!  That kind of user experience should always be the ultimate goal!