mcpField
R
ReasoningBank with AgentDB

ReasoningBank with AgentDB

github.com/ruvnetエージェントワークフロー80.0k1.1k 回インストール今日更新
リポジトリ

ReasoningBank with AgentDB について

ReasoningBankの学習パターンをAgentDBに接続し、経験から判断を改善するエージェント向けのスキルです。軌跡の評価、記憶の抽出、旧APIとの互換性に対応します。

主な機能

  1. 01エージェントの軌跡と結果の記録
  2. 02軌跡の判定と類似経験の検索
  3. 03経験の統合による記憶パターンの抽出
  4. 04推論モジュールによる記憶の選別と統合
  5. 05旧ReasoningBank APIとの互換性

活用シーン

  1. 01過去の成功パターンを判断に活用
  2. 02特定ドメインの経験を抽出
  3. 03旧ReasoningBankからデータを移行

MCP 対応

READMEにはAgentDB MCPサーバーの起動コマンドがあり、Claude Codeとの連携方法も記載されています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill reasoningbank-with-agentdb

インストール後、Claude Code で/reasoningbank-with-agentdbを入力して読み込まれたか確認します。

詳細

AgentDB による ReasoningBank

このスキルでできること

AgentDB の高性能バックエンド(150 倍~12,500 倍高速)を使用して、ReasoningBank の適応学習パターンを提供します。エージェントが経験から学習し、結果を評価し、記憶を抽出して、100%の後方互換性を維持しながら、時間の経過とともに意思決定を改善できるようにします。

パフォーマンス:パターン検索が 150 倍高速、バッチ処理が 500 倍高速、記憶アクセスが 1 ミリ秒未満です。

前提条件

  • Node.js 18+
  • AgentDB v1.0.7+(agentic-flow 経由)
  • 強化学習の概念に関する理解(任意)

CLI ですぐに使う

ReasoningBank データベースを初期化する
# 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
レガシー ReasoningBank から移行する
# Automatic migration with validation
npx agentdb@latest migrate --source .swarm$memory.db

# Verify migration
npx agentdb@latest stats ./.agentdb$reasoningbank.db

API ですぐに使う

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);

ReasoningBank の主な概念

1. 軌跡の追跡

エージェントの実行経路と結果を追跡します。

// 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. 判定の評価

軌跡が成功したかどうかを判定します。

// 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. 記憶の抽出

類似した経験をパターンに統合します。

// 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(),
});

推論エージェントとの統合

AgentDB は、ReasoningBank を強化する 4 つの推論モジュールを提供します。

1. PatternMatcher

類似した成功パターンを見つけます。

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

複数の記憶から豊富なコンテキストを生成します。

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

自動的に統合し、不要な記憶を削除します。

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

品質と関連性でフィルタリングします。

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}`);
});

レガシー API との互換性

AgentDB は、レガシー ReasoningBank との 100%の後方互換性を維持しています。

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' }
);

パフォーマンス特性

  • パターン検索:150 倍高速(100µs 対 15ms)
  • 記憶の取得:1 ミリ秒未満(キャッシュ使用時)
  • 一括挿入:500 倍高速(パターン 100 件で 2ms 対 1s)
  • 軌跡の判定:5ms 未満(取得と分析を含む)
  • 記憶の抽出:50ms 未満(パターン 100 件を統合)

応用パターン

階層型記憶

抽象度ごとに記憶を整理します。

// 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,
  // ...
});
マルチドメイン学習

ドメインをまたいで転移学習を行います。

// 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 操作

データベース管理
# 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
移行
# 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

トラブルシューティング

問題:移行に失敗する
# Check source database exists
ls -la .swarm$memory.db

# Run with verbose logging
DEBUG=agentdb:* npx agentdb@latest migrate --source .swarm$memory.db
問題:信頼度スコアが低い
// Enable context synthesis for better quality
const result = await rb.retrieveWithReasoning(embedding, {
  synthesizeContext: true,
  useMMR: true,
  k: 10,
});
問題:記憶のサイズが大きくなりすぎる
// Enable automatic optimization
const result = await rb.retrieveWithReasoning(embedding, {
  optimizeMemory: true,  // Consolidates similar patterns
});

// Or manually optimize
await rb.optimize();

詳細情報

  • AgentDB の統合:node_modules$agentic-flow/docs/AGENTDB_INTEGRATION.md
  • GitHub:https:/$github.com$ruvnet$agentic-flow$tree$main$packages$agentdb
  • MCP の統合:npx agentdb@latest mcp
  • ウェブサイト:https:/$agentdb.ruv.io

カテゴリ:機械学習/強化学習 難易度:中級 推定所要時間:20~30 分

コメント