Skip to main content

CloudBaseMemory

基于腾讯 CloudBase 集成的无服务器记忆存储,适用于中国市场应用。

导入

import { CloudBaseMemory } from '@ag-kit/agents/storage';
import cloudbase from '@cloudbase/node-sdk';

构造函数

constructor(options: CloudBaseMemoryOptions & IBaseMemoryOptions)

配置

options
CloudBaseMemoryOptions & IBaseMemoryOptions
required
CloudBase Memory 配置选项,扩展自 BaseMemory 选项

基本用法

// 初始化 CloudBase 应用
const app = cloudbase.init({
  env: 'your-env-id',
  secretId: 'your-secret-id',
  secretKey: 'your-secret-key',
  region: 'ap-shanghai'
});

// 创建 CloudBase 记忆实例
const memory = new CloudBaseMemory({
  app,
  sessionId: 'user-session-123',
  collectionName: 'conversation_events',
  enableContextManagement: true
});

// 添加和检索事件
await memory.add({
  message: {
    id: 'msg-1',
    role: 'user',
    content: 'Hello, I need help with my project',
    timestamp: new Date()
  },
  state: { userId: 'user-123' }
});

const events = await memory.list({ limit: 10, maxTokens: 4000 });

核心接口方法

CloudBaseMemory 继承自 BaseMemory,并实现了所有标准记忆接口方法,全面支持分支功能。有关完整的 API 文档,包括 list()add()addList()delete()retrieve()clear()getCount()isEmpty() 以及所有分支方法,请参阅 BaseMemory API 参考

CloudBase 集成

// 多租户配置
const createTenantMemory = (tenantId: string, userId: string) => {
  const app = cloudbase.init({
    env: `tenant-${tenantId}-env`,
    secretId: process.env.CLOUDBASE_SECRET_ID!,
    secretKey: process.env.CLOUDBASE_SECRET_KEY!
  });

  return new CloudBaseMemory({
    app,
    sessionId: `tenant-${tenantId}-user-${userId}`,
    collectionName: `tenant_${tenantId}_events`,
    enableContextManagement: true
  });
};

独特功能

  • 无服务器架构:无需服务器管理
  • 自动扩展:根据需求自动扩展
  • 腾讯云集成:与腾讯云服务的原生集成
  • 中国市场优化:针对中国监管要求进行优化
  • 成本效益:按使用量付费的定价模式

限制

  • 供应商锁定:绑定到腾讯 CloudBase 平台
  • 区域限制:主要针对中国市场优化
  • 冷启动:无服务器冷启动可能导致延迟
  • 配额限制:受 CloudBase 使用配额和限制的约束