Goal
The goal of the timeline is to capture the flow of time.
Each moment of time is represented by a circle, like the one in the image.
Moments of time also contain date information, but it will not be displayed for visual clarity.
Flow of time
Circles are connected with each other, forming a flow of time.
The last circle is always marked as "Now"
Timeline forms a linear graph, where each circle is a node and the lines are edges.
Backbone of experience
When the agent experiences something, the experience is linked to the current moment of time.
This allows the agent to understand the sequence of events, and put them into a context based on the events that happened recently.
Dropping unimportant
Some time nodes might not be linked to any events, they don't have much value to the agent, so we drop them and connect the neighboring nodes instead.
Compressing time
When the time passes we don't care about even granularity as much, so we reduce the granularity of the timeline. Initially it's 1 second, nodes that are older than 5 minutes are aggregated into 1 minute nodes. Nodes that are older than an hour are aggregated into 10 minute nodes. And so on.