mcpField
A
AgentDB Memory Patterns

AgentDB Memory Patterns

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

AgentDB Memory Patterns について

AgentDB Memory Patterns は、AgentDB と ReasoningBank を使って AI エージェントに永続メモリと学習パターンを加えるスキルです。メモリの保存、検索、整理、ベクトル検索、MCP サーバーの起動を扱います。

主な機能

  1. 01セッションおよび長期メモリのパターン
  2. 02ベクトル検索とデータベースクエリ
  3. 03メモリの統合と整理
  4. 04ReasoningBank の移行と連携
  5. 05学習プラグインと推論モジュール
  6. 06CLI によるインポート、エクスポート、統計

活用シーン

  1. 01セッションをまたいで会話コンテキストを保持
  2. 02事実や成功した対話パターンを保存
  3. 03エージェントのメモリを検索して整理
  4. 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 種類)
  1. Decision Transformer - 系列モデリング RL(推奨)
  2. Q-Learning - 価値ベースの学習
  3. SARSA - オンポリシー TD 学習
  4. Actor-Critic - ベースライン付き方策勾配法
  5. Active Learning - クエリの選択
  6. Adversarial Training - 頑健性
  7. Curriculum Learning - 段階的な難易度調整
  8. Federated Learning - 分散学習
  9. 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 モジュール)

  1. PatternMatcher - HNSW インデックスを使用して類似パターンを検索
  2. ContextSynthesizer - 複数のソースから豊富なコンテキストを生成
  3. MemoryOptimizer - 類似パターンを統合し、品質の低いパターンを削除
  4. ExperienceCurator - 品質に基づいて経験をフィルタリング

ベストプラクティス

  1. 量子化を有効にする:スカラー/バイナリ形式を使用して、メモリを 4~32 倍削減します
  2. キャッシュを使用する:1,000 パターンのキャッシュにより、1 ミリ秒未満で取得できます
  3. バッチ操作を使用する:個別の挿入より 500 倍高速です
  4. 定期的にトレーニングする:新たな経験で学習モデルを更新します
  5. 推論を有効にする:コンテキストの統合と最適化を自動化します
  6. メトリクスを監視する: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%互換

詳細情報

コメント