agentic_huge_data_base / wiki
页面 Mem0 · 14 开发·DeepWiki 中文全文译文

14 · 开发(Development)

长期记忆与上下文管理 · 聚焦本章的模块关系、源码依据与实现要点。

项目Mem0 章节14 状态全文译文 模块测试、发布与运维、文档对象与元数据、安装与启动、工作流与编排
源码线索
  • .github/workflows/cd.yml
  • .github/workflows/ci.yml
  • .github/workflows/cli-node-cd.yml
  • .github/workflows/openclaw-cd.yml
  • .github/workflows/ts-sdk-cd.yml
  • .github/workflows/ts-sdk-ci.yml
  • .github/workflows/vercel-ai-cd.yml
  • CONTRIBUTING.md
  • docs/changelog/sdk.mdx
  • mem0-ts/jest.config.js
模块标签
  • 测试、发布与运维
  • 文档对象与元数据
  • 安装与启动
  • 工作流与编排
  • 界面与交互

章节正文

开发

开发

相关源文件

本章引用的主要源码文件:

  • .github/workflows/cd.yml
  • .github/workflows/ci.yml
  • .github/workflows/cli-node-cd.yml
  • .github/workflows/openclaw-cd.yml
  • .github/workflows/ts-sdk-cd.yml
  • .github/workflows/ts-sdk-ci.yml
  • .github/workflows/vercel-ai-cd.yml
  • CONTRIBUTING.md
  • docs/changelog/sdk.mdx
  • mem0-ts/jest.config.js
  • mem0-ts/jest.setup.ts
  • mem0-ts/src/global.d.ts
  • mem0-ts/src/oss/src/utils/telemetry.ts
  • mem0-ts/tsup.config.ts

本页面概述了为 Mem0 代码库贡献代码的开发工作流。它涵盖了从环境搭建到测试、再到跨多种语言(Python、TypeScript)和平台的部署的完整开发生命周期。有关生产部署信息,请参见部署模型。有关托管平台详情,请参见托管平台概述

开发工作流概述

Mem0 的开发工作流遵循一个结构化的流程,从环境搭建到代码贡献和自动化部署。下图展示了完整的开发者旅程:

开发者工作流图:

Mem0 · 开发工作流概述 · 图 1
Mem0 · 开发工作流概述 · 图 1

来源:CONTRIBUTING.md:5-16, CONTRIBUTING.md:65-85, .github/workflows/ci.yml:1-118

贡献者快速入门

基本设置过程使用 hatch 进行 Python 包管理,使用 pnpm 管理 TypeScript 组件:

# Python:激活 Python 3.11 环境
hatch shell dev_py_3_11

# 安装 pre-commit 钩子
pre-commit install

# TypeScript:安装依赖
cd mem0-ts && pnpm install

详情请参见开发环境搭建

来源:CONTRIBUTING.md:19-41

测试概述

Mem0 使用 pytest 进行 Python 测试,使用 jest 进行 TypeScript 测试。测试按组件和平台组织:

目录用途工具
tests/核心 Mem0 Python 功能pytest
mem0-ts/TypeScript SDK 和 OSS 组件jest
embedchain/tests/遗留 Embedchain 系统pytest

基本测试命令:

# Python
make test                # 使用默认 Python 运行测试

# TypeScript
cd mem0-ts && pnpm run test:unit  # 运行单元测试
cd mem0-ts && pnpm run test:integration # 运行集成测试

详情请参见测试

来源:CONTRIBUTING.md:43-59, .github/workflows/ts-sdk-ci.yml:96-147

持续集成与持续交付管线概述

Mem0 仓库使用 GitHub Actions 进行自动化测试和部署。该管线采用基于路径的过滤来优化构建时间。

CI/CD 架构图:

Mem0 · 持续集成与持续交付管线概述 · 图 2
Mem0 · 持续集成与持续交付管线概述 · 图 2

来源:.github/workflows/ci.yml:1-118, .github/workflows/cd.yml:1-46, .github/workflows/ts-sdk-cd.yml:1-47, .github/workflows/openclaw-cd.yml:1-10

发布流程

发布通过创建带有特定标签前缀的 GitHub Release 来触发。所有包都使用 OIDC 可信发布以确保安全。

注册表标签前缀工作流
mem0ai (Python)PyPIv*cd.yml
mem0ai (TS)npmts-v*ts-sdk-cd.yml
@mem0/cli (Node)npmcli-node-v*cli-node-cd.yml
@mem0/openclaw-mem0npmopenclaw-v*openclaw-cd.yml

详情请参见CI/CD 管线

来源:CONTRIBUTING.md:65-85, .github/workflows/openclaw-cd.yml:1-10

贡献指南

Mem0 遵循 fork-and-pull-request 工作流。PR 的一个关键要求是 changelog_check,当在 pyproject.toml(Python)或 package.json(TypeScript)中检测到版本升级时,它会强制要求在 docs/changelog/sdk.mdx 中更新文档。

提交前必需:

  1. Fork 并克隆仓库。
  2. 创建功能分支 feature/f1
  3. 为新功能或错误修复添加测试。
  4. 确保所有测试在支持的版本上通过。
  5. 如果版本号发生变化,更新文档和 docs/changelog/sdk.mdx

详情请参见贡献指南

来源:CONTRIBUTING.md:5-16, .github/workflows/ci.yml:20-57, .github/workflows/ts-sdk-ci.yml:27-62

文档系统

Mem0 的文档使用 Mintlify,位于 docs/ 目录中。它跟踪 Python SDK、TypeScript SDK 和相关工具的变更。最近的主要更新包括 V3 记忆管线,该管线已过渡到仅 ADD 事件和混合搜索。

详情请参见文档系统

来源:docs/changelog/sdk.mdx:1-5, docs/changelog/sdk.mdx:41-69

遥测与分析

SDK 包含一个使用 PostHog 的遥测系统,用于跟踪使用情况并改进系统。

遥测实现:

  • Python: 通过 MEM0_TELEMETRY 环境变量管理。
  • TypeScript:UnifiedTelemetry 类中实现 mem0-ts/src/oss/src/utils/telemetry.ts:40-90。它使用 API 密钥和主机来捕获事件 mem0-ts/src/oss/src/utils/telemetry.ts:18-19
  • 采样: OSS 事件以默认速率 0.1 进行采样 mem0-ts/src/oss/src/utils/telemetry.ts:23,而生命周期事件(init、reset)绕过采样 mem0-ts/src/oss/src/utils/telemetry.ts:38
  • 版本跟踪: SDK 版本在构建时使用 __MEM0_SDK_VERSION__ 标识符注入 mem0-ts/src/oss/src/utils/telemetry.ts:10-11, mem0-ts/tsup.config.ts:27-29

有关基准测试的详细信息,请参见评估框架

来源:mem0-ts/src/oss/src/utils/telemetry.ts:14-38, mem0-ts/src/oss/src/utils/telemetry.ts:40-90, mem0-ts/tsup.config.ts:27-29