You have to adjust your stream rules that put the nginx messages in to the stream and add a rule where you do a regex on /bot/ - then select the ‘inverted’ flag (which basically turns the rule into a “if it does not match bot”), then any messages that have ‘bot’ in the user agent field will not go to your nginx stream, but will still end up in ‘all messages’.
If you want to totally remove that, instead of changing your stream rules, attach a pipeline to the nginx stream, and write a rule sort of like this (pseudo-code-ish, look at the docs for more)
rule "forget about bots"
contains(value: to_string($message.http_user_agent), search: "bot", ignore_case: true)
That will basically just drop all messages where the user agent contains the word ‘bot’ into the big black hole so they’ll never be stored anywhere.