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
class MemoryAnalysisTool(BaseTool):
- memory_agent: MemoryAgent - For accessing memory logs
- analysis_categories: Dict - Analysis category definitions
- config: Config - Configuration
analyze_agent_performanceParameters:
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
}
analyze_system_patternsParameters:
days_back (int, optional): Days to analyze (default: 7)Returns: System pattern analysis
identify_improvement_opportunitiesParameters:
focus_area (str, optional): Focus area (default: "all")Returns: Improvement opportunities with priority matrix
generate_self_improvement_reportParameters:
target_agent (str, optional): Target agent (default: "bdi_agent")Returns: Complete improvement report
analyze_agent_collaborationParameters: Varies
Returns: Collaboration analysis
track_evolution_progressParameters: Varies
Returns: Evolution tracking data
analyze_memory_patternsParameters: Varies
Returns: Memory pattern analysis
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 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']}")
# Find improvement opportunities
success, opportunities = await tool.execute(
action="identify_improvement_opportunities",
focus_area="performance"
)
Analyzes operation success rates:
Identifies error patterns:
Tracks performance:
Analyzes improvement over time:
Uses MemoryAgent to access memory logs:
memories = await self._get_agent_memories(agent_id, days_back)
Can be used with:
# 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")
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
_analyze_success_rates(): Calculate success metrics_analyze_error_patterns(): Identify error patterns_analyze_execution_patterns(): Analyze execution_analyze_improvement_trends(): Track improvements