Этого можно добиться с помощью класса AMSSubscriber и прослушивать события, когда контейнер добавляется или удаляется. Смотрите пример кода ниже:
public class myAgent extends Agent {
private ArrayList<ContainerID> availableContainers = new ArrayList<ContainerID>();
/**
* Agent initializations
**/
protected void setup() {
AMSSubscriber subscriber = new AMSSubscriber(){
protected void installHandlers(Map handlers){
EventHandler addedHandler = new EventHandler(){
public void handle(Event event){
AddedContainer addedContainer = (AddedContainer) event;
availableContainers.add(addedContainer.getContainer());
}
};
handlers.put(IntrospectionVocabulary.ADDEDCONTAINER,addedHandler);
EventHandler removedHandler = new EventHandler(){
public void handle(Event event){
RemovedContainer removedContainer = (RemovedContainer) event;
ArrayList<ContainerID> temp = new ArrayList<ContainerID>(availableContainers);
for(ContainerID container : temp){
if(container.getID().equalsIgnoreCase(removedContainer.getContainer().getID()))
availableContainers.remove(container);
}
}
};
handlers.put(IntrospectionVocabulary.REMOVEDCONTAINER,removedHandler);
}
};
addBehaviour(subscriber);
}
}
Ссылка: 1) Разработка многоагентных систем с JADE
Фабио Луиджи Беллифемайн, Джованни Каир, Доминик Гринвуд (стр. 111)
2) Jade API