agentic_huge_data_base / wiki
页面 Mem0 · 14.4 贡献指南·DeepWiki 中文全文译文

14.4 · 贡献指南

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

项目Mem0 章节14.4 状态全文译文 模块测试、发布与运维、文档对象与元数据、安装与启动、系统架构
源码线索
  • .github/workflows/cd.yml
  • .github/workflows/cli-node-cd.yml
  • .github/workflows/openclaw-cd.yml
  • .github/workflows/ts-sdk-cd.yml
  • .github/workflows/vercel-ai-cd.yml
  • CONTRIBUTING.md
  • docs/components/vectordbs/dbs/pinecone.mdx
  • docs/contributing/development.mdx
  • docs/contributing/documentation.mdx
  • mem0/configs/vector_stores/pinecone.py
模块标签
  • 测试、发布与运维
  • 文档对象与元数据
  • 安装与启动
  • 系统架构
  • 检索、召回与索引

章节正文

贡献指南

贡献指南

相关源文件

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

  • .github/workflows/cd.yml
  • .github/workflows/cli-node-cd.yml
  • .github/workflows/openclaw-cd.yml
  • .github/workflows/ts-sdk-cd.yml
  • .github/workflows/vercel-ai-cd.yml
  • CONTRIBUTING.md
  • docs/components/vectordbs/dbs/pinecone.mdx
  • docs/contributing/development.mdx
  • docs/contributing/documentation.mdx
  • mem0/configs/vector_stores/pinecone.py
  • mem0/vector_stores/pinecone.py
  • tests/vector_stores/test_pinecone.py

本文档记录了 Mem0 仓库的贡献流程,包括开发环境搭建、代码质量标准、测试流程以及持续集成/持续部署(CI/CD)工作流。内容涵盖 Python 和 Node.js 生态系统的代码与文档贡献。

贡献工作流

Mem0 采用标准的 Fork 和拉取请求工作流。所有贡献必须通过 GitHub 拉取请求提交,并在合并前通过自动化质量检查。

拉取请求提交流程
Mem0 · 拉取请求提交流程 · 图 1
Mem0 · 拉取请求提交流程 · 图 1

贡献要求:

  1. 功能分支:使用专用的功能分支,例如 feature/my-new-feature docs/contributing/development.mdx:16-16feature/f1 CONTRIBUTING.md:10-10
  2. 需要测试:如果修改了代码(新功能或缺陷修复),请添加相应的测试 CONTRIBUTING.md:11-11
  3. 文档:包含适当的文档/文档字符串以及运行该功能的示例 CONTRIBUTING.md:12-12
  4. 验证:确保所有测试在所有支持的版本上通过后再提交 CONTRIBUTING.md:13-13, CONTRIBUTING.md:61-61

来源:CONTRIBUTING.md:5-16, CONTRIBUTING.md:61-61, docs/contributing/development.mdx:9-25

开发环境搭建

Mem0 使用 hatch 管理 Python 环境,使用 pnpm 管理 Node.js/TypeScript 组件。

Python 环境架构
Mem0 · Python 环境架构 · 图 2
Mem0 · Python 环境架构 · 图 2
环境激活命令
语言工具命令用途
Pythonhatchhatch shell dev_py_3_11激活 Python 3.11 开发环境 CONTRIBUTING.md:27-27
Pythonhatchhatch build --clean构建二进制 Wheel 包和源码压缩包 .github/workflows/cd.yml:32-32
Pythonpre-commitpre-commit install安装 Git 钩子 CONTRIBUTING.md:40-40
Pythonmakemake install_all安装所有可选依赖 docs/contributing/development.mdx:44-44
Node.jspnpmpnpm install --frozen-lockfile在子包中安装依赖 .github/workflows/openclaw-cd.yml:34-34

来源:CONTRIBUTING.md:19-33, CONTRIBUTING.md:35-41, docs/contributing/development.mdx:29-45, .github/workflows/cd.yml:22-33

