PowerMem v0.2.0
PowerMem 0.2.0 Release Notes
Release Date: December 16, 2025
We're excited to announce the release of PowerMem 0.2.0! This version introduces powerful new features that enhance AI applications with advanced user profile management and comprehensive multimodal support, enabling more personalized and contextually rich AI experiences.
🎉 What's New
👤 Advanced User Profile Management
PowerMem 0.2.0 introduces the UserMemory feature, providing intelligent user profile extraction and management capabilities that enable AI applications to deliver truly personalized experiences.
Key Features:
-
Automatic Profile Extraction: Automatically extracts user-related information from conversations, including:
- Personal details (name, age, location)
- Professional information (profession, workplace)
- Interests and preferences
- Behavioral patterns
-
Continuous Profile Updates: Profiles are automatically refined and updated as new conversations occur, ensuring the AI system always has the most current understanding of each user.
-
Efficient Profile Storage: User profiles are stored separately from memories, enabling fast retrieval and efficient management of user-specific information.
-
Joint Search Capability: Optionally include user profile information when searching memories, providing richer context for more accurate and personalized responses.
-
Profile Management API: Complete CRUD operations for user profiles, including:
profile()- Retrieve user profilesdelete_profile()- Remove user profiles- Automatic profile extraction via
add()method
Use Cases:
- Personalized Recommendations: Build AI systems that understand user preferences and deliver tailored recommendations
- AI Companionship: Create AI companions that remember and adapt to individual users
- Customer Service: Enable customer service bots that maintain context about each customer's history and preferences
- Personal Assistants: Develop assistants that learn user habits and preferences over time
Example Usage:
from powermem import UserMemory, auto_config
config = auto_config()
user_memory = UserMemory(config=config)
# Add conversation - profile is automatically extracted
conversation = [
{"role": "user", "content": "Hi, I'm Alice. I'm a 28-year-old software engineer from San Francisco."},
{"role": "assistant", "content": "Nice to meet you, Alice!"}
]
result = user_memory.add(
messages=conversation,
user_id="user_001",
agent_id="assistant_agent"
)
# Search with profile for personalized context
results = user_memory.search(
query="user preferences",
user_id="user_001",
add_profile=True # Include profile in results
)Note: UserMemory requires OceanBase as the storage backend.
🎨 Expanded Multimodal Support
PowerMem 0.2.0 significantly expands multimodal capabilities, enabling AI applications to process and remember not just text, but also images and audio content.
Key Features:
-
Image Memory Support:
- Process images from URLs
- Automatic image-to-text description conversion using vision-capable LLM models
- Support for mixed content (text + images)
- Configurable image analysis precision (auto/low/high)
-
Audio Memory Support:
- Process audio files from URLs
- Automatic speech-to-text transcription
- Support for voice messages and audio content
- Integration with ASR (Automatic Speech Recognition) providers
-
Unified Multimodal API:
- Standard OpenAI multimodal message format support
- Seamless handling of text, image, and audio in a single message
- Automatic content type detection and processing
-
Multimodal Retrieval:
- Search across text, image descriptions, and audio transcriptions
- Unified search interface for all content types
- Metadata support for multimodal content
Supported Models:
- Vision Models:
gpt-4o,gpt-4-vision-preview,qwen-vl-plus,qwen-vl-max - Audio ASR:
qwen3-asr-flash(via qwen_asr provider) - Compatible: Any model supporting OpenAI vision API format
Example Usage:
from powermem import Memory
# Configure with multimodal support
config = {
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o",
"enable_vision": True, # Enable vision processing
"vision_details": "auto"
}
},
"audio_llm": {
"provider": "qwen_asr",
"config": {
"model": "qwen3-asr-flash",
"api_key": "your-api-key"
}
}
}
memory = Memory(config=config)
# Add multimodal memory (text + image)
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "This is Bob's favorite workspace"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/workspace.jpg"}
}
]
}
]
result = memory.add(messages=messages, user_id="user123")
# Search across all content types
results = memory.search("Bob's workspace", user_id="user123")📚 Documentation Updates
- New Guide: User Profile Management Guide - Comprehensive guide on using UserMemory
- Enhanced Guide: Multimodal Capability Guide - Updated with audio support and best practices
- API Documentation: Updated API reference with new UserMemory and multimodal methods
🔧 Technical Improvements
- Enhanced memory extraction algorithms for better profile information detection
- Improved multimodal content processing pipeline
- Optimized profile storage and retrieval performance
- Better error handling for multimodal content processing
- Enhanced metadata support for multimodal memories
📦 Installation
Upgrade to PowerMem 0.2.0:
pip install --upgrade powermem🔄 Migration Guide
For User Profile Management
If you're upgrading from 0.1.0 and want to use UserMemory:
- Ensure you're using OceanBase as your storage backend
- Import
UserMemoryinstead ofMemory:from powermem import UserMemory # Instead of Memory
- Use
UserMemorywith the same configuration asMemory - Profiles will be automatically extracted when you add conversations
For Multimodal Support
To enable multimodal capabilities:
- Configure a vision-capable LLM model in your config
- Set
enable_vision: Truein your LLM configuration - For audio support, add
audio_llmconfiguration - Use OpenAI multimodal message format for adding memories
🙏 Acknowledgments
Thank you to all contributors, users, and the community for your feedback and support that made this release possible!
Full Changelog: For detailed changes, please refer to the commit history