Managing Goals and Resources in Dynamic Environments Elizabeth Gordon, Brian Logan School of Computer Science University of Nottingham UK {esg|bsl}@cs.nott.ac.uk Abstract A key problem for agents is responding in a timely and appropriate way to multiple, often conflicting goals in a complex, dynamic environment. In this paper we propose a novel goal processing architecture which allows an agent to arbitrate between multiple conflicting goals. Building on the teleo-reactive programming framework originally developed in robotics, we introduce the notion of a resource which represents a condition which must be true for the safe concurrent execution of a durative action. We briefly outline a goal arbitration architecture for teleo-reactive programs with resources which allows an agent to respond flexibly to multiple competing goals with conflicting resource requirements. Keywords: Agent Architecture, Goals, Resources, Action Selection. INTRODUCTION One of the defining characteristics of an autonomous agent is its ability to generate its own goals in response to changes in its environment. At any given time, such an agent will typically have several goals; for example, a package delivery robot may have a goal to deliver a package to a particular office (triggered by a user request), a goal to keep its battery charged (innate), and a goal to avoid colliding with the person who has just stepped out of their office (autonomously generated). A key problem with goal-based architectures is goal arbitration, i.e.which goal or goals to work on next. Ideally the agent should work to achieve as many goals as possible, while respecting any priority ordering over goals and the limitations imposed by its environment and effectors. The agent should be able to respond to opportunities and threats as they arise, while continuing to work towards its existing goals (to the extent to which this is possible). However, many existing goal-based agent architectures only allow an agent to work towards a single goal at a time. In this paper, we extend the teleo-reactive framework described in (Benson and Nilsson, 1995) to allow an agent to work towards multiple goals simultaneously. We introduce the notion of a resource representing a condition which must be true for the safe concurrent execution of a teleo-reactive program, and present an algorithm for goal arbitration between teleo-reactive programs with resources. The examples in this chapter and the implementation we describe involve agents which act as characters in a computer game. The domain of computer games is becoming increasingly popular as a research platform for artificial intelligence (see, for example, (Laird and Duchi, 2000; DePristo and Zubek, 2001; Hawes, 2000)). Developing an agent for a computer game is essentially the same as any simulation-based approach to AI. Modern computer games are essentially simulated worlds. While games are simpler than the real world, they provide a range of locations, situations, objects, characters and actions which present game characters with a complex, dynamic environment. Most