Key Concepts#
Memory#
By default, Chains and Agents are stateless, meaning that they treat each incoming query independently. In some applications (chatbots being a GREAT example) it is highly important to remember previous interactions, both at a short term but also at a long term level. The concept of βMemoryβ exists to do exactly that.
Conversational Memory#
One of the simpler forms of memory occurs in chatbots, where they remember previous conversations. There are a few different ways to accomplish this:
Buffer: This is just passing in the past
Ninteractions in as context.Ncan be chosen based on a fixed number, the length of the interactions, or other!Summary: This involves summarizing previous conversations and passing that summary in, instead of the raw dialouge itself. Compared to
Buffer, this compresses information: meaning it is more lossy, but also less likely to run into context length limits.Combination: A combination of the above two approaches, where you compute a summary but also pass in some previous interactions directly!
Entity Memory#
A more complex form of memory is remembering information about specific entities in the conversation. This is a more direct and organized way of remembering information over time. Putting it a more structured form also has the benefit of allowing easy inspection of what is known about specific entities. For a guide on how to use this type of memory, see this notebook.