Memory memory

记忆系统用于存储和检索用户的偏好、事实和笔记,支持语义搜索和向量嵌入技术。

NLP 0 次安装 0 次浏览 更新于 3/5/2026

记忆 - 完整API参考

存储和回忆用户的偏好、事实和笔记。由向量嵌入支持的语义搜索。


聊天命令

存储记忆

/remember preference risk=conservative      保存交易偏好
/remember fact BTC halving is in April 2028 存储一个事实
/remember note Check ETH before market open 保存一个笔记
/remember rule Never trade during FOMC      存储交易规则

回忆记忆

/memory                                     查看所有记忆
/memory preferences                         仅查看偏好
/memory facts                               仅查看事实
/memory notes                               仅查看笔记
/memory rules                               交易规则
/memory search "bitcoin"                    搜索记忆

忘记记忆

/forget <key>                               删除特定记忆
/forget all preferences                     清除所有偏好
/forget all                                 清除所有(小心!)

TypeScript API参考

创建记忆服务

import { createMemoryService } from 'clodds/memory';

const memory = createMemoryService({
  // 存储后端
  backend: 'lancedb',  // 'lancedb' | 'sqlite' | 'postgres'

  // 嵌入模型
  embeddings: {
    provider: 'openai',
    model: 'text-embedding-3-small',
  },

  // 选项
  encryptionKey: process.env.MEMORY_ENCRYPTION_KEY,
});

记忆(存储)

// 存储一个偏好
await memory.remember({
  userId: 'user-123',
  type: 'preference',
  key: 'risk_tolerance',
  value: 'conservative',
});

// 存储一个事实
await memory.remember({
  userId: 'user-123',
  type: 'fact',
  content: 'BTC halving occurs approximately every 4 years',
  metadata: { topic: 'crypto', confidence: 0.95 },
});

// 存储一个笔记
await memory.remember({
  userId: 'user-123',
  type: 'note',
  content: 'Check Polymarket for election markets before Tuesday',
  metadata: { priority: 'high' },
});

// 存储一个交易规则
await memory.remember({
  userId: 'user-123',
  type: 'rule',
  content: 'Never trade more than 5% of portfolio on single position',
});

回忆(检索)

// 获取用户的所有记忆
const all = await memory.recall({ userId: 'user-123' });

// 按类型获取
const preferences = await memory.recall({
  userId: 'user-123',
  type: 'preference',
});

// 获取特定键
const risk = await memory.recall({
  userId: 'user-123',
  type: 'preference',
  key: 'risk_tolerance',
});

语义搜索

// 按意义搜索(不仅仅是关键词)
const results = await memory.semanticSearch({
  userId: 'user-123',
  query: 'what is my risk appetite?',
  limit: 5,
  threshold: 0.7,  // 相似度阈值
});

for (const result of results) {
  console.log(`${result.type}: ${result.content}`);
  console.log(`  Similarity: ${result.score}`);
}

忘记(删除)

// 删除特定记忆
await memory.forget({
  userId: 'user-123',
  type: 'preference',
  key: 'risk_tolerance',
});

// 删除所有类型
await memory.forgetByType({
  userId: 'user-123',
  type: 'note',
});

// 删除所有记忆
await memory.forgetAll({ userId: 'user-123' });

日记

// 记录每日活动
await memory.logDaily({
  userId: 'user-123',
  date: new Date(),
  trades: 5,
  pnl: 123.45,
  notes: 'Good day, caught BTC rally',
});

// 获取日记条目
const journal = await memory.getDailyLogs({
  userId: 'user-123',
  from: '2024-01-01',
  to: '2024-01-31',
});

记忆类型

类型 用途 示例
preference 用户设置 risk=conservative
fact 存储知识 “ETH gas is cheaper on weekends”
note 提醒/待办 “Check election markets”
rule 交易规则 “Max 5% per position”
context 对话上下文 系统自动保存

存储后端

后端 描述 最适合
LanceDB 向量数据库,混合搜索 生产环境,语义搜索
SQLite 本地文件基础 开发,单用户
PostgreSQL 分布式,带pgvector 多用户,生产环境

最佳实践

  1. 使用具体的键max_position_size 不仅仅是 size
  2. 正确使用类型 — 偏好用于设置,规则用于约束
  3. 语义搜索 — 自然地提问,嵌入将匹配
  4. 定期清理 — 删除过时的笔记和事实
  5. 备份记忆 — 在重大更改前导出