Agent design