We use a key-value store to track entity facts over time. For new input, we:
#1
: extract entities from user input
#2
: get existing entity summaries from the store
#3
: inject them into the conversational prompt to inform the response
#4
: update summaries with any new info.