ReasoningBank with AgentDB について
ReasoningBankの学習パターンをAgentDBに接続し、経験から判断を改善するエージェント向けのスキルです。軌跡の評価、記憶の抽出、旧APIとの互換性に対応します。
主な機能
- 01エージェントの軌跡と結果の記録
- 02軌跡の判定と類似経験の検索
- 03経験の統合による記憶パターンの抽出
- 04推論モジュールによる記憶の選別と統合
- 05旧ReasoningBank APIとの互換性
活用シーン
- 01過去の成功パターンを判断に活用
- 02特定ドメインの経験を抽出
- 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 分
コメント
Markdown 対応