Branches allow users to create multiple paths of generation or exploration without losing the route back to the original. This can be helpful if users are not sure of exactly what outcome they are trying to reach, or if they want to play with different tokens, parameters, models, etc before converging on a path forward. This pattern also makes exploration auditable, since each path preserves inputs, settings, and outcomes.
Branches work across modalities:
Branches offer a solution for users wanting to break out of the linear-constrains of a conversation. To maintain user control and usability, retain footprints back to the original, and clues for what is changing as the generative path progresses. Open-canvas layouts introduced by tools like Flora Fauna aid by making this visual, but it's harder in text-based contexts.
Good implementations make branch creation explicit, keep context inheritance clear, and provide simple ways to compare, merge, or retire paths.