Programming with cognitive states: Different from most other programming languages, GOAL supports programming at the knowledge level. Programming an agent means to program with the cognitive state of that agent, which consists of its declarative knowledge, beliefs and goals.
Agents use a knowledge representation language (a symbolic, logical language) to represent the information they have, and their beliefs or knowledge about the environment they act upon in order to achieve their goals.
Agents may have multiple goals that specify what the agent wants to achieve at some moment in the near or distant future. Declarative goals specify a state of the environment that the agent wants to establish, they do not specify actions or procedures how to achieve such states.
Agents commit to their goals and drop goals only when they have been achieved. This commitment strategy, called a blind commitment strategy, is the default strategy used by GOAL agents. Agents do not have goals that they believe have already been achieved, a constraint which has been built into GOAL agents by dropping a goal when it has been completely achieved.
The type of knowledge representation language is not fixed by GOAL but, in principle, may be varied according to the needs of the programmer.
Programming decision strategies: Programming an agent means to code a strategy or policy for action selection. Agents use decision rules to select actions, based on their beliefs and goals. The type of decision making supported in GOAL is based on human common sense decision making, as humans also decide and explain their choice of action by citing their beliefs and goals.
Modules, Learning, and Planning: Decision rules are grouped together in a module which itself can be viewed as a kind of action that the agent can choose to perform. Modules allow for adding hierarchical structure to an agent program and to encapsulate decision logic in re-usable modules. This way agents can focus their attention and put all their efforts on achieving a subset of their goals, using a subset of their actions, and using only knowledge relevant to achieving those goals. The decision making of an agent can be under-specified, which means that the agent's decision making does not always select a single action but sometimes will yield multiple actions that can be performed. This under-specifies the behavior of the agent, which can be exploited by a learning mechanism that optimizes the behavior of an agent. Decision rules may also be used to guide a planner that uses the action specifications that are part of the agent program to construct a plan of action.
Communication at the knowledge level: Agents communicate with each other to exchange information, and to coordinate their actions. GOAL agents communicate using the knowledge representation language that is also used to represent their beliefs and goals.