How to do AGC correctly
There are two ways to do AGC

a) Switched gain or attenuation stages
b) Continuously variable gain or attenuation stages

and then within both of those, whether you control the gain, or attenuation of a stage.

They have different tradeoffs, different parameters will be important to different users.

The big difference is whether your application can tolerate switching, or must have smooth variation between gain levels. Microphone levelling must obviously use the latter.

Generally, switched systems can be made with a higher dynamic range than continuous ones, there are fewer tradeoffs on noise and distortion. They are also usually easier to get right.

Switched systems further break down into circuits which switch the value of a component (for instnce a digitally controlled resistor in an attenuator or feedback loop), and circuits that switch from one amplifier to another, or one attenuator pad to another.

Once you start looking for switches, and switched components, including DACs with a dynamically controlled reference current like AD5443 which goes to 10MHz on the multiplying path, then the world is your oyster. 

Establish whether you want audio, or RF, or microwave, as that will determine where you search.