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

14 · 开发(Development)

长期记忆与上下文管理 · 本章是 Mem0 DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目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
模块标签
  • 测试、发布与运维
  • 文档对象与元数据
  • 安装与启动
  • 工作流与编排
  • 界面与交互

中文译文

开发(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/14-development
翻译时间:2026-05-27T08:45:04.790Z
翻译模型:deepseek-chat
原文字符数:8002
项目:Mem0 (mem0)

---

开发

相关源文件

以下文件被用作生成此 Wiki 页面的上下文:

  • .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 的开发工作流遵循一个结构化的流程,从环境搭建到代码贡献和自动化部署。下图展示了完整的开发者旅程:

开发者工作流图:

graph TB
    Setup["环境搭建<br/>hatch shell dev_py_3_XX"]
    PreCommit["安装 pre-commit 钩子<br/>pre-commit install"]
    Branch["创建功能分支<br/>feature/feature-name"]
    Code["编写代码"]
    Quality["质量检查"]
    Test["运行测试<br/>make test / pnpm test"]
    Submit["提交 PR"]
    CI["GitHub Actions CI<br/>.github/workflows/ci.yml"]
    Review["代码评审"]
    Merge["合并到 main 分支"]
    Release["创建发布<br/>使用标签前缀"]
    CD["GitHub Actions CD<br/>.github/workflows/*-cd.yml"]
    Publish["发布到 PyPI / npm"]

    Setup --> PreCommit
    PreCommit --> Branch
    Branch --> Code
    Code --> Quality
    Quality --> Test
    Test --> Submit
    Submit --> CI
    CI --> Review
    Review --> Merge
    Merge --> Release
    Release --> CD
    CD --> Publish

    Quality --> Lint["make lint / ruff"]
    Quality --> Format["make format / ruff format"]

来源: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 架构图:

graph TB
    subgraph "持续集成 (.github/workflows/ci.yml)"
        PushPR["推送 / 拉取请求"]
        CheckChanges["check_changes<br/>dorny/paths-filter@v2"]
        BuildMem0["build_mem0<br/>Python 3.10-3.12"]
        BuildEmbedchain["build_embedchain<br/>Python 3.9-3.12"]
        Changelog["changelog_check<br/>版本升级必需"]

        PushPR --> CheckChanges
        CheckChanges -->|"mem0/**"| BuildMem0
        CheckChanges -->|"embedchain/**"| BuildEmbedchain
        PushPR --> Changelog
    end

    subgraph "持续部署"
        Release["GitHub 发布已发布"]
        CD_Python["cd.yml<br/>前缀:v*"]
        CD_TS["ts-sdk-cd.yml<br/>前缀:ts-v*"]
        CD_CLI["cli-node-cd.yml<br/>前缀:cli-node-v*"]
        CD_OpenClaw["openclaw-cd.yml<br/>前缀:openclaw-v*"]

        Release --> CD_Python
        Release --> CD_TS
        Release --> CD_CLI
        Release --> CD_OpenClaw
    end

来源:.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