El problema no está ahí, pues sino la función mysql_num_rows() daría el mismo error antes que mysql_fetch_assoc().
El problema es el contenido del while. Resulta que $resultado_agente es inicialmente un resource (recurso), y eso está bien. Ejecutas el primer ciclo sin problemas, y ahí
redefines la variable $resultado_agente, le asignas un valor de texto, y por ende tu recurso desaparece. Al ejecutar el segundo ciclo (Vamos, es un ciclo while que no se detiene hasta que su condicion da false, ejecutamos nuevamente la función mysql_fetch_array() con el mismo parámetro, pero que ahora no es un recurso válido. Y por eso lanza el error.
La solución es usar otro nombre de variable para almacenar el texto dentro de tu ciclo while, y así evitas la eliminación de tu recurso.