代码标准与质量

为了保持代码库的一致性,贡献者必须遵守特定的代码检查和格式化标准。

标准检查清单
  • 代码检查:使用 ruff 通过 make lint 捕获样式问题 docs/contributing/development.mdx:59-65
  • 格式化:使用 make format 格式化代码 docs/contributing/development.mdx:67-73
  • 配置校验:新组件(如向量存储)必须使用 pydantic.BaseModel 进行配置校验,包括使用 model_validator 进行跨字段检查 mem0/configs/vector_stores/pinecone.py:7-55
实现示例:向量存储提供者

添加新提供者时,请遵循 PineconeDB 中建立的模式:

  1. 继承自 VectorStoreBase mem0/vector_stores/pinecone.py:25-25
  2. 实现核心方法:create_colinsertsearchupdategetdelete mem0/vector_stores/pinecone.py:93-210
  3. mem0/configs/vector_stores/ 中提供配置类 mem0/configs/vector_stores/pinecone.py:7-7

来源:docs/contributing/development.mdx:49-82, mem0/vector_stores/pinecone.py:25-210, mem0/configs/vector_stores/pinecone.py:7-55

测试要求

所有代码变更必须包含测试,并通过现有测试套件。Python 测试通过 pytestmake 管理。

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

# 测试特定 Python 版本
make test-py-3.9
make test-py-3.10
make test-py-3.11
make test-py-3.12

CONTRIBUTING.md:45-59

测试模式

测试应使用 unittest.mock 隔离外部依赖,并使用 pytest.fixture 实现可复用的设置 tests/vector_stores/test_pinecone.py:1-17

来源:CONTRIBUTING.md:45-59, tests/vector_stores/test_pinecone.py:1-191

文档系统

Mem0 使用 Mintlify 管理文档。

本地文档搭建
  1. 前置条件:Node.js 版本 23.6.0 或更高 docs/contributing/documentation.mdx:11-11
  2. 安装npm i -g mintlify docs/contributing/documentation.mdx:24-24
  3. 执行:在 docs/ 目录下运行 mintlify dev docs/contributing/documentation.mdx:38-38

来源:docs/contributing/documentation.mdx:1-55

持续部署与发布

Mem0 使用 GitHub Actions 进行自动化发布。发布通过创建带有特定标签前缀的 GitHub Release 来触发。

发布标签系统
注册表标签前缀示例标签工作流文件
mem0ai(Python SDK)PyPIv*v0.1.31.github/workflows/cd.yml
mem0-cli(Python CLI)PyPIcli-v*cli-v0.2.1-
mem0ai(TS SDK)npmts-v*ts-v2.4.6.github/workflows/ts-sdk-cd.yml
@mem0/cli(Node CLI)npmcli-node-v*cli-node-v0.1.2.github/workflows/cli-node-cd.yml
@mem0/vercel-ai-providernpmvercel-ai-v*vercel-ai-v2.0.6.github/workflows/vercel-ai-cd.yml
@mem0/openclaw-mem0npmopenclaw-v*openclaw-v1.0.1.github/workflows/openclaw-cd.yml

来源:CONTRIBUTING.md:71-78

部署工作流(Python 示例)
Mem0 · 部署工作流(Python 示例) · 图 3
Mem0 · 部署工作流(Python 示例) · 图 3

发布详情:

  • PyPI:通过 pypa/gh-action-pypi-publish 使用 OIDC 可信发布 .github/workflows/cd.yml:43-45
  • npm:通过 npm CLI(>= 11.5.1)使用 --provenance 进行 OIDC 可信发布 .github/workflows/ts-sdk-cd.yml:43-45
  • 前置条件:在创建 Release 之前,必须在 pyproject.tomlpackage.json 中更新版本号 CONTRIBUTING.md:82-82

来源:.github/workflows/cd.yml:1-46, .github/workflows/ts-sdk-cd.yml:1-47, CONTRIBUTING.md:65-92