FishMem

记忆过滤器

在不削弱作用域隔离的前提下,对规范记忆做严格逻辑过滤。

filters 支持两种形式:旧版元数据相等映射,例如 { "environment": "production" };或由 and、or、not 组合的规范逻辑表达式。user_id、agent_id 与 run_id 始终位于顶层,并与过滤表达式做 AND。

{
  "and": [
    { "field": "metadata.channel", "operator": "eq", "value": "support" },
    { "field": "importance", "operator": "gte", "value": 0.7 },
    { "not": { "field": "content", "operator": "icontains", "value": "resolved" } }
  ]
}

条件包含 field、operator 与 value。字段可以是允许的内置记忆字段或安全的 metadata.<path>;不接受 SQL、任意 JSONPath、项目键或密钥字段。

运算符值含义
eq、ne标量已存在字段精确相等/不等
in、nin非空标量数组包含/排除集合
gt、gte、lt、lte标量数字、时间戳或元数据比较
containsstring区分大小写子串或数组成员
icontainsstring不区分大小写子串或字符串数组成员
existsboolean字段存在且非 null,或缺失/null

表达式有节点、深度、数组长度与字符串大小限制,并在候选排名前执行。类型不匹配不会做宽松强制转换。旧版相等映射只用于简单元数据键;新代码优先使用类型化表达式。