Old topic but relevant so imma do some gravedigging.
If you are blueprint only, the best solution I’ve found is just forgetting the pawn.
Get and store (so you don’t have to do GetAllActors half the time) the recast navmeshes and you can search their object name for the agent name you are using. And you can just plug that into the FindPath nodes. as it takes pawn OR recast navmesh.
If you are doing c++ you have no such problems, you can just use the agents directly anyways. Navigation raycast does take only controllers though so if you want to use that… well, I needed it but the controller always resulted in null navdata so it defaulted to the default agent. Had to change the thing a little.
The code for the agent selection is just copy pasted from the FindPathTo… functions and works fine but I did have to learn stuff like “yea, if you are using things from NavigationSystems then maybe, just maybe, include it in your build.cs, pretty please?”. I did feel particularly st*pid at that point.