记忆与上下文
智能体记住重要的事情。每次对话都会被分析,自动提取事实、事件和承诺并存储和调用。
记忆类别
记忆分为四个类别存储:
事实永久知识:用户偏好、个人详情、背景。例如:'用户是一名软件工程师,喜欢泰国菜。'
事件共同经历的情景记忆。例如:'上周我们聊了他们的日本旅行。'
承诺智能体做出的承诺和计划。例如:'承诺下次询问他们的求职面试情况。'
摘要合并的对话摘要。在会话之间自动生成。
记忆工作原理
记忆完全自动化 — 无需手动管理。平台分析每次对话并提取事实、事件和承诺。在每次响应之前,最相关的记忆会被自动组装并包含在上下文中。
无需编排
只需调用聊天接口。平台在每次交互中自动处理记忆提取、存储和检索。
种子记忆
使用 memory.seed() 在用户首次对话前预加载智能体对用户的了解。
import { Sonzai } from "@sonzai-labs/agents";
const client = new Sonzai({ apiKey: "sk-..." });
await client.agents.memory.seed("agent-id", "user-123", {
facts: [
"User's name is Jane Smith",
"Jane is a senior product manager at Acme Corp",
"Jane lives in San Francisco and enjoys hiking",
],
});搜索记忆
通过关键词或语义查询搜索用户-智能体对的记忆。
const results = await client.agents.memory.search("agent-id", {
userId: "user-123",
query: "hiking trip",
limit: 10,
});
for (const mem of results.memories) {
console.log(mem.content, mem.type, mem.createdAt);
}列出与浏览
列出所有记忆或按类别浏览。
// 列出所有记忆(分页)
const memories = await client.agents.memory.list("agent-id", {
userId: "user-123",
type: "fact", // "fact" | "event" | "commitment" | "summary"
limit: 20,
offset: 0,
});
// 按类别浏览
const facts = await client.agents.memory.listFacts("agent-id", {
userId: "user-123",
});记忆时间线
获取用户记忆历史的时间线视图。
const timeline = await client.agents.memory.timeline("agent-id", {
userId: "user-123",
from: "2026-01-01",
to: "2026-03-31",
});
for (const entry of timeline.entries) {
console.log(entry.date, entry.summary);
}浏览记忆树
导航用户的层级记忆结构。
// 在指定路径浏览记忆树
const nodes = await client.agents.memory.browse("agent-id", {
userId: "user-123",
path: "/facts", // 可选:按路径过滤
});重置记忆
清除用户-智能体对的所有记忆 — 适用于测试或用户希望重新开始的场景。
await client.agents.memory.reset("agent-id", {
userId: "user-123",
});