I found a fix for tanking bots not holding aggro when you get too close to the mob, with the fix you can leave smartaggro on and still let your tanks hold aggro if you get too close
here's the code...
In hate_list.cpp
find
Code:
if(cur->ent->IsClient()){
around line 283 and replace it with
Code:
if(cur->ent->IsClient() || cur->ent->IsBot()){
recompile, turn on smartaggro and your bots will now hold aggro...
I haven't tested it myself but if you want your pets to be able to tank for you like this too, you should be able to replace the line above with
Code:
if(cur->ent->IsClient() || cur->ent->IsBot() || cur->ent->IsPet()){