I think that approach works, but has some drawbacks like limiting the capabilities of a event driven architecture, that is asynchronous by nature or ending up with tons of messages to be sent because you are adding too much latency.
What i would do to stop some bots to flood the kafka pipelines, would be to implement a debounce system. i.e a bot would need to cooldown for a period before being able to send a message. That way you are not sending one message a time from all of the bots, but by making sure the more active bots only send every certain milliseconds, you allow the less active bots to send their messages