Conversation Memory
Overview
You can persist and load memory by using Conversation Memory Drivers. You can build drivers for your own data stores by extending BaseConversationMemoryDriver.
Conversation Memory Drivers
Gen AI Builder
The GriptapeCloudConversationMemoryDriver allows you to persist Conversation Memory in Gen AI Builder. It provides seamless integration with Gen AI Builder's cloud-based Threads
and Messages
resources.
import os from griptape.drivers.memory.conversation.griptape_cloud import GriptapeCloudConversationMemoryDriver from griptape.memory.structure import ConversationMemory from griptape.structures import Agent cloud_conversation_driver = GriptapeCloudConversationMemoryDriver( api_key=os.environ["GT_CLOUD_API_KEY"], alias="my_thread_alias", ) agent = Agent(conversation_memory=ConversationMemory(conversation_memory_driver=cloud_conversation_driver)) agent.run("My name is Jeff.") agent.run("What is my name?")
[02/27/25 20:26:45] INFO PromptTask 60d62b3fa90f4c299b286b793b9c972c Input: My name is Jeff. [02/27/25 20:26:47] INFO PromptTask 60d62b3fa90f4c299b286b793b9c972c Output: Hello, Jeff! If there's anything you'd like to discuss or any questions you have, feel free to share. I'm here to help! [02/27/25 20:26:49] INFO PromptTask 60d62b3fa90f4c299b286b793b9c972c Input: What is my name? [02/27/25 20:26:50] INFO PromptTask 60d62b3fa90f4c299b286b793b9c972c Output: Your name is Jeff. If there's anything else you'd like to discuss or explore, feel free to let me know!
Local
The LocalConversationMemoryDriver allows you to persist Conversation Memory in a local JSON file.
from griptape.drivers.memory.conversation.local import LocalConversationMemoryDriver from griptape.memory.structure import ConversationMemory from griptape.structures import Agent local_driver = LocalConversationMemoryDriver(persist_file="memory.json") agent = Agent(conversation_memory=ConversationMemory(conversation_memory_driver=local_driver)) agent.run("Surfing is my favorite sport.") agent.run("What is my favorite sport?")
[02/27/25 20:24:54] INFO PromptTask 77d41348dd384110b71f98a7efcbba54 Input: Surfing is my favorite sport. [02/27/25 20:24:55] INFO PromptTask 77d41348dd384110b71f98a7efcbba54 Output: That's awesome! Surfing is a thrilling and challenging sport that offers a great connection with nature. Whether you're riding the waves for fun or competing, it can be an exhilarating experience. Do you have a favorite surfing spot or any memorable surfing experiences you'd like to share? [02/27/25 20:24:56] INFO PromptTask 77d41348dd384110b71f98a7efcbba54 Input: What is my favorite sport? [02/27/25 20:24:57] INFO PromptTask 77d41348dd384110b71f98a7efcbba54 Output: Your favorite sport is surfing!
Amazon DynamoDb
Info
This driver requires the drivers-memory-conversation-amazon-dynamodb
extra.
The AmazonDynamoDbConversationMemoryDriver allows you to persist Conversation Memory in Amazon DynamoDb.
import os import uuid from griptape.drivers.memory.conversation.amazon_dynamodb import AmazonDynamoDbConversationMemoryDriver from griptape.memory.structure import ConversationMemory from griptape.structures import Agent conversation_id = uuid.uuid4().hex dynamodb_driver = AmazonDynamoDbConversationMemoryDriver( table_name=os.environ["DYNAMODB_TABLE_NAME"], partition_key="id", value_attribute_key="memory", partition_key_value=conversation_id, ) agent = Agent(conversation_memory=ConversationMemory(conversation_memory_driver=dynamodb_driver)) agent.run("My name is Jeff.") agent.run("What is my name?")
[02/27/25 20:23:05] INFO PromptTask 34167b4190a94c23aa10895f75f400ec Input: My name is Jeff. [02/27/25 20:23:06] INFO PromptTask 34167b4190a94c23aa10895f75f400ec Output: Hello, Jeff! How can I assist you today? [02/27/25 20:23:07] INFO PromptTask 34167b4190a94c23aa10895f75f400ec Input: What is my name? [02/27/25 20:23:10] INFO PromptTask 34167b4190a94c23aa10895f75f400ec Output: Your name is Jeff.
Optional parameters sort_key
and sort_key_value
can be supplied for tables with a composite primary key.
Redis
Info
This driver requires the drivers-memory-conversation-redis
extra.
The RedisConversationMemoryDriver allows you to persist Conversation Memory in Redis.
import os import uuid from griptape.drivers.memory.conversation.redis import RedisConversationMemoryDriver from griptape.memory.structure import ConversationMemory from griptape.structures import Agent conversation_id = uuid.uuid4().hex redis_conversation_driver = RedisConversationMemoryDriver( host=os.environ["REDIS_HOST"], port=int(os.environ["REDIS_PORT"]), username=os.environ["REDIS_USERNAME"], password=os.environ["REDIS_PASSWORD"], index=os.environ["REDIS_INDEX"], conversation_id=conversation_id, ) agent = Agent(conversation_memory=ConversationMemory(conversation_memory_driver=redis_conversation_driver)) agent.run("My name is Jeff.") agent.run("What is my name?")
[02/27/25 20:26:33] INFO PromptTask af6050aa04784fc8b95083c25f7fd573 Input: My name is Jeff. [02/27/25 20:26:34] INFO PromptTask af6050aa04784fc8b95083c25f7fd573 Output: Hello, Jeff! How can I assist you today? [02/27/25 20:26:35] INFO PromptTask af6050aa04784fc8b95083c25f7fd573 Input: What is my name? [02/27/25 20:26:36] INFO PromptTask af6050aa04784fc8b95083c25f7fd573 Output: Your name is Jeff.
- On this page
- Overview
- Conversation Memory Drivers
Could this page be better? Report a problem or suggest an addition!