人工智能AI 应用Agent 记忆AI AgentRAG后端前端dsh-plugin【免费下载链接】mem9Unlimited memory for OpenClaw项目地址https://gitcode.com/gh_mirrors/me/mem9点击查看免费下载mem9 是一个为 AI Agent 提供持久化记忆的开源项目本教程带你从零开始自托管部署 mem9 的记忆服务端mnemo-server连接 TiDB 作为存储后端完成 schema 初始化、构建、Docker 打包、环境变量配置与生产上线验证全程附完整命令。一、先搞懂mem9 自托管架构长什么样在动手之前花 1 分钟理解架构能帮你少走 90% 的弯路。mem9 的核心思想是Agent 插件保持轻量无状态所有存储、检索、写入、策略逻辑都收敛到 mnemo-server 这一层。OpenClaw、Claude Code、OpenCode、Codex 等运行时统一通过 REST API 访问同一个记忆服务架构设计详见 docs/DESIGN.md。自托管时涉及两层数据库这是新手最容易混淆的点层作用对应配置控制面Control Plane存放租户tenant注册信息、Space Chain、webhook 等MNEMO_DSN指向的数据库租户库Tenant DB每个 Space 独立的记忆数据 向量列 全文索引由租户库连接串记录在控制面里也就是说MNEMO_DSN不是记忆库本身而是管租户的库。服务端的完整请求链路为handler → service → repository源码组织见 server/AGENTS.md。mnemo-server 支持三种存储后端通过MNEMO_DB_BACKEND切换其中tidb是默认值且功能最全支持服务端自动 embedding、原生向量检索、全文检索tidb默认推荐生产使用postgres走高级手动 bootstrap 路径db9类 TiDB 的兼容后端二、环境准备3 样东西缺一不可开始部署前确认你手上有Go 1.24构建用依赖清单见 server/go.mod与make一个 TiDB 兼容数据库可以是 TiDB Serverless 实例、TiDB Cloud Starter或自建 TiDB。DSN 格式为 MySQL 风格连接串Docker可选用于容器化部署 如果你只想先体验而不折腾基础设施可以先用托管 API自托管时只需把MEM9_API_URL换成自己的服务地址插件代码不用改一行。三、一键构建与首次启动步骤 1获取代码并构建git clone https://gitcode.com/gh_mirrors/me/mem9 cd mem9 make build # 产出 server/bin/mnemo-server静态二进制CGO_ENABLED0make build的目标定义在 Makefile它会以GOOS/GOARCH无关的方式产出可执行文件。步骤 2初始化控制面 schema首次启动前必须在MNEMO_DSN指向的数据库中执行控制面建表脚本不同后端对应不同文件TiDBserver/schema.sqlPostgreSQLserver/schema_pg.sqldb9server/schema_db9.sqlmysql -h host -P 4000 -u user -p server/schema.sql该脚本会创建tenants、tenant_activity、space_chains等表是整个自托管的地基。步骤 3启动 mnemo-server最小运行配置只需要一个变量MNEMO_DSNcd server MNEMO_DSNuser:passtcp(host:4000)/mnemos?parseTimetrue ./bin/mnemo-server服务默认监听8080端口。启动后日志为 JSON 格式会依次打印database connected、embedding配置状态、starting mnemo server等信息配置解析逻辑见 server/internal/config/config.go入口逻辑见 server/cmd/mnemo-server/main.go。本地开发可以用热重载模式MNEMO_DSNuser:passtcp(host:4000)/mnemos?parseTimetrue make dev步骤 4验证服务服务内置健康检查端点curl http://localhost:8080/healthz更完整的端到端验证可以直接跑仓库自带的冒烟测试脚本覆盖租户创建、写入、检索、更新、删除全流程MNEMO_BASEhttp://localhost:8080 bash e2e/api-smoke-test.sh脚本说明见 e2e/api-smoke-test.sh。全部 PASS 即代表 mnemo-server TiDB 链路完全打通。四、Docker 部署两条命令完成容器化mem9 的 Docker 流程是先编译、后打包make docker会先执行build-linux交叉编译出 Linux amd64 二进制再把它 COPY 进一个极简的alpine:3.19镜像只加ca-certificates最终镜像体积非常小。镜像定义见 server/Dockerfile。# 构建并打上 local/mnemo-server:dev 标签 make docker REGISTRYlocal COMMITdev # 运行 docker run -d \ -e MNEMO_DSNuser:passtcp(host:4000)/mnemos?parseTimetrue \ -e MNEMO_DB_BACKENDtidb \ -p 8080:8080 \ local/mnemo-server:dev生产建议用${REGISTRY}/mnemo-server:${COMMIT}的命名方式按 commit 打标签方便灰度和回滚。五、全量环境变量说明分类速查表所有配置均通过环境变量注入唯一必填项是MNEMO_DSN其余按需开启。以下按用途分类整理完整默认值以 server/internal/config/config.go 为准。5.1 核心服务变量必填默认值说明MNEMO_DSN✅—控制面数据库连接串MNEMO_PORT❌8080HTTP 监听端口MNEMO_DB_BACKEND❌tidb存储后端tidb/postgres/db9MNEMO_ENV❌development环境标识影响默认 CORS 白名单生产设为productionMNEMO_CORS_ALLOWED_ORIGINS❌按环境逗号分隔的 CORS 来源覆盖MNEMO_ENV默认值MNEMO_RATE_LIMIT❌100每 IP 每秒请求数MNEMO_RATE_BURST❌200限流突发容量MNEMO_UPLOAD_DIR❌./uploads上传文件存储目录MNEMO_WORKER_CONCURRENCY❌5异步上传导入的并行 worker 数MNEMO_UTM_ENABLED❌false启用 UTM 归因记录需tenant_utm表存在5.2 Embedding 与智能导入Ingest这一组决定混合检索是否可用。什么都不配也不会报错——服务会降级为纯关键词检索。变量必填默认值说明MNEMO_EMBED_AUTO_MODEL❌—TiDB/db9 服务端EMBED_TEXT()模型如tidbcloud_free/cohere/embed-multilingual-v3设置后优先于客户端 embeddingMNEMO_EMBED_AUTO_DIMS❌1024服务端向量维度Cohere Embed v3 模型强制要求1024MNEMO_EMBED_API_KEY❌—客户端 embedding 提供方 API KeyMNEMO_EMBED_BASE_URL❌OpenAI 地址自定义 OpenAI 兼容 embedding 端点可指向本地模型MNEMO_EMBED_MODEL❌text-embedding-3-small客户端 embedding 模型名MNEMO_EMBED_DIMS❌1536客户端向量维度MNEMO_LLM_API_KEY❌—LLM Key不设置则 smart ingest 退化为 raw 导入MNEMO_LLM_BASE_URL❌OpenAI 地址自定义 OpenAI 兼容 chat 端点MNEMO_LLM_MODEL❌gpt-4o-mini智能导入使用的 LLMMNEMO_LLM_TEMPERATURE❌0.1LLM 温度MNEMO_INGEST_MODE❌smart导入模式smartLLM 抽取事实或rawMNEMO_FTS_ENABLED❌falseTiDB 全文检索开关仅在集群支持 FTS 时开启5.3 租户供给与连接池Provisioningmnemo-server 对 TiDB 后端支持三种租户供给方式这是自托管时最核心的运营决策方式触发条件特点TiDB Zero 自动供给默认开启MNEMO_TIDB_ZERO_ENABLEDtruetidb后端新 Space 自动创建独立租户库零运维TiDB Cloud PoolMNEMO_TIDB_ZERO_ENABLEDfalse且配置了MNEMO_TIDBCLOUD_API_KEY/MNEMO_TIDBCLOUD_API_SECRET从 Serverless 资源池接管集群适合团队级部署手动 Bootstrap不配置任何供给器使用控制面中已存在的租户记录postgres/db9后端必须走这条路变量必填默认值说明MNEMO_TIDB_ZERO_ENABLED❌true开启 TiDB Zero 自动供给优先级最高MNEMO_TIDB_ZERO_API_URL❌TiDB Zero 地址自定义 Zero API 入口MNEMO_TIDBCLOUD_API_URL❌Serverless 地址自定义 Cloud Pool API 入口MNEMO_TIDBCLOUD_POOL_ID❌2Cloud Pool 资源池 IDMNEMO_TIDBCLOUD_API_KEY/MNEMO_TIDBCLOUD_API_SECRET❌—Cloud Pool 凭据digest 认证MNEMO_TENANT_POOL_MAX_IDLE❌5进程内租户库空闲连接上限MNEMO_TENANT_POOL_MAX_OPEN❌10单租户库最大打开连接数MNEMO_TENANT_POOL_CONNECT_TIMEOUT❌3s冷连接 ping/打开超时MNEMO_TENANT_POOL_IDLE_TIMEOUT❌10m租户库句柄空闲回收时间MNEMO_TENANT_POOL_TOTAL_LIMIT❌200全进程租户库句柄总量上限5.4 安全加密⚠️ 一次性决策变量必填默认值说明MNEMO_ENCRYPT_TYPE❌plain租户库密码加密方式plain/md5/kmsMNEMO_ENCRYPT_KEY❌—md5模式的密钥或kms模式的 KMS Key ID⚠️重要警告MNEMO_ENCRYPT_TYPE是一次性部署决策。租户创建后再切换加密方式会导致所有存量租户请求返回 HTTP 500旧密码无法用新方案解密。生产环境建议第一天就选好KMS 模式需要额外配置 AWS 凭据AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION。5.5 计费与用量按需MeteringAPI 用量上报MNEMO_METERING_ENABLEDtrueMNEMO_METERING_URL支持s3://、http(s)://刷新间隔MNEMO_METERING_FLUSH_INTERVAL默认10sRuntime Usage配额管控MNEMO_RUNTIME_USAGE_ENABLEDtrue时必须同时提供MNEMO_RUNTIME_USAGE_BASE_URL与MNEMO_RUNTIME_USAGE_INTERNAL_SECRET否则服务拒绝启动以上默认全部关闭纯自托管场景可以先不配置。六、生产环境部署清单 ✅检查项操作环境标识设置MNEMO_ENVproductionCORS 默认收紧为https://mem9.ai需自定义时用MNEMO_CORS_ALLOWED_ORIGINS加密方式上线前确定MNEMO_ENCRYPT_TYPE之后不再变更供给方式明确选择 Zero / Cloud Pool / 手动 Bootstrap 三者之一限流按业务调整MNEMO_RATE_LIMIT/MNEMO_RATE_BURST向量能力确认 embedding 方案服务端MNEMO_EMBED_AUTO_MODEL或客户端MNEMO_EMBED_*已生效否则只有关键词检索优雅停机内置 SIGTERM 处理先停 worker、webhook再关 HTTP可直接对接容器编排健康检查将GET /healthz接入你的监控与负载均衡端到端验证上线后跑MNEMO_BASE你的域名 bash e2e/api-smoke-test.sh全量回归服务启动后客户端插件只需两个环境变量即可接入你的私有记忆服务export MEM9_API_URLhttp://你的服务器:8080 export MEM9_API_KEYprovisioning 流程返回的 mem9 API key七、常见问题 FAQQ1忘了配置 embedding服务会挂吗不会。日志会打印no embedding configured, keyword-only search active检索自动降级为关键词模式后续补配置即可。Q2MNEMO_DSN和租户库是什么关系MNEMO_DSN只连控制面存租户注册表。每个 Space 的实际记忆数据存在各自独立的租户库中由供给器自动创建或手动写入。Q3postgres 后端能用 TiDB Zero 自动供给吗不能。TiDB Zero 供给仅支持tidb后端postgres/db9必须使用手动 Bootstrap 路径控制面中需已存在 active 租户记录。Q4如何验证部署是对的以 e2e/api-smoke-test.sh 全绿为准——它覆盖了健康检查、租户创建、消息导入、内容导入、按 query/tag 检索、按 ID 读写删等 12 项检查。写在最后mem9 的自托管比想象中简单schema 初始化 →make build→ 一个MNEMO_DSN环境变量 → 启动核心路径不到 5 分钟。真正的复杂度在运营层——供给方式、embedding 方案、加密策略的一次性选择。按上面的清单逐项确认你就能把 mnemo-server 稳定地跑在生产环境给整个 Agent 团队提供永不失忆的共享记忆。 延伸阅读服务端模块导航server/AGENTS.md总体设计Direct vs Server 模式docs/DESIGN.md控制面建表脚本server/schema.sql端到端测试脚本e2e/api-smoke-test.sh赞分享人工智能AI 应用Agent 记忆AI AgentRAG后端前端dsh-plugin【免费下载链接】mem9Unlimited memory for OpenClaw项目地址https://gitcode.com/gh_mirrors/me/mem9点击查看免费下载相关推荐CryptPad安装完全教程从Docker到生产环境的详细部署步骤CryptPad安装完全教程从Docker到生产环境的详细部署步骤 CryptPad是一款开源的端到端加密协作办公套件为团队提供安全、私密的在线协作环境。无协同办公后端前端密码学解决Windows游戏自动化输入难题PyDirectInput的技术实现与应用实践解决Windows游戏自动化输入难题PyDirectInput的技术实现与应用实践 在Windows平台上进行自动化测试或游戏脚本开发时许多开发者会遇到一个MCSManager Docker 容器化部署完全教程从零到生产环境MCSManager Docker 容器化部署完全教程从零到生产环境 想要快速部署和管理多个游戏服务器MCSManager Docker 容器化部署是您的终后端前端运维创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考