Python SDK v0.1.0

RememberMe SDK 文档

三行代码,让你的 AI 拥有持久记忆。
完整的 Python SDK 使用指南与 API 参考。

1 安装

Terminal
# 基础安装
pip install remembermemory

# 如需异步支持(FastAPI / aiohttp 等)
pip install remembermemory[async]
要求 Python 3.10+。异步客户端额外依赖 httpx

2 快速上手

登录 控制台 → API Keys 页面创建密钥,然后:

app.py
from rememberme import RememberMe

client = RememberMe(api_key="rm_sk_你的密钥", base_url="http://你的服务地址")

# 写入记忆
client.add("用户喜欢简洁的回答风格", user_id="u_123")

# 语义搜索
results = client.search("回答风格偏好", user_id="u_123")
for mem in results.memories:
    print(f"[{mem.score:.2f}] {mem.memory}")

3 核心概念

概念 说明
API Key在控制台中创建,以 rm_sk_ 开头,用于 SDK 认证
user_id终端用户标识。每个 user_id 拥有独立的记忆空间
agent_idAgent 标识(可选),区分不同 AI Agent 的记忆
run_id会话标识(可选),按对话轮次组织记忆
infer写入时是否让 LLM 自动提取关键事实(默认 True,推荐开启)

初始化客户端

Python
from rememberme import RememberMe

client = RememberMe(
    api_key="rm_sk_xxx",              # 必填:API Key
    base_url="https://your-server.com",  # 你的 RememberMe 服务地址
    timeout=30,                       # 请求超时秒数(默认 30)
)
参数 类型 必填 说明
api_keystrAPI Key
base_urlstr服务地址,默认 https://api.rememberme.dev
timeoutint请求超时秒数,默认 30

client.add()

向记忆库写入内容。支持纯文本或对话消息列表,LLM 自动提取关键事实。

Python
# 方式一:纯文本
result = client.add("用户是一名 Python 开发者", user_id="u_123")

# 方式二:对话消息列表(LLM 自动提取关键信息)
result = client.add(
    [
        {"role": "user", "content": "我在北京工作,做机器学习方向"},
        {"role": "assistant", "content": "了解!北京的 AI 圈很活跃"},
    ],
    user_id="u_123",
    metadata={"source": "chat"},
)

# result.results → [{"id": "xxx", "memory": "用户在北京工作...", "event": "ADD"}]
参数类型必填说明
messagesstr | list[dict]记忆内容或对话列表
user_idstr终端用户 ID
agent_idstrAgent ID
run_idstr会话 ID
metadatadict附加元数据
inferbool是否 LLM 提取事实(默认 True)

client.get_all()

列出记忆,可按 user_id / agent_id / run_id 过滤。

Python
memories = client.get_all(user_id="u_123", limit=50)
for mem in memories.memories:
    print(f"* {mem.memory}")

client.get()

根据 memory_id 获取单条记忆的详情。

Python
mem = client.get("memory_id_xxx")
print(mem.memory, mem.created_at)

client.update()

更新单条记忆的文本内容。

Python
client.update("memory_id_xxx", "更新后的记忆内容")

client.delete()

根据 memory_id 删除单条记忆。

Python
client.delete("memory_id_xxx")

client.delete_all()

批量删除记忆。至少指定一个过滤条件。

Python
client.delete_all(user_id="u_123")  # 删除该用户所有记忆

client.history()

查看单条记忆的完整变更历史。

Python
history = client.history("memory_id_xxx")
for entry in history:
    print(entry)

异步客户端

适用于 FastAPI、aiohttp 等异步框架。API 与同步客户端完全一致,所有方法前加 await 即可。

Python
from rememberme import AsyncRememberMe

async with AsyncRememberMe(api_key="rm_sk_xxx") as client:
    await client.add("用户喜欢暗色主题", user_id="u_123")
    results = await client.search("界面偏好", user_id="u_123")
异步客户端需安装 httpx:pip install remembermemory[async]

错误处理

Python
from rememberme import RememberMe, AuthenticationError, NotFoundError

client = RememberMe(api_key="rm_sk_xxx")

try:
    client.add("test", user_id="u_1")
except AuthenticationError:
    print("API Key 无效,请检查密钥")
except NotFoundError:
    print("资源不存在")
异常类HTTP 状态码说明
AuthenticationError401API Key 无效或已过期
PermissionError403权限不足(如只读 Key 尝试写入)
NotFoundError404记忆不存在
ValidationError422请求参数格式错误
RateLimitError429请求频率超限
ServerError5xx服务端内部错误
RememberMeError*所有异常的基类

REST API

不使用 Python?可以直接调用 HTTP API。所有请求需在 Header 中携带 API Key:

Bash
# 写入记忆
curl -X POST https://your-server.com/api/memories \
  -H "Authorization: Bearer rm_sk_你的密钥" \
  -H "Content-Type: application/json" \
  -d '{"messages": "用户喜欢Python", "user_id": "u_123"}'

# 语义搜索
curl -X POST https://your-server.com/api/memories/search \
  -H "Authorization: Bearer rm_sk_你的密钥" \
  -H "Content-Type: application/json" \
  -d '{"query": "用户偏好", "user_id": "u_123"}'
方法路径说明
POST/api/memories写入记忆
POST/api/memories/search语义搜索
GET/api/memories列出记忆
GET/api/memories/{id}获取单条
PUT/api/memories/{id}更新记忆
DELETE/api/memories/{id}删除单条
DELETE/api/memories批量删除
GET/api/memories/{id}/history变更历史

API Key 权限

创建 API Key 时可选择权限级别:

权限读取写入删除
full
read-write
read

实战:为聊天机器人添加记忆

chatbot.py
from openai import OpenAI
from rememberme import RememberMe

memory = RememberMe(api_key="rm_sk_xxx", base_url="https://your-server.com")
llm = OpenAI()

def chat(user_id: str, user_message: str) -> str:
    # 1. 检索相关记忆
    relevant = memory.search(user_message, user_id=user_id, limit=5)
    context = "\n".join(f"- {m.memory}" for m in relevant.memories)

    # 2. 注入到 system prompt
    system = "你是一个友好的助手。"
    if context:
        system += f"\n\n你对这位用户的了解:\n{context}"

    # 3. 调用 LLM
    resp = llm.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": system},
            {"role": "user", "content": user_message},
        ],
    )
    reply = resp.choices[0].message.content

    # 4. 保存对话到记忆
    memory.add(
        [{"role": "user", "content": user_message},
         {"role": "assistant", "content": reply}],
        user_id=user_id,
    )
    return reply

© 2026 RememberMe. MIT License.