The chapter opens by restating what Chapter 3 established. Computational agents are autonomous as they encapsulate the thread of control: they are independent of the computational environment as far as control is concerned; the flow of control does not pass through agent boundaries and only data crosses them; agents have no interface, cannot be controlled and cannot be invoked; and a MAS is an aggregation of multiple distinct loci of control interacting by exchanging information.
And then it asks the two questions this chapter answers. First: what about the other notions of autonomy? Autonomy with respect to other agents — social autonomy; with respect to the environment — interactive autonomy; with respect to humans — artificial autonomy; with respect to oneself — moral autonomy. Second: what is intelligence to autonomy? Any sort of intelligence? Which intelligence for which autonomy? Which intelligent architecture for which autonomy?
This is where Part II and Part III of the study path meet. Chapter 4 argued that agents are the right container for intelligence; Chapters 5 and 6 asked what intelligence is and what AI has built. This chapter finally puts something specific inside the container — mental states — and shows the architecture that results.
The classical definition: an intelligent agent is a computational system capable of autonomous action and perception in some environment, where actions are supposed to change the environment in order to meet the agent’s design objectives, and perception is the process by which the agent recognises the state of the environment so as to adapt its behaviour to it.
Two functions make this precise. The perception function is the agent’s ability to observe its environment; its outcome is a percept:
Perception : E → Per
mapping environment states to percepts. The action function represents the agent’s decision-making process; its outcome is an action:
Action : Per* → Ac
mapping sequences of percepts to actions. The asterisk is doing real work: the agent decides on the basis of everything it has perceived so far, not merely on the current percept.
Actions themselves are modelled by pre- and post-conditions. An agent has a repertoire of actions available, aimed at changing its environment; actions are applicable or not depending on the situation, so pre-conditions are conditions in the environment that must be met for an action to be applied; and actions are expected to affect the environment, so post-conditions are the expected outcomes in terms of changes to the environment.
Next. Everything else in this chapter is a decision about what to put inside that state box.Four dichotomies, which together determine how hard the agent’s job is:
| Property | Definition |
|---|---|
| accessible vs inaccessible | Accessible is the environment whose state is completely observable by the agent |
| deterministic vs non-deterministic | Deterministic is the environment where any action has a guaranteed effect, without uncertainty |
| static vs dynamic | Static is the environment that remains unchanged except by the effect of agent actions |
| discrete vs continuous | Discrete is the environment allowing for a given finite number of actions and percepts |
The deck sets an exercise: playing chess versus car driving — which sort of environment in the two cases? Chess is accessible, deterministic, static in the relevant sense, and discrete; driving is none of those. That single contrast explains why chess fell to computation decades before driving did, and why Chapter 10 will have to spend a whole section relaxing exactly these four assumptions when it moves from classical planning to planning under uncertainty.
A distinction imported from Harel and Pnueli [1985], and one of the most consequential in the chapter.
Functional systems are what classical software engineering deals with: systems that can be seen as functions with an input and an output, F : I → O — compilers being the example — with a relational view available.
Reactive systems aim at maintaining a continuous interaction with their environment. They cannot be described in a functional or relational way; they have instead to be described and specified in terms of their ongoing behaviour — operating systems being the example. And the consequence the deck marks: a reactive system engaging in a conceptually non-terminating relationship with its environment must continually make decisions that bring about long-term effects.
Notice that this is Chapter 2’s heteronomous/autonomous distinction arriving from a completely different direction. A functional system is specified by what it maps input to; a reactive one has no such specification available, because there is no final output to be judged against. When the deck says a reactive system must make decisions with long-term effects, it is describing a system for which no external evaluator can hand down a verdict at the end — which is precisely why such systems need an internal criterion, and hence why the next sections go looking for goals.
The four typically-mentioned behavioural features, with the deck’s reminder that they can somehow be reduced to autonomy itself.
Reactivity. Applications in real-world domains are characterised by highly dynamic conditions: situations change, information is incomplete, resources are scarce, the actions performed are not deterministic in their effects. A reactive system maintains an ongoing interaction with its environment and responds to changes that occur in it — in time for the response to be useful. Purely reactive agents decide what to do without reference to their history: reaction is entirely based on the present, with no reference to past states, as in stimulus–response rules, giving action : E → Ac. A thermostat is a purely reactive agent.
Situatedness. Reactive models and state-less agency are not enough for entities engaged in dynamic environments, which continually face external events requiring adequate services and behavioural responses. Any “ground” model of action is strictly coupled with the context where the action takes place; an agent comes with its own model of action; therefore any agent is strictly coupled with the environment where it lives and interacts, by the very actions it is capable of.
Proactiveness. We need agents able to smartly adapt to their environment: autonomously readapting to changes, recognising opportunities, showing goal-oriented behaviour. Proactiveness is a generative approach: agents generate their objectives and attempt to achieve them; agents encapsulate control and the rule to govern it; agents are not driven solely by stimuli; agents take the initiative and make something happen, rather than waiting for something to happen.
Social ability. A MAS is an articulated world where we cannot go around attempting to achieve goals without taking other entities into account, and some goals can only be achieved with the cooperation of others. Social ability is the ability to interact with other agents, and possibly humans, via some kind of agent-communication means: speech acts [Searle, 1969], artefact-based interactions [Omicini et al., 2004], signals, environment traces [Parunak, 2006]. And coordination is social: cooperation, collaboration, but also competition with others.
Keep an eye on the second item in the list of communication means — artefact-based interaction, cited to Omicini and colleagues. It is the seed of Chapter 11: interaction that happens neither by speaking to another agent nor by acting blindly on the world, but through a designed thing that mediates. Chapter 11 gives it a full meta-model.
To face these growing complexities, stateful agents can be conceived: agents with some internal data structure, typically used to record information about the environment state and history. Let I be the set of all internal states of the agent. The perception function is unchanged, Perception : E → Per; the action-selection function becomes a mapping from internal states to actions, Action : I → Ac; and an additional function Next : I × Per → I maps an internal state and a percept to an internal state.
Which yields the first control loop of the chapter:
Agent control loop (v. 1)
1: while true
2: observe the environment state 'e' and generate a perception(e);
3: update internal state model:
i ::= next(i, perception(e));
4: select an action to execute:
action(i);
5: end while
And with it, the questions that drive the rest of the chapter: we now have the problem to define such agent states. How to build an effective internal state model? How to make it run? How to update it?
The answer proposed is to refer to human attitudes as intentional notions. When explaining human activity it is often useful to make statements such as: Lewis got rain tires because he believed it was going to rain; Charles is working hard because he wants to win his first world championship. These can be read in terms of folk psychology, by which human behaviour can be explained and predicted through the attribution of mental attitudes such as believing and wanting, hoping, fearing, and so on.
The philosopher and cognitive scientist Daniel Dennett coined the term intentional system to describe entities “whose behaviour can be predicted by the method of attributing to it belief, desires and rational acumen” [Dennett, 1971]. He identifies several grades:
Which entities can be described in terms of the intentional stance? Human beings are prone to provide an intentional stance to almost anything — sacrifices to ingratiate the benevolence of gods, animism. The licence for machines comes from McCarthy [1979]: ascribing mental qualities like beliefs, intentions and wants to a machine is sometimes correct if done conservatively, and is sometimes necessary to express what is known about its state; it is useful when the ascription helps us understand the structure of the machine, its past or future behaviour, or how to repair or improve it.
And Dennett’s own later formulation [Dennett, 2007] makes the instrumental character explicit: the intentional stance is the strategy of interpreting the behaviour of an entity — person, animal, artifact, whatever — by treating it as if it were a rational agent who governed its ‘choice’ of ‘action’ by a ‘consideration’ of its ‘beliefs’ and ‘desires’. The scare quotes around all these terms, he notes, draw attention to the fact that some of their standard connotations may be set aside in the interests of exploiting their central features: their role in practical reasoning, and hence in the prediction of the behaviour of practical reasoners.
The justification for BDI is engineering, not metaphysics. Nobody is claiming the machine believes anything. The claim is that as computer systems become ever more complex, mechanistic low-level explanations become impractical, and intentional notions can be adopted as abstraction tools, providing a convenient and familiar way of describing, explaining and predicting the behaviour of complex systems — and then, crucially, of programming them.
Early agent theorists start from a strong notion of agents as intentional systems: agents explained in terms of mental attitudes or mental states; in their social abilities, the simplest consistent description of agents implied the intentional stance; agents contain an explicitly-represented — symbolic — model of the world, written somewhere in the working memory; and agents make decisions on what action to take in order to achieve their goals via symbolic reasoning. And the line that names the chapter: intentions connect reasoning with action.
Mental states are a worthwhile abstraction for developing agents to act effectively in a class of application domains characterised by various practical limitations and requirements [Rao and Georgeff, 1995]:
Read that list as an applicability condition. If your environment is deterministic, fully observable and static, mental states buy you nothing — a lookup table would do. The apparatus of beliefs, desires and intentions earns its cost exactly in the conditions listed.
| Family | How the goal lives in the agent |
|---|---|
| Teleo-reactive / goal-oriented | Based on their own design model and internal control mechanism; the goal is not explicitly represented within the internal state, but is an “end state” for the agent’s internal state machine |
| Deliberative / goal-directed | Based on symbolic reasoning about goals, which are explicitly represented and processed aside the control loop; also known as goal-governed agents |
The example given for the two is memorable and closes the loop with Chapter 5: bacteria versus rational humans.
Why bother modelling agents on mental states? Because it eases the development of agents exhibiting complex behaviour; provides a familiar, non-technical way of understanding and explaining agents; allows the developer to build MAS by adopting the perspective of a cognitive entity engaged in complex tasks — what would I do in the same situation?; simplifies construction, maintenance and verification of agent-based applications; and is useful when the agent has to communicate and interact with human users or other intelligent system entities.
Finally, the vocabulary. Epistemic states represent the agent’s knowledge — its knowledge of the world: percepts, beliefs. Motivational states represent the agent’s objectives — what it aims to achieve: goals, desires. And the process of selecting one action to execute among the many available, based on the actual mental states, is called practical reasoning.
First, the contrast that fixes the term:
| Kind | Directed towards | Process |
|---|---|---|
| Epistemic reasoning | Knowledge | Updating information, replacing old information — no longer consistent with the world state — with new information |
| Practical reasoning | Actions | Figuring out what to do in order to achieve what is desired |
Bratman’s formulation: practical reasoning is a matter of weighing conflicting considerations for and against competing options, where the relevant considerations are provided by what the agent desires, values or cares about, and what the agent believes [Bratman, 1987].
Practical reasoning consists of two main cognitive activities:
The basic idea is to provide agents with three sorts of representation: of the goal or intention to achieve; of the actions or plans in the repertoire; and of the environment. Given the environmental conditions, means-ends reasoning aims at devising a plan that could possibly achieve the adopted goal or intention.
And a formulation worth underlining: the selected intention is an emergent property, reified at runtime by selecting a given plan for achieving a given goal — no determinism.
Which produces the second control loop:
Agent control loop (v. 2)
1: while true
2: observe the world;
3: update internal world model (beliefs);
4: deliberate which intention to adopt next;
5: use means-ends reasoning to get a plan for the given intention;
6: execute the plan;
7: end while;
Seven properties, and they are the most examinable list in the chapter because they are what distinguishes an intention from a mere desire or a mere plan.
The adoption of an intention follows the rise of a given desire — that is, it follows the adoption of a given goal. But desires and intentions are different concepts, and Bratman’s example says it best [Bratman, 1990]:
“My desire to play basketball this afternoon is merely a potential influencer of my conduct this afternoon. It must live with my other relevant desires [...] before it is settled what I will do.”
“In contrast, once I intend to play basketball this afternoon, the matter is settled: I normally need not continue to weigh the pros and cons. When the afternoon arrives, I will normally just proceed to execute my intentions.”
“The matter is settled” is the whole distinction in three words, and it is worth being able to justify computationally as well as philosophically. An agent that re-weighed every option at every cycle would never get anything done — that is the bounded-rationality problem of the next section. Committing to an intention is what buys the agent the right to stop deliberating and start executing.
Now the problem that shapes every real BDI interpreter. Agents have bounded resources — what is called bounded rationality. Deliberation and means-ends processes are not for free: they have computational costs, and the time taken to reason and the time taken to act are potentially unbounded. This harms agent fitness — the reactivity and promptness that is essential for the agent to survive.
Make it precise. If the agent starts deliberating at t0, begins means-ends at t1, begins executing a plan at t2 and ends executing at t3, then the time for deliberation is t_deliberation = t1 - t0 and the time for means-ends reasoning is t_meansend = t2 - t1.
Meanwhile, agent environments are supposed to be highly dynamic: many concurrent changes may occur during decision-making as well as during plan execution. The deliberated intention is surely worth pursuing at the precise time when the deliberation process starts, that is at t0. But at t1 the agent selects a goal or intention that would have been optimal if it had been achieved at t0. So the agent runs the risk that the intention selected is no longer optimal — or no longer achievable — by the time the agent has committed to it.
The deck then states, with some irony, the three conditions under which the naive agent would exhibit optimal behaviour:
Those three conditions are not a footnote, they are a specification of what classical AI quietly assumed. Chapter 10 will list almost exactly the same assumptions under the heading of classical planning: atomic time, determinism, complete initial knowledge, no disruption — and it too will call them strong. Bounded rationality is the same discovery made from the agent side.
BDI is quite generally accepted as one of the most popular and successful frameworks for agent technology [Dasgupta and Ghose, 2011]. It was defined by Rao and Georgeff [1992], its core notions are belief, desire and intention, and agents in this framework are typically referred to as BDI agents.
| Notion | Definition |
|---|---|
| Beliefs | Represent at any time the agent’s current knowledge about the world, including information about the current state of the environment inferred from perception devices, messages from other agents, and internal information |
| Desires | Represent a state of the world the agent is trying to achieve |
| Intentions | The chosen means to achieve the agent’s desires, generally implemented as plans and post-conditions. Since an agent may have multiple desires, it can have a number of intentions active at any one time; these may be thought of as running concurrently, with one chosen intention active at any one time |
Besides these, the BDI model includes a plan library — a set of “recipes” representing the procedural knowledge of the agent — and an event queue, where events (either perceived from the environment or generated by the agent itself to notify an update of its belief base) and internal subgoals (generated by the agent while trying to achieve a desire) are stored.
One point here is asked constantly and answered wrongly just as often. BDI-style agents do not adopt first-principles planning at all. All plans must be generated by the agent programmer at design time, and are then selected for execution at run time; pre-programmed plans are collected in the plan library; and the planning done by agents consists entirely of context-sensitive subgoal expansion, deferred until a subgoal is selected for execution. If you are asked how BDI relates to Chapter 10, this is the answer: it does not generate plans, it selects and expands them.
The classical BDI abstract architecture [Rao and Georgeff, 1992] includes three dynamic and global structures representing beliefs, desires and intentions, along with an input queue of events. Update (write) and query (read) operations are possible upon the three structures; update operations are subject to compatibility requirements, since formalised constraints hold upon the mental attitudes. The events the system recognises can be external — coming from the environment — or internal, coming from some reflexive action; events are assumed to be atomic, and can be recognised after they have occurred.
The deck gives the interpreter three more times, at increasing levels of precision. Reading them in sequence is the fastest way to understand what a BDI platform actually does — and Chapter 12 will show the same loop implemented in Java inside Jason.
Agent control loop (v. 3) [Rao and Georgeff, 1995]
1. initialize-state();
2. while true do
3. options := option-generator(event-queue);
4. selected-options := deliberate(options);
5. update-intentions(selected-options);
6. execute();
7. get-new-external-events();
8. drop-successful-attitudes();
9. drop-impossible-attitudes();
10. end-while
The deck presents version 4 — “more formally, in some sense” — and immediately asks a good question about it: but it is not actually the same, is it? Version 4 collapses deliberation into a single deliberate(B), losing the option-generation step and the dropping of successful and impossible attitudes. Version 5 puts option generation and filtering back:
Agent control loop (v. 5)
1. B := B0;
2. I := I0;
3. while true do
4. get new percept p;
5. B := brf(p, B);
6. D := options(B, I);
7. I := filter(B, D, I);
8. pi := plan(B, I);
9. execute(pi);
10. end-while
The problem the refinement addresses: how can we make the reasoning procedures of deliberation and option generation sufficiently fast to satisfy the real-time demands placed upon the cognitive system? The answer is to decompose deliberation into two phases:
options which takes the agent’s current beliefs and current intentions and determines a set of options, that is desires;filter function.Chosen options are then intentions, so the agent commits to the selected ones and executes them. And a set of practical notes: the strategy for deliberating between goals typically is in the hands of the agent developer; most BDI programming platforms provide mechanisms to describe under which conditions some goal should inhibit the others — goal formulae, typically first-order logic predicates indicating contexts and trigger conditions; and game theory can enter the picture here, maximising expected utilities.
BDI architectures are based on: a set of beliefs; a set of desires or goals; a set of intentions — or better, a subset of the goals with an associated stack of plans for achieving them, these being the intended actions; a set of internal events, elicited by a belief change (update, addition, deletion) or by goal events (a goal achievement, or a new goal adoption); a set of external events, perceptive events coming from the interaction with external entities such as message arrival or signals; and a plan library, the repertoire of actions, as a further static component.
The three notions in detail:
| Construct | What it is |
|---|---|
| Beliefs | The agent’s knowledge about the current state of the world. Informational units, typically implemented as ground sets of literals, possibly with no disjunctions or implications. They should reflect only the information currently held — that is, they are situated — and are expected to change in the future, as the environment changes. |
| Plans | The means the agent has to change the world and bring it closer to its desires. Language constructs, typically implemented as procedural structures. A plan has a body describing the workflow of activities that must be carried out for execution to succeed; and the conditions under which it can be chosen are specified in an invocation condition (triggering event) and a pre-condition or context condition (a situation that must hold for the plan to be executable). |
| Intentions | Emergent properties reified at runtime by selecting a given plan for achieving a given goal. Represented on-line using a run-time stack of hierarchically related plans tied to the ongoing adopted goals — similarly to how a Prolog interpreter handles clauses. Multiple intention stacks can coexist, either running in parallel, suspended until some condition occurs, or ordered for execution in some way. |
The comparison with a Prolog interpreter in the last row is not decorative, and Chapter 8 makes it legible: an intention is a stack of partially-executed plans exactly as a Prolog computation is a stack of partially-resolved goals, with subgoal expansion in both cases. If you want one sentence connecting the whole of Part IV to Part III, it is that BDI execution is goal-directed resolution with side effects on the world.
Three viewpoints over BDI are distinguished [Mazal et al., 2008], and knowing which one someone is speaking from prevents most confusions:
Based on the work of the philosopher Bratman [1987], using terms of folk psychology to view humans as planning agents. The main concepts: beliefs, what an agent knows about the world; desires, what the agent wants, which can be contradictory; and intentions, desires that the agent has decided to reach, which cannot be contradictory.
Mainly Rao and Georgeff’s BDI CTL [1998] — multimodal logics with possible-world semantics — providing beliefs, goals (desires) and intentions with a precise logical semantics. This is the viewpoint from which one can prove things about agents, and Chapter 9 will note that model checking for MAS requires exactly this combination of temporal with modal epistemic logics.
There are a huge number of systems and technologies said to conform to the BDI model. They sit between the very expressive BDI CTL logics and the implementing systems — which then treat the main modalities rather as data structures, and mostly focus on plans. Chapter 12 works entirely at this level, and the gap flagged here is exactly why the Jason belief base looks like a Prolog database rather than like a modal logic.
| Platform | Origin | What it is |
|---|---|---|
| Jason | Brazil | Agent platform and language for BDI agents based on AgentSpeak(L) |
| JADEX | Germany | Agent platform for BDI and goal-directed agents |
| 2APL | Netherlands | Programming constructs to implement cognitive agents based on the BDI architecture |
| JACK | Australia | A mature Java-based framework based on BDI agents |
| ASTRA | Ireland | A distributed and concurrent programming language based on agent-oriented programming |
Above the individual platforms sits JaCaMo [Boissier et al., 2013; Boissier et al., 2020], which integrates three platforms from top (meta-models) to bottom (technologies): Jason for programming agents [Bordini et al., 2007], CArtAgO for programming environments [Ricci et al., 2009], and Moise for programming organisations [Hübner et al., 2007] — for MAOP, multi-agent oriented programming. Note the correspondence with Chapter 4’s three key abstractions: agents, environment, society, each getting its own technology.
In Python, some frameworks are already available: PADE (Python Agent DEvelopment framework), SPADE (Smart Python Agent Development Environment) and SPADE-BDI; or the usual pattern-based approach can be used, to use agents in Python programs without agents in the Python language.
And the closing observation, worth quoting because it frames the whole of Chapter 11: AI agents are spreading everywhere — yet they are not BDI agents. For now, at least.
Intentional systems are a widely successful approach to model agency at every level, including software agents and multi-agent systems — mostly because they make use of goals as a first-class notion and of intentions as the core notion connecting reasoning and action through deliberation, thus providing a sound and coherent framework for agent intelligence and autonomy, along with a number of usable agent technologies.
Perception : E → Per maps environment states to percepts; Action : Per* → Ac maps sequences of percepts to actions. The asterisk means the decision may depend on the whole history of what has been perceived, not only on the latest percept — which is precisely what a purely reactive agent, with action : E → Ac, gives up.
Accessible (state completely observable), deterministic (actions have guaranteed effects), static (unchanged except by agent actions), discrete (finite number of actions and percepts). Chess sits on the favourable side of all four; car driving on the unfavourable side of all four — partially observable, non-deterministic in effect, changing without the driver acting, and continuous.
Functional systems can be seen as functions with input and output, F : I → O, with a relational view available — compilers being the example; classical software engineering deals with these. Reactive systems aim at maintaining a continuous interaction with their environment, cannot be described functionally or relationally, and have to be specified in terms of their ongoing behaviour — operating systems being the example. A reactive system in a conceptually non-terminating relationship with its environment must continually make decisions that bring about long-term effects.
Perception : E → Per, unchanged; Action : I → Ac, from internal states to actions; and Next : I × Per → I, mapping an internal state and a percept to a new internal state. The internal data structure is typically used to record information about the environment state and history.
Dennett’s term for entities whose behaviour can be predicted by attributing to them belief, desires and rational acumen; later formulated as the strategy of interpreting the behaviour of an entity by treating it as if it were a rational agent governing its choice of action by consideration of its beliefs and desires, with scare quotes acknowledging that standard connotations are set aside in favour of the terms’ role in practical reasoning. The licence for machines is McCarthy’s: ascribing mental qualities to a machine is sometimes correct if done conservatively and sometimes necessary to express what is known about its state, and is useful when it helps us understand the structure of the machine, its past or future behaviour, or how to repair or improve it.
Teleo-reactive / goal-oriented agents are based on their own design model and internal control mechanism; the goal is not explicitly represented in the internal state but is an end state for the agent’s internal state machine. Deliberative / goal-directed agents — also called goal-governed — are based on symbolic reasoning about goals, which are explicitly represented and processed aside the control loop. The example given for the pair: bacteria versus rational humans.
Epistemic reasoning is directed towards knowledge: updating information, replacing information no longer consistent with the world state. Practical reasoning is directed towards actions: figuring out what to do in order to achieve what is desired. It consists of deliberation, deciding what state of affairs to achieve, whose outcome is the intentions; and means-ends reasoning, deciding how to achieve them, whose outcome is the selection of a course of actions.
(1) Intentions pose a problem: the agent must determine how to achieve them, devoting resources to deciding how. (2) They provide a filter for adopting other intentions, which must not conflict. (3) They tend to be stable: agents track their success and are inclined to try again if attempts fail. (4) Agents believe their intentions are possible. (5) Agents do not believe they will not bring about their intentions. (6) Under certain circumstances agents believe they will bring them about — though it would not normally be rational to believe this, since intentions can fail, and it makes no sense to adopt as an intention something believed inevitable. (7) Agents need not intend all the expected side effects of their intentions: intentions are not closed under implication.
If an agent believes that φ implies ψ and intends φ, it does not necessarily intend ψ — intentions are not closed under implication. The example: I may believe that going to the dentist involves pain, and I may intend to go to the dentist, but this does not imply in any way that I intend to suffer pain.
The adoption of an intention follows the rise of a desire, but a desire is merely a potential influencer of conduct, which must live with other relevant desires before it is settled what will be done. Once an intention is adopted, the matter is settled: the agent normally need not continue to weigh the pros and cons and will just proceed to execute [Bratman, 1990].
Deliberation and means-ends reasoning have computational costs, and the time to reason and to act is potentially unbounded, harming the reactivity and promptness essential to the agent. Since the environment is highly dynamic, an intention chosen at t1 was optimal for the world observed at t0, and may no longer be optimal or achievable by the time the agent commits. The behaviour would be optimal only if: deliberation and means-ends reasoning took vanishingly small time; the world remained essentially static while the agent deliberated and reasoned; and an intention optimal at t0 were guaranteed to remain optimal until t2.
Beliefs: the agent’s current knowledge about the world, including information about the environment inferred from perception devices, messages from other agents, and internal information. Desires: a state of the world the agent is trying to achieve. Intentions: the chosen means to achieve the desires, generally implemented as plans and post-conditions; since there may be multiple desires, several intentions may be active at once, thought of as running concurrently with one chosen intention active at any one time.
Not from first principles. All plans are generated by the agent programmer at design time and are selected for execution at run time; pre-programmed plans are collected in the plan library; and the planning done by agents consists entirely of context-sensitive subgoal expansion, deferred until a subgoal is selected for execution. The intention itself is an emergent property, reified at runtime by selecting a given plan for a given goal.
A plan is a language construct, typically a procedural structure, with a body describing the workflow of activities to be carried out, an invocation condition (triggering event) and a context or pre-condition that must hold for the plan to be executable. An intention is represented on-line as a run-time stack of hierarchically related plans tied to the ongoing adopted goals — similarly to how a Prolog interpreter handles clauses — and multiple intention stacks can coexist, running in parallel, suspended until some condition occurs, or ordered for execution.
Philosophical, based on Bratman: humans as planning agents, with beliefs (what is known), desires (what is wanted, and which can be contradictory) and intentions (desires decided upon, which cannot be contradictory). Logical, mainly Rao and Georgeff’s BDI CTL, multimodal logics with possible-world semantics giving the three attitudes a precise semantics. Implementation, the many systems said to conform to BDI, sitting between the expressive logics and running code, treating the modalities as data structures and focusing mostly on plans.