{'fraction_non_alphanumeric': 0.023595023595023596, 'fraction_numerical': 0.0, 'mean_word_length': 5.371584699453552, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Implementing Social Norms Using Policies

Multi-agent systems are difficult to develop. One reason for this is that agents are embedded in a society where all agents must agree to obey certain social norms in order for the society to function. Thus, different programmers, writing different agents, must carefully obey certain agreed-upon protocols. This problem is difficult enough due to the complexity of the interactions, but it is exacerbated by the asynchronous and event-based nature of agent-based systems: agents must asynchronously respond to incoming conversational messages, and may carry on several simultaneous conversations. Several large projects address these issues. Examples are Jade (Telecom Italia) and Cougaar (DARPA). Jade is strictly compliant with the well-known FIPA standard, which makes it useful for commercial agent development and research not directed at certain fundamental aspects of multi-agent systems. Cougaar was developed as a defense agent infrastructure, and while it is not tied to FIPA standards, it is quite prescriptive in both its inter-agent architecture, and its intra-agent architecture. The contribution of CASA (Collaborative Agent System Architecture) is an agent infrastructure that seeks to support agent development, but as much as possible, avoids restricting the inter- or intra-agent architecture or the agent interaction paradigm. This paper describes aspects of the CASA tool that mitigate the aforementioned problems for the research-oriented developer who wants to investigate deviations from standards or alternative architectures. CASA provides a policy descriptor language that abstracts the complexities of conversational interactions away from the programming level, and allows sharing of policies among different agents, even at run time. Thus, an agent programmer is free to concentrate on the properties of the agent, and not on the intricate mechanics of conversational protocols. In addition, policies may be easily modified and distributed as the need arises. Thus, a protocol researcher can concentrate on protocols without having to re-write agent behaviour each time the protocol changes. The policy approach is very flexible, and we have developed policies to support the social commitment paradigm, the BDI paradigm, as well as simpler ad-hoc protocols.