The percept construction is usually done by a process external to the robotic agent, and is often programmed in an imperative language. Each new batch of percept facts is used to update the percept facts in the agent's BS that record sensed properties of the robot's current environment state, properties relevant to its controlling agent's tasks. On each update, percepts that no longer hold are removed and new percepts are added. Percepts that persist from the previous snapshot of the environment state are left in the BS. Keeping only the lastest percepts is sufficient for many applications. However, each time T the BS is updated as well as remembering each new percept as a fact such as open(room1,door2), we can also remember a time stamped meta fact remembered_at(open(room1,door2),T). If in some subsequent percepts update at time T open(room1,door2) is no longer included, the meta fact forgotten_at(open(room1,door2),T) is added and open(room1,door2) is removed. This way the different time intervals in which these key perceptions were once believed is rememberd.
After each such percept update the agent's control program for each active task will determine the appropriate next action to make progress towards, or to maintain the task goal. It may also communicate certain percept updates to other agents, e.g. a mobile robot observing that a door is now closed could broadcast this new belief via a publish/subscribe server.
If the environment is the real world, changes may be brought about by people and acts of nature - such as wind. To an individual agent, these other changes to the environment are exogenous events. They may help or hinder the agent in achieving a task goal. Ideally a task action selection program should be robust to such exogenous events. That is, when the effect of the event has been sensed and reported in a percepts update, the control program should take advantage of any help and recover from any hindrance. This robustness is a key feature of teleo-reactive control.