The Valve Developer Community has some okay documents about the AI [0], moddb has some nice articles too (no links offhand). And most of the source for combine guards is available in the Source SDK [1], you can see tons of if's and hard coded sequences of actions.
I've read that the AI was changed after the Orange Box release, so maybe there was some learning features to them originally. Or maybe those features do exist within HL2's private source files, though it doesn't "feel" like it.
[0] https://developer.valvesoftware.com/wiki/AI_Learning:_Combin...
[1] https://github.com/ValveSoftware/source-sdk-2013/blob/master...
If it thought players had had it easy for a while it might throw a larger waves of monsters and specifically deny spawning health for a few minutes.
There's a good presentation somewhere about how it would try to balance the rising action with periods of "stress" and "relief" over the course of a level.
Have to start somewhere, though.
As a side note, the writeup of F.E.A.R's AI is a fascinating read. By combining very simple goals and actions, they created AI that is still remembered as incredibly good. http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear....