When we learn things, we naturally chunk a topic. We go breadth-first - getting the basic what, why, and how of several subtopics before we decide to deep-dive into any specific one. But the second we open an LLM chat, this natural way gets tossed completely out the window.
Why? Because the UI forces us into a List! (Linked List)
You ask an initial question, and the LLM spits out an answer that contains several interesting subtopics. Intuitively, your brain sees multiple branches to explore. But the chat interface treats it as a single sequence.
And it's totally fine, for some types of conversations where most of the topic's breadth is often small and you need context throughout the list. Like the following:
But not always!
Obviously, the architecture of LLM is in such a way that the entire context is just processed in parallel (thanks to Attention, Positional Encoding and K-V cache) therefore it won't cause TTFT delays, etc. But the point here is, even with growing context sizes (a million is common now), you don't want to stuff up your conversation with unnecessary details. That may only lead to hallucinations or unwanted bias (skewed). There are a some patterns why we may want initial context but a few queries down the line doesn't need to be inside the context. It's because they may pollute the conversation. And those ideas/queries are usually divergent in nature to the original context.
If you look closely, you can understand these are just Acyclic Graphs (or Tree in this case)
Every node you create newly would just need to traverse to the root node and that becomes the context and not any other branch (most of the times).
You can apply few tree algorithms like common ancestor path finding, merging subtrees, etc. And some of those actually makes sense to implement to reduce the context size of growing subtrees.
It's quite absurd why almost all vendors provide sequential UI (except for edits which would create a complete separate branch). I think this will become normal UI/UX design in the future. Of course, there would be other reasons like induced complexity of handling branches, dealing with design like spatial canvas, etc but it feels like it's worth it.
I have checked a few apps who provide these like TypingMinds, ChatTree, etc. Since these applications are obscure or poorly SEO indexed, we might struggle to find them. Comment out if there are any better tools (or we can vibecode this for personal use)
Cheers,
Aditya.