Hey,
Usually we recommend using RVO for local avoidance, (the build in movement scripts handle this without a problem).
Depending on how your AI works there are many different solutions you can approach. A manager could find various positions for the group of Agents. Depending on distance, weapon type etc…
Alternatively depending on what graph type you’re using you could make something custom using the ITraversableProvide and NNConstraint. I’ve written a bit more detailed answer here: Avoidance, but not local