--- name: "ReasoningBank with AgentDB" description: "Implement ReasoningBank adaptive learning with AgentDB's 150x faster vector database. Includes trajectory tracking, verdict judgment, memory distillation, and pattern recognition. Use when building self-learning agents, optimizing decision-making, or implementing experience replay systems." --- # ReasoningBank with AgentDB ## What This Skill Does Provides ReasoningBank adaptive learning patterns using AgentDB's high-performance backend (150x-12,500x faster). Enables agents to learn from experiences, judge outcomes, distill memories, and improve decision-making over time with 100% backward compatibility. **Performance**: 150x faster pattern retrieval, 500x faster batch operations, <1ms memory access. ## Prerequisites - Node.js 18+ - AgentDB v1.0.7+ (via agentic-flow) - Understanding of reinforcement learning concepts (optional) --- ## Quick Start with CLI ### Initialize ReasoningBank Database ```bash # Initialize AgentDB for ReasoningBank npx agentdb@latest init ./.agentdb/reasoningbank.db --dimension 1536 # Start MCP server for Claude Code integration npx agentdb@latest mcp claude mcp add agentdb npx agentdb@latest mcp ``` ### Migrate from Legacy ReasoningBank ```bash # Automatic migration with validation npx agentdb@latest migrate --source .swarm/memory.db # Verify migration npx agentdb@latest stats ./.agentdb/reasoningbank.db ``` --- ## Quick Start with API ```typescript import { createAgentDBAdapter, computeEmbedding } from 'agentic-flow/reasoningbank'; // Initialize ReasoningBank with AgentDB const rb = await createAgentDBAdapter({ dbPath: '.agentdb/reasoningbank.db', enableLearning: true, // Enable learning plugins enableReasoning: true, // Enable reasoning agents cacheSize: 1000, // 1000 pattern cache }); // Store successful experience const query = "How to optimize database queries?"; const embedding = await computeEmbedding(query); await rb.insertPattern({ id: '', type: 'experience', domain: 'database-optimization', pattern_data: JSON.stringify({ embedding, pattern: { query, approach: 'indexing + query optimization', outcome: 'success', metrics: { latency_reduction: 0.85 } } }), confidence: 0.95, usage_count: 1, success_count: 1, created_at: Date.now(), last_used: Date.now(), }); // Retrieve similar experiences with reasoning const result = await rb.retrieveWithReasoning(embedding, { domain: 'database-optimization', k: 5, useMMR: true, // Diverse results synthesizeContext: true, // Rich context synthesis }); console.log('Memories:', result.memories); console.log('Context:', result.context); console.log('Patterns:', result.patterns); ``` --- ## Core ReasoningBank Concepts ### 1. Trajectory Tracking Track agent execution paths and outcomes: ```typescript // Record trajectory (sequence of actions) const trajectory = { task: 'optimize-api-endpoint', steps: [ { action: 'analyze-bottleneck', result: 'found N+1 query' }, { action: 'add-eager-loading', result: 'reduced queries' }, { action: 'add-caching', result: 'improved latency' } ], outcome: 'success', metrics: { latency_before: 2500, latency_after: 150 } }; const embedding = await computeEmbedding(JSON.stringify(trajectory)); await rb.insertPattern({ id: '', type: 'trajectory', domain: 'api-optimization', pattern_data: JSON.stringify({ embedding, pattern: trajectory }), confidence: 0.9, usage_count: 1, success_count: 1, created_at: Date.now(), last_used: Date.now(), }); ``` ### 2. Verdict Judgment Judge whether a trajectory was successful: ```typescript // Retrieve similar past trajectories const similar = await rb.retrieveWithReasoning(queryEmbedding, { domain: 'api-optimization', k: 10, }); // Judge based on similarity to successful patterns const verdict = similar.memories.filter(m => m.pattern.outcome === 'success' && m.similarity > 0.8 ).length > 5 ? 'likely_success' : 'needs_review'; console.log('Verdict:', verdict); console.log('Confidence:', similar.memories[0]?.similarity || 0); ``` ### 3. Memory Distillation Consolidate similar experiences into patterns: ```typescript // Get all experiences in domain const experiences = await rb.retrieveWithReasoning(embedding, { domain: 'api-optimization', k: 100, optimizeMemory: true, // Automatic consolidation }); // Distill into high-level pattern const distilledPattern = { domain: 'api-optimization', pattern: 'For N+1 queries: add eager loading, then cache', success_rate: 0.92, sample_size: experiences.memories.length, confidence: 0.95 }; await rb.insertPattern({ id: '', type: 'distilled-pattern', domain: 'api-optimization', pattern_data: JSON.stringify({ embedding: await computeEmbedding(JSON.stringify(distilledPattern)), pattern: distilledPattern }), confidence: 0.95, usage_count: 0, success_count: 0, created_at: Date.now(), last_used: Date.now(), }); ``` --- ## Integration with Reasoning Agents AgentDB provides 4 reasoning modules that enhance ReasoningBank: ### 1. PatternMatcher Find similar successful patterns: ```typescript const result = await rb.retrieveWithReasoning(queryEmbedding, { domain: 'problem-solving', k: 10, useMMR: true, // Maximal Marginal Relevance for diversity }); // PatternMatcher returns diverse, relevant memories result.memories.forEach(mem => { console.log(`Pattern: ${mem.pattern.approach}`); console.log(`Similarity: ${mem.similarity}`); console.log(`Success Rate: ${mem.success_count / mem.usage_count}`); }); ``` ### 2. ContextSynthesizer Generate rich context from multiple memories: ```typescript const result = await rb.retrieveWithReasoning(queryEmbedding, { domain: 'code-optimization', synthesizeContext: true, // Enable context synthesis k: 5, }); // ContextSynthesizer creates coherent narrative console.log('Synthesized Context:', result.context); // "Based on 5 similar optimizations, the most effective approach // involves profiling, identifying bottlenecks, and applying targeted // improvements. Success rate: 87%" ``` ### 3. MemoryOptimizer Automatically consolidate and prune: ```typescript const result = await rb.retrieveWithReasoning(queryEmbedding, { domain: 'testing', optimizeMemory: true, // Enable automatic optimization }); // MemoryOptimizer consolidates similar patterns and prunes low-quality console.log('Optimizations:', result.optimizations); // { consolidated: 15, pruned: 3, improved_quality: 0.12 } ``` ### 4. ExperienceCurator Filter by quality and relevance: ```typescript const result = await rb.retrieveWithReasoning(queryEmbedding, { domain: 'debugging', k: 20, minConfidence: 0.8, // Only high-confidence experiences }); // ExperienceCurator returns only quality experiences result.memories.forEach(mem => { console.log(`Confidence: ${mem.confidence}`); console.log(`Success Rate: ${mem.success_count / mem.usage_count}`); }); ``` --- ## Legacy API Compatibility AgentDB maintains 100% backward compatibility with legacy ReasoningBank: ```typescript import { retrieveMemories, judgeTrajectory, distillMemories } from 'agentic-flow/reasoningbank'; // Legacy API works unchanged (uses AgentDB backend automatically) const memories = await retrieveMemories(query, { domain: 'code-generation', agent: 'coder' }); const verdict = await judgeTrajectory(trajectory, query); const newMemories = await distillMemories( trajectory, verdict, query, { domain: 'code-generation' } ); ``` --- ## Performance Characteristics - **Pattern Search**: 150x faster (100µs vs 15ms) - **Memory Retrieval**: <1ms (with cache) - **Batch Insert**: 500x faster (2ms vs 1s for 100 patterns) - **Trajectory Judgment**: <5ms (including retrieval + analysis) - **Memory Distillation**: <50ms (consolidate 100 patterns) --- ## Advanced Patterns ### Hierarchical Memory Organize memories by abstraction level: ```typescript // Low-level: Specific implementation await rb.insertPattern({ type: 'concrete', domain: 'debugging/null-pointer', pattern_data: JSON.stringify({ embedding, pattern: { bug: 'NPE in UserService.getUser()', fix: 'Add null check' } }), confidence: 0.9, // ... }); // Mid-level: Pattern across similar cases await rb.insertPattern({ type: 'pattern', domain: 'debugging', pattern_data: JSON.stringify({ embedding, pattern: { category: 'null-pointer', approach: 'defensive-checks' } }), confidence: 0.85, // ... }); // High-level: General principle await rb.insertPattern({ type: 'principle', domain: 'software-engineering', pattern_data: JSON.stringify({ embedding, pattern: { principle: 'fail-fast with clear errors' } }), confidence: 0.95, // ... }); ``` ### Multi-Domain Learning Transfer learning across domains: ```typescript // Learn from backend optimization const backendExperience = await rb.retrieveWithReasoning(embedding, { domain: 'backend-optimization', k: 10, }); // Apply to frontend optimization const transferredKnowledge = backendExperience.memories.map(mem => ({ ...mem, domain: 'frontend-optimization', adapted: true, })); ``` --- ## CLI Operations ### Database Management ```bash # Export trajectories and patterns npx agentdb@latest export ./.agentdb/reasoningbank.db ./backup.json # Import experiences npx agentdb@latest import ./experiences.json # Get statistics npx agentdb@latest stats ./.agentdb/reasoningbank.db # Shows: total patterns, domains, confidence distribution ``` ### Migration ```bash # Migrate from legacy ReasoningBank npx agentdb@latest migrate --source .swarm/memory.db --target .agentdb/reasoningbank.db # Validate migration npx agentdb@latest stats .agentdb/reasoningbank.db ``` --- ## Troubleshooting ### Issue: Migration fails ```bash # Check source database exists ls -la .swarm/memory.db # Run with verbose logging DEBUG=agentdb:* npx agentdb@latest migrate --source .swarm/memory.db ``` ### Issue: Low confidence scores ```typescript // Enable context synthesis for better quality const result = await rb.retrieveWithReasoning(embedding, { synthesizeContext: true, useMMR: true, k: 10, }); ``` ### Issue: Memory growing too large ```typescript // Enable automatic optimization const result = await rb.retrieveWithReasoning(embedding, { optimizeMemory: true, // Consolidates similar patterns }); // Or manually optimize await rb.optimize(); ``` --- ## Learn More - **AgentDB Integration**: node_modules/agentic-flow/docs/AGENTDB_INTEGRATION.md - **GitHub**: https://github.com/ruvnet/agentic-flow/tree/main/packages/agentdb - **MCP Integration**: `npx agentdb@latest mcp` - **Website**: https://agentdb.ruv.io --- **Category**: Machine Learning / Reinforcement Learning **Difficulty**: Intermediate **Estimated Time**: 20-30 minutes