memory_analysis_tool.md · 6.8 KB

Memory Analysis Tool Documentation

Overview

The MemoryAnalysisTool provides comprehensive analysis of agent memory logs to identify patterns, performance metrics, and improvement opportunities. It enables mindX to perform self-improvement through data-driven analysis of its own behavior.

File: tools/memory_analysis_tool.py Class: MemoryAnalysisTool Version: 1.0.0 Status: ✅ Active

Architecture

Design Principles

  • Comprehensive Analysis: Multiple analysis categories and perspectives
  • Pattern Recognition: Identifies patterns in agent behavior
  • Performance Tracking: Monitors success rates and execution times
  • Self-Improvement: Identifies opportunities for system improvement
  • Data-Driven: Based on actual memory logs and execution data
  • Core Components

    class MemoryAnalysisTool(BaseTool):
        - memory_agent: MemoryAgent - For accessing memory logs
        - analysis_categories: Dict - Analysis category definitions
        - config: Config - Configuration
    

    Available Actions

    1. analyze_agent_performance

    Analyzes performance metrics for specific agent or all agents.

    Parameters:

  • agent_id (str, optional): Specific agent to analyze (default: all)
  • days_back (int, optional): Days to analyze (default: 7)
  • Returns:

    {
        "timestamp": str,
        "analysis_type": "agent_performance",
        "days_back": int,
        "agents_analyzed": List[Dict],
        "aggregate_insights": Dict
    }
    

    2. analyze_system_patterns

    Analyzes system-wide patterns and interactions.

    Parameters:

  • days_back (int, optional): Days to analyze (default: 7)
  • Returns: System pattern analysis

    3. identify_improvement_opportunities

    Identifies specific improvement opportunities.

    Parameters:

  • focus_area (str, optional): Focus area (default: "all")
  • Returns: Improvement opportunities with priority matrix

    4. generate_self_improvement_report

    Generates comprehensive self-improvement report.

    Parameters:

  • target_agent (str, optional): Target agent (default: "bdi_agent")
  • Returns: Complete improvement report

    5. analyze_agent_collaboration

    Analyzes collaboration patterns between agents.

    Parameters: Varies

    Returns: Collaboration analysis

    6. track_evolution_progress

    Tracks evolution and improvement progress.

    Parameters: Varies

    Returns: Evolution tracking data

    7. analyze_memory_patterns

    Analyzes memory usage patterns.

    Parameters: Varies

    Returns: Memory pattern analysis

    Usage

    Analyze Agent Performance

    from tools.memory_analysis_tool import MemoryAnalysisTool
    from agents.memory_agent import MemoryAgent

    tool = MemoryAnalysisTool(memory_agent=memory_agent)

    Analyze specific agent

    success, result = await tool.execute( action="analyze_agent_performance", agent_id="bdi_agent_mastermind", days_back=30 )

    Analyze all agents

    success, result = await tool.execute( action="analyze_agent_performance", days_back=7 )

    Generate Improvement Report

    # Generate comprehensive report
    success, report = await tool.execute(
        action="generate_self_improvement_report",
        target_agent="bdi_agent"
    )

    if success: print(f"Executive Summary: {report['executive_summary']}") print(f"Recommendations: {report['recommendations']}")

    Identify Opportunities

    # Find improvement opportunities
    success, opportunities = await tool.execute(
        action="identify_improvement_opportunities",
        focus_area="performance"
    )
    

    Analysis Categories

    Performance

  • Success rates
  • Execution times
  • Error patterns
  • Behavior

  • Decision patterns
  • Goal completion
  • Tool usage
  • Collaboration

  • Agent interactions
  • Coordination patterns
  • Communication efficiency
  • Evolution

  • Improvement trends
  • Capability growth
  • Adaptation patterns
  • System Health

  • Resource usage
  • Error frequency
  • Recovery patterns
  • Features

    1. Success Rate Analysis

    Analyzes operation success rates:

  • Overall success rate
  • Success by process type
  • Failure reasons
  • Trend analysis
  • 2. Error Pattern Detection

    Identifies error patterns:

  • Error frequency
  • Error categories
  • Error trends
  • Common error sequences
  • Recovery patterns
  • 3. Performance Metrics

    Tracks performance:

  • Execution times
  • Operation frequency
  • Time distribution
  • Process sequences
  • 4. Improvement Trends

    Analyzes improvement over time:

  • Success rate trends
  • Error reduction
  • Capability improvements
  • Learning indicators
  • Limitations

    Current Limitations

  • Placeholder Methods: Many analysis methods are placeholders
  • Limited Historical Data: Basic historical analysis only
  • No Predictive Analysis: Doesn't predict future issues
  • Single System: Analyzes single system only
  • No Real-Time: Analysis is retrospective
  • Recommended Improvements

  • Implement Placeholders: Complete all analysis methods
  • Historical Database: Store metrics over time
  • Predictive Models: ML-based predictions
  • Real-Time Analysis: Live analysis capabilities
  • Cross-System: Analyze multiple systems
  • Visualization: Charts and graphs
  • Automated Actions: Auto-apply improvements
  • Integration

    With Memory Agent

    Uses MemoryAgent to access memory logs:

    memories = await self._get_agent_memories(agent_id, days_back)
    

    With Other Tools

    Can be used with:

  • System Health Tool: Correlate health with performance
  • Strategic Analysis Tool: Include in strategic decisions
  • Audit and Improve Tool: Guide improvement efforts
  • Examples

    Complete Analysis Workflow

    # 1. Analyze performance
    success, perf = await tool.execute("analyze_agent_performance", days_back=30)

    2. Identify opportunities

    success, opps = await tool.execute("identify_improvement_opportunities")

    3. Generate report

    success, report = await tool.execute("generate_self_improvement_report")

    Technical Details

    Memory Access

    Reads from MemoryAgent STM (Short-Term Memory):

    stm_path = self.memory_agent.stm_path / agent_id
    for day_dir in stm_path.iterdir():
        for memory_file in day_dir.glob("*.memory.json"):
            # Load and analyze memory
    

    Analysis Methods

  • _analyze_success_rates(): Calculate success metrics
  • _analyze_error_patterns(): Identify error patterns
  • _analyze_execution_patterns(): Analyze execution
  • _analyze_improvement_trends(): Track improvements
  • Future Enhancements

  • Complete Implementation: Implement all placeholder methods
  • Historical Database: Long-term metric storage
  • ML Integration: Machine learning for predictions
  • Real-Time Dashboard: Live analysis visualization
  • Automated Improvements: Auto-apply identified improvements
  • Cross-Agent Analysis: Analyze agent interactions
  • Benchmarking: Compare against benchmarks

  • All DocumentsDocument IndexThe Book of mindXImprovement JournalAPI Reference