1) Dan's answer has already given a clear idea about this. I just want to add that, typically you adjust the gain at the RF Front end depending on the amplitude of sampled signal (assuming you are sampling the signal and then computing the power). But even if you compute the amplitude in terms of unit like volt, ultimately you will need to adjust gain at the front end in terms of dB. So naturally, you will need to convert amplitude to dB, and then perform the AGC algorithm on it to come up with gains.
2)My take - the adjacent channel power (signals or interference just outside your wanted BW) plays a huge role in AGC algorithm. If the adjacent channel power is high, you will have to de-sensitize your AGC so that it does not end up setting high gain, and saturating ADC. You may wonder, why not the adjacent channel is blocked by LPF? Well you do not have an ideal filter and there will spectral leakage due to aliasing into your band. You do not want this to saturate the ADC just because AGC set high gain.