User Agents are objects which wrap URLs which are known as the "location" or the "context." They fetch and cache the index from their location, then query the index's meta-data for links to new URLs. A new Agent is created to wrap the matching URL. It maintains a back-reference to its parent, and is known as having a "relative context."
Fetching the index is known as "resolution," and is triggered by the first resolve() or dispatch() call. If the Agent is relative, its parent may need resolution first, so the full ancestry is triggered to resolve in the process. The unresolve() function will clear the cache of the Agent so that it will re-resolve on its next dispatch.
It's useful for me to think of Agents as database cursors.
RUSH (sorry bri, I have to... for the Getty) has a syntax for specifying an Agent in its requests:
myagent> GET foobar-generator