Facilitating agent development in open distributed systems