ReasoningBank Intelligence
What This Skill Does
Implements ReasoningBank's adaptive learning system for AI agents to learn from experience, recognize patterns, and optimize strategies over time. Enables meta-cognitive capabilities and continuous improvement.
Prerequisites
-
agentic-flow v1.5.11+
-
AgentDB v1.0.4+ (for persistence)
-
Node.js 18+
Quick Start
import { ReasoningBank } from 'agentic-flow$reasoningbank';
// Initialize ReasoningBank const rb = new ReasoningBank({ persist: true, learningRate: 0.1, adapter: 'agentdb' // Use AgentDB for storage });
// Record task outcome await rb.recordExperience({ task: 'code_review', approach: 'static_analysis_first', outcome: { success: true, metrics: { bugs_found: 5, time_taken: 120, false_positives: 1 } }, context: { language: 'typescript', complexity: 'medium' } });
// Get optimal strategy const strategy = await rb.recommendStrategy('code_review', { language: 'typescript', complexity: 'high' });
Core Features
- Pattern Recognition
// Learn patterns from data await rb.learnPattern({ pattern: 'api_errors_increase_after_deploy', triggers: ['deployment', 'traffic_spike'], actions: ['rollback', 'scale_up'], confidence: 0.85 });
// Match patterns const matches = await rb.matchPatterns(currentSituation);
- Strategy Optimization
// Compare strategies const comparison = await rb.compareStrategies('bug_fixing', [ 'tdd_approach', 'debug_first', 'reproduce_then_fix' ]);
// Get best strategy
const best = comparison.strategies[0];
console.log(Best: ${best.name} (score: ${best.score}));
- Continuous Learning
// Enable auto-learning from all tasks await rb.enableAutoLearning({ threshold: 0.7, // Only learn from high-confidence outcomes updateFrequency: 100 // Update models every 100 experiences });
Advanced Usage
Meta-Learning
// Learn about learning await rb.metaLearn({ observation: 'parallel_execution_faster_for_independent_tasks', confidence: 0.95, applicability: { task_types: ['batch_processing', 'data_transformation'], conditions: ['tasks_independent', 'io_bound'] } });
Transfer Learning
// Apply knowledge from one domain to another await rb.transferKnowledge({ from: 'code_review_javascript', to: 'code_review_typescript', similarity: 0.8 });
Adaptive Agents
// Create self-improving agent class AdaptiveAgent { async execute(task: Task) { // Get optimal strategy const strategy = await rb.recommendStrategy(task.type, task.context);
// Execute with strategy
const result = await this.executeWithStrategy(task, strategy);
// Learn from outcome
await rb.recordExperience({
task: task.type,
approach: strategy.name,
outcome: result,
context: task.context
});
return result;
} }
Integration with AgentDB
// Persist ReasoningBank data await rb.configure({ storage: { type: 'agentdb', options: { database: '.$reasoning-bank.db', enableVectorSearch: true } } });
// Query learned patterns const patterns = await rb.query({ category: 'optimization', minConfidence: 0.8, timeRange: { last: '30d' } });
Performance Metrics
// Track learning effectiveness
const metrics = await rb.getMetrics();
console.log( Total Experiences: ${metrics.totalExperiences} Patterns Learned: ${metrics.patternsLearned} Strategy Success Rate: ${metrics.strategySuccessRate} Improvement Over Time: ${metrics.improvement});
Best Practices
-
Record consistently: Log all task outcomes, not just successes
-
Provide context: Rich context improves pattern matching
-
Set thresholds: Filter low-confidence learnings
-
Review periodically: Audit learned patterns for quality
-
Use vector search: Enable semantic pattern matching
Troubleshooting
Issue: Poor recommendations
Solution: Ensure sufficient training data (100+ experiences per task type)
Issue: Slow pattern matching
Solution: Enable vector indexing in AgentDB
Issue: Memory growing large
Solution: Set TTL for old experiences or enable pruning
Learn More
-
ReasoningBank Guide: agentic-flow$src$reasoningbank/README.md
-
AgentDB Integration: packages$agentdb$docs$reasoningbank.md
-
Pattern Learning: docs$reasoning$patterns.md