AgentDB Memory Patterns by chrislemke/stoffy
npx skills add https://github.com/chrislemke/stoffy --skill 'AgentDB Memory Patterns'提供基于 AgentDB 持久化存储和 ReasoningBank 集成的 AI 代理内存管理模式。使代理能够记住对话、从交互中学习,并在多个会话间保持上下文。
性能表现:相比传统解决方案快 150 倍至 12,500 倍,且保持 100% 向后兼容性。
# 初始化向量数据库
npx agentdb@latest init ./agents.db
# 或使用自定义维度
npx agentdb@latest init ./agents.db --dimension 768
# 使用预设配置
npx agentdb@latest init ./agents.db --preset large
# 用于测试的内存数据库
npx agentdb@latest init ./memory.db --in-memory
# 启动 MCP 服务器(与 Claude Code 集成)
npx agentdb@latest mcp
# 添加到 Claude Code(一次性设置)
claude mcp add agentdb npx agentdb@latest mcp
# 交互式插件向导
npx agentdb@latest create-plugin
# 直接使用模板
npx agentdb@latest create-plugin -t decision-transformer -n my-agent
# 可用模板:
# - decision-transformer(序列建模强化学习)
# - q-learning(基于值的学习)
# - sarsa(同策略时序差分学习)
# - actor-critic(策略梯度)
# - curiosity-driven(基于探索的学习)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
import { createAgentDBAdapter } from 'agentic-flow/reasoningbank';
// 使用默认配置初始化
const adapter = await createAgentDBAdapter({
dbPath: '.agentdb/reasoningbank.db',
enableLearning: true, // 启用学习插件
enableReasoning: true, // 启用推理代理
quantizationType: 'scalar', // binary | scalar | product | none
cacheSize: 1000, // 内存缓存大小
});
// 存储交互记忆
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(),
});
// 通过推理检索上下文
const context = await adapter.retrieveWithReasoning(queryEmbedding, {
domain: 'conversation',
k: 10,
useMMR: true, // 最大边际相关性
synthesizeContext: true, // 生成丰富的上下文
});
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
});
}
}
// 存储重要事实
await db.storeFact({
category: 'user_preference',
key: 'language',
value: 'English',
confidence: 1.0,
source: 'explicit'
});
// 检索事实
const prefs = await db.getFacts({
category: 'user_preference'
});
// 从成功交互中学习
await db.storePattern({
trigger: 'user_asks_time',
response: 'provide_formatted_time',
success: true,
context: { timezone: 'UTC' }
});
// 应用学习到的模式
const pattern = await db.matchPattern(currentContext);
// 按层次组织内存
await memory.organize({
immediate: recentMessages, // 最近 10 条消息
shortTerm: sessionContext, // 当前会话
longTerm: importantFacts, // 持久化事实
semantic: embeddedKnowledge // 向量搜索知识
});
// 定期整合记忆
await memory.consolidate({
strategy: 'importance', // 保留重要记忆
maxSize: 10000, // 大小限制
minScore: 0.5 // 相关性阈值
});
# 使用向量嵌入查询
npx agentdb@latest query ./agents.db "[0.1,0.2,0.3,...]"
# 获取 Top-k 结果
npx agentdb@latest query ./agents.db "[0.1,0.2,0.3]" -k 10
# 使用相似度阈值
npx agentdb@latest query ./agents.db "0.1 0.2 0.3" -t 0.75
# JSON 输出
npx agentdb@latest query ./agents.db "[...]" -f json
# 导出向量到文件
npx agentdb@latest export ./agents.db ./backup.json
# 从文件导入向量
npx agentdb@latest import ./backup.json
# 获取数据库统计信息
npx agentdb@latest stats ./agents.db
# 运行性能基准测试
npx agentdb@latest benchmark
# 结果显示:
# - 模式搜索:快 150 倍(100µs 对比 15ms)
# - 批量插入:快 500 倍(2ms 对比 1s)
# - 大规模查询:快 12,500 倍(8ms 对比 100s)
import { createAgentDBAdapter, migrateToAgentDB } from 'agentic-flow/reasoningbank';
// 从旧版 ReasoningBank 迁移
const result = await migrateToAgentDB(
'.swarm/memory.db', // 源(旧版)
'.agentdb/reasoningbank.db' // 目标(AgentDB)
);
console.log(`✅ 已迁移 ${result.patternsMigrated} 个模式`);
// 训练学习模型
const adapter = await createAgentDBAdapter({
enableLearning: true,
});
await adapter.train({
epochs: 50,
batchSize: 32,
});
// 通过推理获取最优策略
const result = await adapter.retrieveWithReasoning(queryEmbedding, {
domain: 'task-planning',
synthesizeContext: true,
optimizeMemory: true,
});
# 列出可用插件
npx agentdb@latest list-plugins
# 列出插件模板
npx agentdb@latest list-templates
# 获取插件信息
npx agentdb@latest plugin-info <name>
stats 命令跟踪性能# 检查数据库大小
npx agentdb@latest stats ./agents.db
# 启用量化
# 使用 'binary'(缩小 32 倍)或 'scalar'(缩小 4 倍)
# 启用 HNSW 索引和缓存
# 结果:<100µs 搜索时间
# 带验证的自动迁移
npx agentdb@latest migrate --source .swarm/memory.db
npx agentdb@latest mcp 用于 Claude Code每周安装量
0
代码仓库
首次出现
1970年1月1日
安全审计
Provides memory management patterns for AI agents using AgentDB's persistent storage and ReasoningBank integration. Enables agents to remember conversations, learn from interactions, and maintain context across sessions.
Performance : 150x-12,500x faster than traditional solutions with 100% backward compatibility.
# 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
# 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)
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
});
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
});
}
}
// 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'
});
// 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
});
# 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)
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,
});
# 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>
stats command to track performance# 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
# Automatic migration with validation
npx agentdb@latest migrate --source .swarm/memory.db
npx agentdb@latest mcp for Claude CodeWeekly Installs
0
Repository
First Seen
Jan 1, 1970
Security Audits
超能力技能使用指南:AI助手技能调用优先级与工作流程详解
45,100 周安装