多人记忆
把 Sonzai 中所有让记忆跨越边界的方式收在一个伞下 — 智能体之间(inter-agent)通过共享知识库,共享同一个智能体的用户之间(intra-agent)通过智慧与共享记忆。把闭环公司大脑和团队大脑合并在一起。
默认的智能体记忆模型是按对的 — 每次对话都构建一个限定到一个 (agent, user) 对的事实档案。这种隔离对隐私来说是正确的默认值,但只要你的产品有多个智能体或一个智能体面向多位用户,你就会希望记忆能够以受控、可观测的方式跨越边界。
多人记忆就是这些跨边界能力的伞。它沿着两个轴干净地分开:
| 轴 | 跨越什么 | 实际形态 | 能力 |
|---|---|---|---|
| 智能体之间(Inter-agent) | 同一项目(或租户)内智能体之间的知识 | 闭环公司大脑 — 智能体 A 学到,智能体 B 拾取 | knowledgeBase(读取)、knowledgeBaseWrite(自主更新)、knowledgeBaseScopeMode(组织级 cascade) |
| 智能体内部(Intra-agent) | 与同一智能体对话的用户之间的记忆 | 团队大脑 — 一个智能体用与用户 B 交谈所获的上下文回应用户 A | wisdom(不带归属、默认开启)、sharedMemory(带归属、需要启用) |
两个轴可以同时运行。完整图景:同一项目的智能体共享它们对世界的认识(智能体之间),同时单个智能体共享它服务的人之间的上下文(智能体内部)。同样的复利曲线,两个维度。
智能体之间 (Inter-agent)
共享知识库、自主更新、组织级范围、
闭环公司大脑
|
v
+-------------------------+ +-------------------------+
| 智能体 A | | 智能体 B |
| 读 + 写 KB |<---->| 读 + 写 KB |
+-------------------------+ +-------------------------+
^ ^ ^ ^ ^ ^
| | | 智能体内部 (Intra-agent) | | |
| | | wisdom(不带归属)、 | | |
| | | shared memory(带归属) | | |
+--------+ | +---------+ +-------+ | +---------+
| | | | | |
user X1 user X2 user X3 user Y1 user Y2 user Y3
智能体之间:任何一个智能体学到的东西,对项目里
其他所有智能体来说都是有依据的数据。
智能体内部:单个智能体在它服务的用户之间携带记忆 --
带隐私护栏。
智能体之间的记忆 — 智能体 ↔ 智能体
智能体之间的记忆把项目知识库变成一个闭环的公司大脑:一个智能体在对话中学到或验证过的任何内容,都会成为其他每一个智能体在下次会话中能取出的有依据数据。三层从基线一直叠到组织级。
1. 基线读取 — 每个智能体都让回答有项目知识库做依据
knowledgeBase: true 的智能体在对话期间通过 knowledge_search 工具读取项目知识图谱。图谱可以人工策划、ETL 加载,或两者并用 — 两条导入路径见 数据如何进入知识库。
await client.agents.updateCapabilities("agent_abc", {
knowledgeBase: true,
});2. 自主编辑 — 智能体把学到的内容写回去
打开 knowledgeBaseWrite: true,智能体获得 knowledge_create / knowledge_update / knowledge_delete 工具。在对话中智能体自己记录已验证的事实,附完整审计追踪(source = "agent:<agent-id>"),并采用 compare-and-swap 更新语义,所以管理员的编辑不会被悄悄覆盖。下一个对同样话题运行 knowledge_search 的智能体,就会取出之前那个智能体记下的内容。
await client.agents.updateCapabilities("agent_abc", {
knowledgeBase: true,
knowledgeBaseWrite: true,
});当真相之源就是对话本身时使用 — 客服记录已验证的事故详情、客户成功捕获续约上下文、记录员智能体写会议记录。详见:智能体如何使用知识库。
3. 组织级范围 — 跨项目之上的租户级知识
把 knowledgeBaseScopeMode: "cascade" 设到智能体上,它就会在每次搜索时同时从项目 KB 和组织级 KB 读取。组织级范围用于租户级别的产物:政策、世界观、品牌、参考目录。冲突时项目获胜,组织填充默认值。
await client.agents.updateCapabilities("agent_abc", {
knowledgeBase: true,
knowledgeBaseScopeMode: "cascade",
});详见:组织知识库。
智能体内部的记忆 — 共享同一智能体的用户之间
智能体内部的记忆把单个智能体变成团队大脑:服务于多位用户的一个智能体携带跨越用户边界的记忆,因此能用与用户 B 交谈所收集的上下文回应用户 A。两个互补的层。
1. 智慧(Wisdom) — 默认开启,不带归属
wisdom 在每个新智能体上都是开的。一个每日晋升作业从按用户事实历史中提取模式,k-匿名化,再通过 LLM 改写成智能体级别的知识。任何个体用户都不可识别。每个智能体都受益于"什么倾向于成功/什么会反复出现",但绝不会泄露谁说过什么。
// 智慧默认开启。只在你想退出时传 false
//(少见 — 通常只在严格的单用户产品中考虑)。
await client.agents.updateCapabilities("agent_abc", { wisdom: false });这是安全的智能体内部层 — 按构造保护隐私,不需要手动开启。
2. 共享记忆(Shared Memory) — 需启用,带归属
sharedMemory: true 是强大的智能体内部层。智能体记录人员/实体级带归属的事实(角色、专业、业务上下文、关系),并把它们暴露给共享该智能体的其他用户 — 名字是可见的。"Alice 负责迁移;Bob 处理事故。""Carol 带甜品;Dave 负责布置。"
await client.agents.updateCapabilities("agent_abc", {
wisdom: true, // 先决条件;默认开启
sharedMemory: true,
});打开后三件事会切换:智能体获得 sonzai_wisdom_set/update/delete/relate 工具;提示词里多出一个带审慎条款的"Shared facts"段落;每次写入都会在服务器端针对隐私下限(薪酬、健康、政治会被拦下)做语义校验。每次披露都会写入审计表。完整细节:共享记忆。
智能体之间与智能体内部的组合
两个轴是独立的 — 任何组合都有效:
| 智能体之间 | 智能体内部 | 你得到什么 |
|---|---|---|
| 关 | 关 | 仅按对记忆。单用户伴侣产品的正确默认值 |
| 开(仅读) | 关 | 智能体让回答有 KB 做依据,但不在用户之间共享。标准的只读文档助手 |
| 开(读 + 写) | 关 | 闭环世界知识。智能体捕获关于产品、价格、事故的已验证事实 — 其他每个智能体都受益 |
| 关 | 开 | 团队大脑 — 一个智能体服务一个小组,但智能体之间没有共享的世界知识 |
| 开(读 + 写) | 开 | 完整的多人记忆。 闭环世界知识 + 团队大脑。共享业务上下文产品的最佳选择 |
// 一次能力更新搞定完整多人记忆
await client.agents.updateCapabilities("agent_abc", {
knowledgeBase: true,
knowledgeBaseWrite: true, // 智能体之间:闭环 KB
knowledgeBaseScopeMode: "cascade", // 智能体之间:组织级范围
wisdom: true, // 智能体内部:不带归属(默认开启)
sharedMemory: true, // 智能体内部:带归属
});验证它在工作
每项能力都有一个实时读取端点,可以用来确认环路确实闭合。把 $AGENT_ID、$PROJECT_ID、$API_KEY 替换成你自己的。
智能体之间 — KB 写入
curl 'https://api.sonz.ai/api/v1/projects/$PROJECT_ID/knowledge/search?q=YourQuery' \
-H "Authorization: Bearer $API_KEY"智能体内部 — 带归属的共享记忆
curl 'https://api.sonz.ai/api/v1/agents/$AGENT_ID/wisdom/attributed?limit=20' \
-H "Authorization: Bearer $API_KEY"
curl 'https://api.sonz.ai/api/v1/agents/$AGENT_ID/wisdom/audit?limit=50' \
-H "Authorization: Bearer $API_KEY"智能体内部 — 智慧(默认开启)
不带归属的智慧层一旦每日晋升作业扫过按用户事实历史,就会内联出现在智能体跑的每个提示词里 — 没有单独的读取端点。要确认它在跑,在多用户流量之后看 48 小时窗口的智能体上下文体积;你应该能看到智慧块被填充。
隐私与控制
多人记忆按设计就是敏感的。每项能力都有自己的控制 — 没有一项需要信任 LLM:
| 能力 | 服务器端控制 |
|---|---|
knowledgeBaseWrite | 每次写入做模式校验、写入配额、项目范围检查、完整审计追踪(source = "agent:<agent-id>")、CAS 更新、仅软删除(硬删除仅管理员) |
wisdom | 晋升前的 k-匿名阈值、用 LLM 改写去除可识别细节、每日节奏让单次嘈杂会话不会泄漏 |
sharedMemory | 语义隐私下限校验器(薪酬、健康、政治会被拦下)、每个提示词里的审慎条款、每次事实加载的披露审计、软删除墓碑、source 锁定为 developer_api(调用者无法伪造来源) |
每条跨边界的流都对应一个读取端点,所以你可以随时回查审计。
深入了解
- 知识库 — 智能体之间的面:导入路径、模式、自主编辑细节
- 组织知识库 — 组织级 cascade 的细节
- 共享记忆 — 智能体内部的面:启用/关闭、四个 wisdom 工具、隐私下限、完整验证探针
- 自我改进 — 多人记忆如何叠加在按对在线学习之上
- Wisdom API — 共享记忆 CRUD + 审计的完整端点参考