agent component hierarchy