Hallo,
I propose the following, but just an idea ... I never implemented it.But should work.
first draw a shape (with available shapes in gama or with your coupled coordinates) and then use the (spatial) intersect operator with this geometry on all other overlapping layers (agents, species) . and let this intersect result (assign) into new geometries or preferably shapefiles so that you can retain the attributes. At this moment when you think you have assigned these to 'new' create statements to -create- new "sub-region agents". Then make sure you kill (die) all other agents or design you code carefully (with conditional statements) so that you do not have any active reflexes or actions for those agents outside this zoomed (shape) area.
Then go on to activate reflexes specific to this zoomed sub-region, run your code and get the results. When happy, kill them or store them (with save statement) and reactivate your bigger (complete) world. In this way you make things dynamic (based on reflexes and step-conditioned code)
Do you see what I am suggesting? If you are able to do this, may you can then refine your questions :) :)
I add a picture may be others get better ideas.
regards,
Srirama