LangChain Plugin: Memory
FloTorch LangChain Memory services enable persistent memory capabilities for your agents, allowing them to store and retrieve information across sessions. The memory system integrates seamlessly with LangChain’s agent framework and provides long-term persistent storage that exposes a single history string for prompts.
Important: Memory services require prior setup in the FloTorch Console. Memory capabilities are not built-in and must be explicitly configured.
Prerequisites
Section titled “Prerequisites”Before using FloTorch LangChain Memory services, ensure you have completed the general prerequisites outlined in the LangChain Plugin Overview, including installation and environment configuration.
Quick Setup
Section titled “Quick Setup”External Memory Service
Section titled “External Memory Service”from flotorch.langchain.memory import FlotorchLangChainMemory
# Initialize memory service (requires prior registration in FloTorch Console)external_memory = FlotorchLangChainMemory( name="your-memory-provider", api_key="your_api_key", base_url="https://gateway.flotorch.cloud", user_id="user_123", app_id="app_123")Configuration
Section titled “Configuration”Parameters
Section titled “Parameters”Configure your memory service with the following parameters:
FlotorchLangChainMemory( name: str, # Memory provider name (from FloTorch Console) - required api_key: str, # FloTorch API key for authentication (required) base_url: str, # FloTorch Gateway URL (required) user_id: str, # User identifier for memory isolation (required) app_id: str # Application identifier for memory isolation (required))Parameter Details:
name- The name of the memory provider configured in FloTorch Consoleapi_key- Authentication key for accessing FloTorch Gateway (can be set via environment variable)base_url- FloTorch Gateway endpoint URL (can be set via environment variable)user_id- User identifier for isolating memory per userapp_id- Application identifier for isolating memory per application
Features
Section titled “Features”BaseMemory Interface
Section titled “BaseMemory Interface”Fully implements LangChain’s BaseMemory interface:
- Memory Key - Uses
longterm_historyas the memory key - History Management - Persists turns to FloTorch Memory
- Prompt Integration - Exposes a single history string for prompts
- LangChain Compatibility - Works seamlessly with LangChain’s memory framework
Automatic Content Extraction
Section titled “Automatic Content Extraction”Memory service provides automatic content management:
- Content Extraction - Automatically extracts content from LangChain messages
- Turn Persistence - Persists conversation turns to FloTorch Memory
- Metadata Storage - Stores conversations with associated metadata
- History Formatting - Formats history for prompt injection
Search Capabilities
Section titled “Search Capabilities”Provides comprehensive memory search:
- Keyword-Based Search - Performs traditional text-based searches
- User/App Filtering - Filters results by user ID and application name
- Metadata Filtering - Supports custom metadata filtering
- Date Range Queries - Allows filtering by time ranges
Usage Example
Section titled “Usage Example”Basic Memory Setup
Section titled “Basic Memory Setup”from flotorch.langchain.agent import FlotorchLangChainAgentfrom flotorch.langchain.memory import FlotorchLangChainMemoryfrom langchain.agents import AgentExecutor
# Initialize memory serviceexternal_memory = FlotorchLangChainMemory( name="your-memory-provider", api_key="your_api_key", base_url="https://gateway.flotorch.cloud", user_id="user_123", app_id="app_123")
# Initialize agent with memory enabledagent_manager = FlotorchLangChainAgent( agent_name="customer-support", enable_memory=True, # Enables memory placeholders in prompt base_url="https://gateway.flotorch.cloud", api_key="your_api_key")
# Get agent and toolsagent = agent_manager.get_agent()tools = agent_manager.get_tools()
# Use with AgentExecutorexecutor = AgentExecutor( agent=agent, tools=tools, memory=external_memory, verbose=False, handle_parsing_errors=True)Memory Key Access
Section titled “Memory Key Access”from flotorch.langchain.memory import FlotorchLangChainMemory
# Initialize memory serviceexternal_memory = FlotorchLangChainMemory( name="your-memory-provider", api_key="your_api_key", base_url="https://gateway.flotorch.cloud", user_id="user_123", app_id="app_123")
# Access memory keymemory_key = external_memory.memory_key # Returns "longterm_history"
# Load memory variablesmemory_vars = external_memory.load_memory_variables({})print(memory_vars["longterm_history"])Best Practices
Section titled “Best Practices”- Memory Provider Setup - Always configure memory providers in FloTorch Console before using them in code
- User/App Isolation - Use appropriate
user_idandapp_idvalues to isolate memory per user and application - Memory Key - Remember that the memory key is
longterm_historywhen accessing memory variables - Agent Memory Enablement - Set
enable_memory=TrueinFlotorchLangChainAgentto inject memory placeholders in the prompt - Error Handling - Implement proper error handling for memory operations in production environments
- Memory Cleanup - Consider implementing memory cleanup strategies for long-running applications
Next Steps
Section titled “Next Steps”- Agent Configuration - Learn how to configure agents with memory capabilities
- Session Management - Implement session persistence alongside memory
- LLM Configuration - Configure language models for your memory-enabled agents