Role-based collaboration is an emerging methodology to facilitate an organizational structure, provide orderly system behavior, and consolidate system security for both human and non-human entities, like agents, that collaborate and coordinate their activities with or within systems. Interaction management must, however, be able to handle run-time and dynamic scenarios. Hence, every role-based collaboration system must provide a good level of dynamism, that is, provide an agent with the capability to assume, use, and release a role depending on run-time conditions. Dynamism, however, does not suffice in adaptative scenarios: being able to use a role dynamically is important, but in order to enhance interagent communications, the capability to perceive a played role is important too. Role perceivability is the capability of an agent to autonomously recognize the role played by another entity without the need to ask a yellow-page directory. Whereas dynamism has been achieved with different techniques and often through language support, role perceivability is more difficult to achieve and to some extent even more important because it can boost sociality among entities and agents. In object-oriented programming languages, such as JAVA, role perceivability could be achieved with appropriate changes to the agent/entity class structure, but this requires compile time constraints that are, in their nature, not dynamic. This paper proposes an approach to remedy the above problems: maintaining an appropriate level of dynamism. The work presented here allows a JAVA agent to make its role perceivable to other entities as if it is applied at compile time. Copyright © 2011 John Wiley & Sons, Ltd.