text: most dissimilar)    # to a similarity function (0 to 1)    return 1.0 - score / math.sqrt(2)def create_new_memory_retriever():    """Create a new vector store retriever unique to the agent."""    # Define your embedding model    embeddings_model = OpenAIEmbeddings()    # Initialize the vectorstore as empty    embedding_size = 1536    index = faiss.IndexFlatL2(embedding_size)    vectorstore = FAISS(        embeddings_model.embed_query,        index,        InMemoryDocstore({}),        {},        relevance_score_fn=relevance_score_fn,    )    return TimeWeightedVectorStoreRetriever(        vectorstore=vectorstore, other_score_keys=["importance"], k=15    )tommies_memory = GenerativeAgentMemory(    llm=LLM,    memory_retriever=create_new_memory_retriever(),    verbose=False,    reflection_threshold=8,  # we will give this a relatively low number to show how reflection works)tommie = GenerativeAgent(    name="Tommie",    age=25,    traits="anxious, likes design, talkative",  # You can add more persistent traits here    status="looking for a job",  # When connected to a virtual world, we can have the characters update their status    memory_retriever=create_new_memory_retriever(),    llm=LLM,    memory=tommies_memory,)# The current "Summary" of a character can't