Can anyone explain?
UIMessage is used to render one message for an input, yes.
But UIMessages is used to render *all the messages for the entire page*. Generally speaking, you wouldn't use the "for" attribute on this component, and you'd put it up near the top of your page.