FishMem

有来源的 RAG

让原始文档保持权威,召回可引用分块,并只把持久结论存成记忆。

使用两条明确路径:来源材料进入 documents,用户偏好、决策与持久结论进入 memories。这样任意段落不会变成个人事实,同时模型仍能获得有根据的上下文。

写入来源

const ingested = await fishmem.documents.ingest(
  { source_key: "handbook/deployments.md", content: markdown, mime_type: "text/markdown" },
  { idempotencyKey: `source:${contentHash}` },
);

二进制文件使用 documents.upload(),保存返回的操作 ID并等待提取终态。

模型调用前召回证据

const { results } = await fishmem.documents.search({
  query: userQuestion,
  source_key: "handbook/deployments.md",
  limit: 5,
  neighbors: 1,
});

把来源 key、版本、字节区间与内容一起传入带标签的 Evidence 区块,答案展示时保留引用。

单独保存持久结果

await fishmem.memories.add({
  content: "Production deployment requires the integration suite and rollback owner.",
  infer: false,
  agent_id: "release-agent",
  metadata: { source_document_id: ingested.document.id },
}, { idempotencyKey: `decision:${decisionId}` });

新版本会保留旧版本并移动 current head。永久删除来源时,所有版本、分块、向量、原件与提取产物作为同一来源族删除;关联记忆应按你的保留策略单独处理。

On this page