Agents with the ability to move from one system to another in order to process
their tasks locally on that system are called
Mobile Agents.
The traveling is done on their behalf, like acting on special requirements of
their environment.
The Agents keep their current executing state wherever they travel, making it
possible continue with their work on the other system. Some languages provide
the facility of transferring the execution state (stack) of the Agent during
execution, where others just provide the transfer of global variables.