agent_destroy() has a comment which indicates that it does _not_
destroy the pointer passed to it and it seems that agents are
never realeased under any code path whatsoever.
There does not seem to be an instance where an agent is allocated on
the stack.