mcpField
A
AgentDB Memory Patterns

AgentDB Memory Patterns

github.com/proffesor-for-testingエージェントワークフロー520102 回インストール今日更新
リポジトリ

AgentDB Memory Patterns について

AgentDB Memory Patternsは、AgentDBとReasoningBankでAIエージェントに永続メモリと学習機能を組み込むスキルです。セッション・長期メモリ、パターン学習、検索、APIとCLIでのデータベース操作を扱います。

主な機能

  1. 01セッションと長期メモリの保存
  2. 02インタラクションパターンの学習
  3. 03メモリの整理と統合
  4. 04HNSWインデックスによるベクトル検索
  5. 05CLIによるデータベース管理
  6. 06学習プラグインの作成

活用シーン

  1. 01エージェントのセッション間でコンテキストを維持
  2. 02ユーザー設定や重要な事実を保存
  3. 03類似するインタラクションパターンを検索
  4. 04旧ReasoningBankデータの移行

MCP 対応

このスキルでは、`npx agentdb@latest mcp`でAgentDB MCPサーバーを起動し、Claude Codeに追加する方法を説明します。MCP経由でAgentDBのメモリ機能を利用できます。

インストール

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --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%互換

詳細情報

コメント