Don't you hate the way ALL docs get reprocessed whenever you resave an agent designed to run against new or modified docs? If an agent has been in production a long time, any small design change will cause it to run against a zillion documents. A good solution to this is to add an IF statement to skip out if the number of unprocessed docs is out of the expected range. Be careful not to set the limit too low or it will skip processing certain docs when mass changes are done (although that may be preferable for some agents). Also when you set the threshold, consider what will happen if replication between remote servers doesn't take place for a few days. Here is simplified code that can be added near the top of your agent.
nThreshold = 100 ' set this parameter within the realm of a realistic range If collection.Count > nThreshold Then Print "too many to process" Call collection.UpdateAll ' don't even try to do them all -- useful after resaving the agent! Exit Sub End If