The role should be added as an argument in format for llm. By default, the role is 'user'. But there should be an ability to change this. Also, if components are generated by the model as a part of the post-processing parsing, they should be set to 'assistant'.
Investigate unique modalities like images / messages / waves / etc... to see if those should be a standardize field in component as well.