# Conversation Summarization & Pruning Manages conversation history by summarizing long conversations and enforcing retention policies. ## Features - **Automatic Summarization**: Summarize conversations when they exceed size limits - **Message Pruning**: Keep recent messages, summarize older ones - **Retention Policies**: Automatic deletion of old conversations - **Privacy Controls**: User can delete specific sessions ## Usage ### Summarization ```python from conversation.summarization.summarizer import get_summarizer summarizer = get_summarizer() # Check if summarization needed messages = session.get_messages() if summarizer.should_summarize(len(messages), total_tokens=5000): summary = summarizer.summarize(messages, agent_type="family") # Prune messages, keeping recent ones pruned = summarizer.prune_messages( messages, keep_recent=10, summary=summary ) # Update session with pruned messages session.update_messages(pruned) ``` ### Retention ```python from conversation.summarization.retention import get_retention_manager retention = get_retention_manager() # List old sessions old_sessions = retention.list_old_sessions() # Delete specific session retention.delete_session("session-123") # Clean up old sessions (if auto_delete enabled) deleted_count = retention.cleanup_old_sessions() # Enforce maximum session limit deleted_count = retention.enforce_max_sessions() ``` ## Configuration ### Summarization Thresholds - **Max Messages**: 20 messages (default) - **Max Tokens**: 4000 tokens (default) - **Keep Recent**: 10 messages when pruning ### Retention Policy - **Max Age**: 90 days (default) - **Max Sessions**: 1000 sessions (default) - **Auto Delete**: False (default) - manual cleanup required ## Integration ### With Session Manager The session manager should check for summarization when: - Adding new messages - Retrieving session for use - Before saving session ### With LLM Summarization uses LLM to create concise summaries that preserve: - Important facts and information - Decisions made or actions taken - User preferences or requests - Tasks or reminders created - Key context for future conversations ## Privacy - Users can delete specific sessions - Automatic cleanup respects retention policy - Summaries preserve context but reduce verbosity - No external storage - all local ## Future Enhancements - LLM integration for better summaries - Semantic search over conversation history - Export conversations before deletion - Configurable retention per session type - Conversation analytics