Yep, this is the key point.
There’s more than one layer here.
- What the user sees
- The to-and-fro between your logic and the LLM
The user does not need to be aware of the to-and-fro part.
Making the to-and-fro part simple so each “message” serves one purpose is, imho a strength as it makes the logic easier and clearer to write.