Mathematica, 41 bytes without optimization
Mathematica was basically invented to solve problems like this. One easy solution is to construct the problem as a nested power series and pass it to the built-in Reduce
function, which seeks analytical solutions to equations. As a result, the following, in addition to being unusually concise code, is also not brute force.
Reduce[Nest[Power[#, 1/x] &, a, b] == x, x, Reals]
You can remove the restriction to provide only Real number solutions if you're patient and want to save six bytes. You can also express some of the nested functions in abbreviated form to save a few more bytes. As given, it returns thusly