add @typeof Agent