Lies, Bullshit, and Deception in Agent-Oriented Programming Languages
Total Page:16
File Type:pdf, Size:1020Kb
Lies, Bullshit, and Deception in Agent-Oriented Programming Languages 2 1 Alison R. Panisson ,S, tefan Sarkadi Peter McBurney1, Simon Parsons1, and Rafael H. Bordini2 1 PUCRS, School of Technology, Porto Alegre, Brazil 2 King's College London, Department of Informatics, London, UK [email protected], [email protected] fstefan.sarkadi,peter.mcburney,[email protected] Abstract. It is reasonable to assume that in the next few decades, intel- ligent machines might become much more proficient at socialising. This implies that the AI community will face the challenges of identifying, understanding, and dealing with the different types of social behaviours these intelligent machines could exhibit. Given these potential challenges, we aim to model in this paper three of the most studied strategic social behaviours that could be adopted by autonomous and malicious software agents. These are dishonest behaviours such as lying, bullshitting, and deceiving that autonomous agents might exhibit by taking advantage of their own reasoning and communicative capabilities. In contrast to other studies on dishonest behaviours of autonomous agents, we use an agent- oriented programming language to model dishonest agents' attitudes and to simulate social interactions between agents. Through simulation, we are able to study and propose mechanisms to identify and later to deal with such dishonest behaviours in software agents. 1 Introduction Agent-Oriented Programming Languages (AOPL) and platforms to develop Multi-Agent Systems (MAS) provide suitable frameworks for modelling agent communication in AI. We can reasonably say that one of the main purposes of AI research is to represent as accurately as possible the way humans use in- formation to perform actions. Actions of humans are sometimes performed by applying dishonest forms of reasoning and behaviour such as lying, bullshitting, and deceiving. In this paper, we model lies, bullshit and deception in an AOPL named Ja- son [3], which is based on the BDI (Belief-Desire-Intention) architecture. Mod- elling these dishonest attitudes in MAS allows us to simulate agent interactions in order to understand how agents might behave if they have reasons to adopt these dishonest behaviours. Understanding such behaviours also allows us to identify and deal with such phenomena, as proposed by [7]. Even though the AI community has investigated computational models of lies [31], \bullshit", and deception [6], to the best of our knowledge, our work is one of the first attempts to model these types of agent attitudes in the practical context of an AOPL. AOPLs offer an attractive way of improving the research of dishonest agent behaviour through simulations of agent interactions with explicit representation of relevant mental states. Our study has two main contributions: (i) A comparative model of lies, bull- shit, and deception in an AOPL based on the BDI architecture, which allows us to define and simulate these dishonest behaviours. (ii) Making the respective model practical, by implementing an illustrative scenario to show how an agent called car dealer is able to deceive other agents called buyers in buying a car3. In this scenario, the car dealer also tells lies and bullshit in order to make the buyers believe a car is suitable for them, when in fact it is not. 2 Background 2.1 Lie, Bullshit, Deception We will start by describing what lying is from an agent-based perspective. We define lying similar to [6]. A lie is a false statement about something that is intended to make someone believe the opposite of what is actually true. Lying cannot be reduced to linguistic communication only. Liars give out information to others in various forms, such as social behaviour, facial expressions, physiological responses to questions, and manipulation of the environment [11, 5]. Definition 1 (Lying). The dishonest behaviour of an agent Agi to tell another agent Agj that : is the case, when in fact Agi knows that is the case. Bullshit is different from lying in the sense that it is not intended to make someone believe the opposite from the truth. A bullshiter agent will give an answer to a question in such a way that the one who asked the question is left with the impression that the bullshiter agent knows the true answer [12], when in fact it does not. Definition 2 (Bullshit). The dishonest behaviour of an agent Agi to tell an- other agent Agj that is the case, when in fact Agi does not know if is the case. Deception is more complex than bullshit or lying. We define deception as the intention of an agent (Deceiver) to make another agent (Interrogator) believe something is true that it (the Deceiver) thinks is false, with the scope of reaching an ulterior goal or desire. The complexity arises due to the fact that an agent requires Theory-of-Mind (henceforth ToM) to deceive [17]. ToM is not needed to tell a lie or to bullshit (although there are cases in which liars or bullshitters can make use of ToM). The Deceiver has to let the Interrogator reach the conclusion by itself. For example, if the Deceiver wants the Interrogator to believe that q is the case, instead of directly telling the Interrogator that q is the case, the Deceiver uses some knowledge that the Interrogator possesses, let's say p ! q, 3 The implementation of this work is available at https://tinyurl.com/ybrmkqg9. and tells the Interrogator that p is the case. Having told the Interrogator that p is the case, the Deceiver then knows that if the Interrogator is a rational agent that has the ability to apply Modus Ponens, then it will conclude that q is the case. Levine and McCornack call this interplay Pars Pro Toto (the information the Deceiver decides to feed the Interrogator) and Totum Ex Parte (the knowledge the Interrogator derives from the information sent by the Deceiver) [21]. One can argue that liars and bullshitters might have some types of moti- vations or goals. However, compared to deceivers, these goals do not contain ulterior motives. A liar, for example, can have the goal to speak falsely about a state of the world without taking into consideration the state of mind of the agent it speaks to. It can also be argued that a good liar would take into account its target's mind, although by definition a liar is constrained by one single strat- egy which is to speak falsely about a state of the world. A bullshitter can have the goal to make the agent it speaks to believe it (the bullshitter) is speaking the truth independently of the state of the world it is speaking about. Most of the times, however, bullshitters do not take into consideration the target's mental activity in order to deliver a bullshit. Definition 3 (Deception). The intended dishonest behaviour of an agent Agi to tell another agent Agj that is the case, when in fact Agi knows that : is the case, in order to make Agj conclude that ' given that Agi knows that Agj knows that ! ' and Agi also knows that Agj is rational. 2.2 Agent Oriented Programming Language Among the many AOPL and platforms, such as Jason, Jadex, Jack, AgentFac- tory, 2APL, GOAL, Golog, and MetateM, as discussed in [2], we chose the Jason platform [3] for our work. Jason extends the AgentSpeak language, an abstract logic-based AOPL introduced by Rao [27], which is one of the best-known lan- guages inspired by the BDI architecture. In Jason, the agents are equipped with a library of pre-compiled plans that have the following syntax: triggering_event : context <- body. where the triggering event represents the way agents react to events, for ex- ample, a new goal for the agent to pursue, or a new belief in case the plan is to be triggered by reaction to perceived changes in the world; the context has the preconditions for the plan to be deemed applicable for achieving that goal given the current circumstances, and the body is a sequence of actions and sub-goals to achieve the goal. Besides specifying agents with well-defined mental attitudes based on the BDI architecture, the Jason platform [3] has some other features that are partic- ularly interesting for our work, for example: strong negation, belief annotations, and (customisable) speech-act based communication. Strong negation helps the modelling of uncertainty, allowing the representation of things that the agent: (i) believes to be true, e.g., safe(car1); (ii) believes to be false, e.g., :safe(car1); (iii) is ignorant about, i.e., the agent has no information about whether the car is safe or not. Also, Jason automatically generates annotations for all the beliefs in the agents' belief base about the source from where the belief was obtained (which can be from sensing the environment, communication with other agents, or a mental note created by the agent itself). The annotation has the following format: safe(car1)[source(seller)], stating that the source of the belief that car1 is safe is the agent seller. The annotations in Jason can be easily ex- tended to include other meta-information, for example trust and time as used in [22, 25]. Another interesting feature of Jason is the communication between agents, which is done through a predefined (internal) action. There are a num- ber of performatives allowing rich communication between agents in Jason, as explained in detail in [3]. Further, new performatives can be easily defined (or redefined) in order to give special meaning to them4. 3 Running Example To show the difference between the agents' attitudes of telling a lie, telling bull- shit and deceiving, we will present an approach to model these three agent attitudes in an agent-oriented programming language using a running example of a car dealer scenario5, inspired by [20, 23, 31].