You can query an agent more than once as long as it's a different project and as long as you know they've either rejected the other query or have had sufficient time to reject the other query. I think they expect us to query more than one project over the years, honestly.
As far as when to query them again goes, read their submission guidelines. If they say "no response within 12 weeks can be considered a rejection," then you know that after 3 months, you can assume they've seen the query and rejected it. However, I would tack at least an extra three months onto that, honestly. 1. Because querying is super slow right now, so they might not be getting through their inbox as quickly as they used to. And 2. to make sure that you don't send them another query too quickly, because that doesn't really look good to or sit well with all agents.
If the agency doesn't give a waiting time for query rejections, I assume 6 months to be safe. Because, again, querying is really, really slow right now. But before I sent another project, I personally, would wait 9 months to a year. But I am uncommonly cautious.
Some agencies say you can query more than one agent with the same project and some say not to. Read their agency submission guidelines. If they don't specify, most of us just assume it's ok to query more than one person. Definitely don't query more than one at once and do wait for the full rejection time before emailing the other agent.
And this is beside the point, because ultimately, I'm not sure it matters. But I always query one project at a time. That way you have a better idea of what's getting good responses and what isn't, instead of taking several shots in the dark and continuing to wonder. And that way you don't get your agents and queries mixed up. I'm a very disorganized person, so sending Query C to Agent A and then sending Agent B Query A and then sending Agent A Query A instead and... I'm stressed just thinking about trying to keep that straight. It lessens the potential for writer error if you query one project at a time.
Hope that's helpful! Good luck in your querying!