In addition, the UIA needs to have knowledge about when different actions are to be performed. This requires knowledge about time and its passage.
Since an agent's knowledge can change (either because of connecting to a new TOS or because of the dynamic nature of the environment), the knowledge base of the agent should be easily modifiable, so that new information can be added and existing information can be updated or deleted relatively quickly.
The agent has to perform theoretical reasoning directed towards determining the beliefs of the agent as well as practical reasoning [Dav01,Woo00] that is directed towards determining the actions that the agent can perform. Theoretical reasoning involves creating new beliefs based on the current beliefs, as in deriving the new belief ``Water is warm'', from the beliefs ``The temperature of water is '' and ``Any water with temperature between and is warm''. On the other hand, practical reasoning involves deciding what desires are to be pursued and how to pursue them.
By reasoning with its knowledge, the agent has to interpret each user instruction and then translate it into appropriate UIA actions. For instance, if a user instruction is ``Switch on the heater whenever the pool temperature drops below '', then using its reasoning capability, an agent should be able to send ``READ TEMPERATURE'' periodically and issue ``HEAT POOL'' command at appropriate times without any further intervention from the user.