AgentDB Memory Patterns について
AgentDB Memory Patterns は、AgentDB と ReasoningBank を使って AI エージェントに永続メモリと学習パターンを加えるスキルです。メモリの保存、検索、整理、ベクトル検索、MCP サーバーの起動を扱います。
主な機能
- 01セッションおよび長期メモリのパターン
- 02ベクトル検索とデータベースクエリ
- 03メモリの統合と整理
- 04ReasoningBank の移行と連携
- 05学習プラグインと推論モジュール
- 06CLI によるインポート、エクスポート、統計
活用シーン
- 01セッションをまたいで会話コンテキストを保持
- 02事実や成功した対話パターンを保存
- 03エージェントのメモリを検索して整理
- 04MCP コマンド経由で AgentDB を提供
MCP 対応
README では `npx agentdb@latest mcp` による AgentDB MCP サーバーの起動と Claude Code への追加を説明しています。公開するツールやリソースの詳細は記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruview --skill agentdb-memory-patternsインストール後、Claude Code で/agentdb-memory-patternsを入力して読み込まれたか確認します。
詳細
AgentDB メモリパターン
このスキルでできること
AgentDB の永続ストレージと ReasoningBank 連携を使用した、AI エージェント向けのメモリ管理パターンを提供します。エージェントは会話を記憶し、やり取りから学習し、セッションをまたいでコンテキストを維持できます。
パフォーマンス:従来のソリューションより 150~12,500 倍高速で、100%の後方互換性を備えています。
前提条件
- Node.js 18+
- AgentDB v1.0.7+(agentic-flow 経由またはスタンドアロン)
- エージェントアーキテクチャに関する知識
CLI でのクイックスタート
AgentDB を初期化する
# Initialize vector database
npx agentdb@latest init ./agents.db
# Or with custom dimensions
npx agentdb@latest init ./agents.db --dimension 768
# Use preset configurations
npx agentdb@latest init ./agents.db --preset large
# In-memory database for testing
npx agentdb@latest init ./memory.db --in-memory
Claude Code 用 MCP サーバーを起動する
# Start MCP server (integrates with Claude Code)
npx agentdb@latest mcp
# Add to Claude Code (one-time setup)
claude mcp add agentdb npx agentdb@latest mcp
学習プラグインを作成する
# Interactive plugin wizard
npx agentdb@latest create-plugin
# Use template directly
npx agentdb@latest create-plugin -t decision-transformer -n my-agent
# Available templates:
# - decision-transformer (sequence modeling RL)
# - q-learning (value-based learning)
# - sarsa (on-policy TD learning)
# - actor-critic (policy gradient)
# - curiosity-driven (exploration-based)
API でのクイックスタート
import { createAgentDBAdapter } from 'agentic-flow/reasoningbank';
// Initialize with default configuration
const adapter = await createAgentDBAdapter({
dbPath: '.agentdb/reasoningbank.db',
enableLearning: true, // Enable learning plugins
enableReasoning: true, // Enable reasoning agents
quantizationType: 'scalar', // binary | scalar | product | none
cacheSize: 1000, // In-memory cache
});
// Store interaction memory
const patternId = await adapter.insertPattern({
id: '',
type: 'pattern',
domain: 'conversation',
pattern_data: JSON.stringify({
embedding: await computeEmbedding('What is the capital of France?'),
pattern: {
user: 'What is the capital of France?',
assistant: 'The capital of France is Paris.',
timestamp: Date.now()
}
}),
confidence: 0.95,
usage_count: 1,
success_count: 1,
created_at: Date.now(),
last_used: Date.now(),
});
// Retrieve context with reasoning
const context = await adapter.retrieveWithReasoning(queryEmbedding, {
domain: 'conversation',
k: 10,
useMMR: true, // Maximal Marginal Relevance
synthesizeContext: true, // Generate rich context
});
メモリパターン
1. セッションメモリ
class SessionMemory {
async storeMessage(role: string, content: string) {
return await db.storeMemory({
sessionId: this.sessionId,
role,
content,
timestamp: Date.now()
});
}
async getSessionHistory(limit = 20) {
return await db.query({
filters: { sessionId: this.sessionId },
orderBy: 'timestamp',
limit
});
}
}
2. 長期メモリ
// Store important facts
await db.storeFact({
category: 'user_preference',
key: 'language',
value: 'English',
confidence: 1.0,
source: 'explicit'
});
// Retrieve facts
const prefs = await db.getFacts({
category: 'user_preference'
});
3. パターン学習
// Learn from successful interactions
await db.storePattern({
trigger: 'user_asks_time',
response: 'provide_formatted_time',
success: true,
context: { timezone: 'UTC' }
});
// Apply learned patterns
const pattern = await db.matchPattern(currentContext);
高度なパターン
階層型メモリ
// Organize memory in hierarchy
await memory.organize({
immediate: recentMessages, // Last 10 messages
shortTerm: sessionContext, // Current session
longTerm: importantFacts, // Persistent facts
semantic: embeddedKnowledge // Vector search
});
メモリの統合
// Periodically consolidate memories
await memory.consolidate({
strategy: 'importance', // Keep important memories
maxSize: 10000, // Size limit
minScore: 0.5 // Relevance threshold
});
CLI 操作
データベースのクエリ
# Query with vector embedding
npx agentdb@latest query ./agents.db "[0.1,0.2,0.3,...]"
# Top-k results
npx agentdb@latest query ./agents.db "[0.1,0.2,0.3]" -k 10
# With similarity threshold
npx agentdb@latest query ./agents.db "0.1 0.2 0.3" -t 0.75
# JSON output
npx agentdb@latest query ./agents.db "[...]" -f json
データのインポート/エクスポート
# Export vectors to file
npx agentdb@latest export ./agents.db ./backup.json
# Import vectors from file
npx agentdb@latest import ./backup.json
# Get database statistics
npx agentdb@latest stats ./agents.db
パフォーマンスベンチマーク
# Run performance benchmarks
npx agentdb@latest benchmark
# Results show:
# - Pattern Search: 150x faster (100µs vs 15ms)
# - Batch Insert: 500x faster (2ms vs 1s)
# - Large-scale Query: 12,500x faster (8ms vs 100s)
ReasoningBank との連携
import { createAgentDBAdapter, migrateToAgentDB } from 'agentic-flow/reasoningbank';
// Migrate from legacy ReasoningBank
const result = await migrateToAgentDB(
'.swarm/memory.db', // Source (legacy)
'.agentdb/reasoningbank.db' // Destination (AgentDB)
);
console.log(`✅ Migrated ${result.patternsMigrated} patterns`);
// Train learning model
const adapter = await createAgentDBAdapter({
enableLearning: true,
});
await adapter.train({
epochs: 50,
batchSize: 32,
});
// Get optimal strategy with reasoning
const result = await adapter.retrieveWithReasoning(queryEmbedding, {
domain: 'task-planning',
synthesizeContext: true,
optimizeMemory: true,
});
学習プラグイン
利用可能なアルゴリズム(全 9 種類)
- Decision Transformer - 系列モデリング RL(推奨)
- Q-Learning - 価値ベースの学習
- SARSA - オンポリシー TD 学習
- Actor-Critic - ベースライン付き方策勾配法
- Active Learning - クエリの選択
- Adversarial Training - 頑健性
- Curriculum Learning - 段階的な難易度調整
- Federated Learning - 分散学習
- Multi-task Learning - 転移学習
プラグインの一覧表示と管理
# List available plugins
npx agentdb@latest list-plugins
# List plugin templates
npx agentdb@latest list-templates
# Get plugin info
npx agentdb@latest plugin-info <name>
推論エージェント(4 モジュール)
- PatternMatcher - HNSW インデックスを使用して類似パターンを検索
- ContextSynthesizer - 複数のソースから豊富なコンテキストを生成
- MemoryOptimizer - 類似パターンを統合し、品質の低いパターンを削除
- ExperienceCurator - 品質に基づいて経験をフィルタリング
ベストプラクティス
- 量子化を有効にする:スカラー/バイナリ形式を使用して、メモリを 4~32 倍削減します
- キャッシュを使用する:1,000 パターンのキャッシュにより、1 ミリ秒未満で取得できます
- バッチ操作を使用する:個別の挿入より 500 倍高速です
- 定期的にトレーニングする:新たな経験で学習モデルを更新します
- 推論を有効にする:コンテキストの統合と最適化を自動化します
- メトリクスを監視する:
statsコマンドを使用してパフォーマンスを追跡します
トラブルシューティング
問題:メモリの使用量が大きくなりすぎる
# Check database size
npx agentdb@latest stats ./agents.db
# Enable quantization
# Use 'binary' (32x smaller) or 'scalar' (4x smaller)
問題:検索パフォーマンスが遅い
# Enable HNSW indexing and caching
# Results: <100µs search time
問題:レガシー ReasoningBank からの移行
# Automatic migration with validation
npx agentdb@latest migrate --source .swarm/memory.db
パフォーマンス特性
- ベクトル検索:100µs 未満(HNSW インデックス)
- パターン取得:1ms 未満(キャッシュ使用時)
- バッチ挿入:100 パターンで 2ms
- メモリ効率:量子化により 4~32 倍削減
- 後方互換性:ReasoningBank API と 100%互換
詳細情報
- GitHub: https://github.com/ruvnet/agentic-flow/tree/main/packages/agentdb
- ドキュメント:node_modules/agentic-flow/docs/AGENTDB_INTEGRATION.md
- MCP 連携:Claude Code 用の
npx agentdb@latest mcp - ウェブサイト:https://agentdb.ruv.io
コメント
Markdown 対応