Semantic Kernel uses memories to enable intelligent AI agents to recall relevant information from past interactions and provide context-aware responses.
Memories help agents learn from experience, personalize their behavior, and provide intelligent and consistent user experiences.
There are two types of memory storage mechanisms in Semantic Kernel: volatile memory and non-volatile memory.
Semantic Memory, which is a library within the Semantic Kernel SDK, and Kernel Memory, a service that can run in the background, are the two ways to store agentic memory in Semantic Kernel.
Semantic Memory is not a deployable service, whereas Kernel Memory is a deployable service, making it a more reasonable option for building an enterprise-grade solution.
Volatile memory holds data for the duration of an interaction, whereas non-volatile memory is stored long-term and can be accessed across different sessions.
Kernel Memory combines multiple types of memories to manage context and state within an application, making it more a more comprehensive memory management layer than Semantic Memory.
The fundamental difference between Semantic Memory and Kernel Memory is that the former operates as a library within Semantic Kernel and the latter as a deployable service.
The comparison table included in the article can help you decide which memory storage mechanism to opt for based on your requirements.
Creating a simple implementation of Semantic Memory involves creating a new memory system, choosing a text embedding model and memory storage mechanism, and adding contents to the memory store.