try someting like this way:
Code:
typede struct AGENT {
INT ID;
ENTITY *p_agentEnt;
STRING *agentName;
} AGENT;

AGENT pAgents[999];
var countAgents = 0;

AGENT* agent_create(STRING *name,) {
   if(name == NULL) {return;} //if no name is given return

   countAgents ++;

   AGENT *p_agent = malloc(sizeof(AGENT)); //create a new agent
   p_agent.ID = countAgents; //set agent-ID
   p_agent.p_agentEnt = ent_create("mdlFileName.mdl", vector(0,0,0), actionName); //create entity
   p_agent.agentName = str_create(name); //set agent-name

   return p_agent;
}

void main() {

   level_load("yourLevel.wmb");
   wait(1);
   pAgents[countAgents] = agent_create("max");
   pAgents[countAgents] = agent_create("john");
   pAgents[countAgents] = agent_create("lisa");
   [...]
}