拥有记忆引擎,也拥有数据路径。

FishMem 的 TypeScript 引擎、SDK 契约、控制面、控制台与适配器采用 Apache-2.0 许可。你可以嵌入库,也可以自行运行经过验证的 Node + libSQL 应用。

  1. 01嵌入在一个 Node 服务中直接使用 fishmem 包。
  2. 02自托管运行 REST API、控制台、libSQL、资产目录与持久任务。
  3. 03扩展在明确接口处实现存储与模型供应商。
  • 01Apache-2.0 核心
  • 02Node 20+
  • 03SQLite 与 Postgres 适配器
  • 04Cloudflare 适配器

开源不是代码展示,而是可部署的产品边界;记忆权威可迁移,托管专属运维能力保持显式。

用一个深模块承载记忆行为。

引擎拥有规范写入、检索、时间状态、命名空间、文档、快照和投影。存储与模型供应商实现接口,而不是分叉记忆语义。

  • 内存、SQLite/libSQL、Postgres、D1、pgvector、Vectorize 与 Qdrant 适配器保持显式。
  • 嵌入引擎不需要托管账户或 FishMem API 密钥。
  • 集成测试独立验证适配器契约。

自行运营 API 与控制台。

发布的 Docker 路径使用 Node、持久 libSQL、耐久资产目录、固定提取容器和任务轮询器。Compose 配置对缺失密钥采取失败关闭。

  • 项目、API 密钥、记忆、来源、Webhook 与操作使用同一公开契约。
  • 数据库与资产目录必须作为一个保留单元备份。
  • Postgres 引擎适配器已发布;Postgres 控制面表尚未发布。

选择云端前先看清它增加什么。

Cloud 增加组织、托管密钥、持久任务、托管对象和向量资源、计量、账单与运营保障,不会替换核心记忆语义。

  • 开源命名空间导出保持迁移路径。
  • 托管运维与开源能力在文档中分别说明。
  • 没有把尚未发布的企业承诺包装成现有能力。

从一个具体请求开始。

import { createFishMem } from "fishmem";

const memory = await createFishMem({
  storage: { type: "sqlite", url: "file:./fishmem.db" }
});

await memory.memories.add({
  content: "用户偏好深色模式。",
  user_id: "alex",
  infer: false
});

这个产品范围包含什么

  • Apache-2.0 记忆引擎、共享契约、SDK 与控制台。
  • Node + libSQL 自托管路径与可持久资产目录。
  • 清楚的存储、向量、模型与提取适配接口。

明确边界

  • 自托管团队负责凭据、备份、迁移、监控与事故响应。
  • 开源发行不包含 FishMem Cloud 的组织、计费与托管基础设施。
  • 生产部署前仍需在自己的工作负载与存储适配器上验证。