# ReasoningBank with AgentDB > Implementa el aprendizaje adaptativo de ReasoningBank con la base de datos vectorial de AgentDB, 150x más rápida. Incluye seguimiento de trayectorias, veredictos y destilación de memoria. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/reasoningbank-with-agentdb Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/reasoningbank-with-agentdb.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: hace 6 meses Coste de contexto: 73 tok instalada, 2.7k tok al activarse, 2.7k tok con todos los archivos del bundle Bundle: 1 archivo, 11 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill reasoningbank-agentdb --agent cline ``` ## Qué hace - Implementa ReasoningBank con AgentDB para aprendizaje adaptativo hasta 150x-12.500x más rápido. - Rastrea trayectorias de ejecución de agentes y emite veredictos de éxito o fracaso. - Destila experiencias similares en patrones de alto nivel organizados en memoria jerárquica. - Mantiene compatibilidad total con la API legacy de ReasoningBank. ## Cuándo usarla - Construyes agentes con aprendizaje autónomo (self-learning). - Necesitas optimizar la toma de decisiones basada en experiencias pasadas. - Vas a implementar un sistema de experience replay. ## Qué la activa - "Inicializa la base de datos ReasoningBank con AgentDB" - "Migra mi ReasoningBank legacy a AgentDB" - "Recupera experiencias similares para optimizar consultas de base de datos" ## Antes de instalar - Requiere Node.js 18+ y AgentDB v1.0.7+ (vía agentic-flow). - Necesita en el PATH: npx ## Archivos - SKILL.md — 11 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. # 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 ## Dónde encaja - Categoría: [Bases de datos](https://skillsagentes.com/categorias/bases-de-datos.md) — Diseño de esquemas, migraciones y optimización de consultas. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)