Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Sounds like flags would be a good way to go about it. Each interesting action (experience) needs its own flag. It is raised when the character performs the action. Every NPC has a subset of actions flagged as interesting to them, and has a certain action attached. When the character has raised a flag, it will appear on their dialogue options. The harder question is how to add some dialogue options they are actually not interested in, you cannot add all experiences the character has had or players will quickly tire of scrolling through miles of options.