作用域与过滤器
隔离租户,并让召回约束保持明确。
每次记忆或文档操作都属于一个项目工作区。工作区内,结构化作用域说明记录属于谁。
| 字段 | 常见所有者 |
|---|---|
user_id | 一个已认证终端用户或账户 |
agent_id | 一个助手角色、工作流或服务角色 |
run_id | 一次会话、任务或有限执行 |
这些作用域可以组合。写入和读取应从服务端已认证身份与应用状态推导,不能接受模型自由生成的租户边界。
过滤器
元数据过滤用于在结构化作用域内进一步限制候选项:
const { results } = await fishmem.memories.search({
query: "current deployment decision",
user_id: userId,
filters: {
and: [
{ field: "metadata.repository", op: "eq", value: "fishmem" },
{ field: "importance", op: "gte", value: 0.6 },
],
},
});只允许文档列出的字段、运算符和有限嵌套。过滤器不是 SQL,也不能覆盖项目边界。对高基数或外部输入字段,应先在应用层验证允许值。
实体操作
实体列表从仍然有效的记忆作用域中派生。重命名或删除实体可能触发持久批量操作;保留操作 ID 并检查逐项结果。实体只是便捷视图,项目隔离仍由底层数据层强制执行。