agentic_huge_data_base / wiki
页面 Mem0 · 13 CLI·DeepWiki 中文全文译文

13 · CLI

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

项目Mem0 章节13 状态全文译文 模块测试、发布与运维、检索、召回与索引、配置治理、文档对象与元数据
源码线索
  • cli/CLI_SPECIFICATION.md
  • cli/README.md
  • cli/node/package.json
  • cli/node/src/backend/platform.ts
  • cli/node/src/config.ts
  • cli/node/src/index.ts
  • cli/node/src/telemetry.ts
  • cli/node/telemetry-sender.cjs
  • cli/python/Makefile
  • cli/python/development.md
模块标签
  • 测试、发布与运维
  • 检索、召回与索引
  • 配置治理
  • 文档对象与元数据
  • 安装与启动

章节正文

CLI

CLI

相关源文件

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

  • cli/CLI_SPECIFICATION.md
  • cli/README.md
  • cli/node/package.json
  • cli/node/src/backend/platform.ts
  • cli/node/src/config.ts
  • cli/node/src/index.ts
  • cli/node/src/telemetry.ts
  • cli/node/telemetry-sender.cjs
  • cli/python/Makefile
  • cli/python/development.md
  • cli/python/pyproject.toml
  • cli/python/src/mem0_cli/__init__.py
  • cli/python/src/mem0_cli/app.py
  • cli/python/src/mem0_cli/backend/platform.py
  • cli/python/src/mem0_cli/config.py
  • cli/python/src/mem0_cli/telemetry.py
  • cli/python/src/mem0_cli/telemetry_sender.py
  • docs/platform/cli.mdx

Mem0 CLI 提供了一个统一的命令行界面,用于与 Mem0 记忆层进行交互。它既可作为 Python 包(mem0-cli)使用,也可作为 Node.js 包(@mem0/cli)使用,在不同开发环境中提供相同的功能来管理记忆、实体和配置。

CLI 主要与 Mem0 平台 API(SaaS)交互,允许用户直接在终端中对记忆执行增删改查操作、搜索关系型知识以及检查后台处理事件。

系统交互图

下图展示了 CLI 组件如何在用户命令与底层平台 API 实体之间建立桥梁。

CLI 实体映射

Mem0 · 系统交互图 · 图 1
Mem0 · 系统交互图 · 图 1

来源:cli/python/src/mem0_cli/app.py:23-55, cli/node/src/index.ts:139-158, cli/python/src/mem0_cli/backend/platform.py:14-30, cli/node/src/backend/platform.ts:20-33, cli/python/pyproject.toml:42-42

安装与命令

CLI 可以通过 pipnpm 安装。安装后,它提供了一套丰富的命令用于记忆管理,包括 addsearchlistdelete。它还支持高级实体和事件检查。

有关具体命令语法和使用示例的详细信息,请参见 CLI 安装与命令

特性Python 实现Node.js 实现
包名mem0-cli@mem0/cli
框架typercommander
安装方式pip install mem0-clinpm install -g @mem0/cli
版本0.2.40.2.4

来源:cli/python/pyproject.toml:6-7, cli/node/package.json:2-3, cli/python/src/mem0_cli/app.py:23-32, cli/node/src/index.ts:139-157, cli/python/src/mem0_cli/__init__.py:3-3

配置与代理模式

CLI 在 ~/.mem0/config.json 维护一个本地配置文件。该文件存储 API 密钥、基础 URL 以及默认的作用域 ID(用户 ID、代理 ID、应用 ID 和运行 ID)。CLI 遵循严格的配置优先级:CLI 标志覆盖环境变量,环境变量覆盖配置文件,配置文件覆盖硬编码的默认值。

代理模式逻辑

CLI 包含一个专门的 --agent(或 --json)模式。启用后,CLI 会抑制人类可读的"品牌"输出(颜色、旋转动画、边框),并返回原始 JSON。这使得 AI 代理可以在循环中将 CLI 作为工具使用。

CLI 执行流程

Mem0 · 代理模式逻辑 · 图 2
Mem0 · 代理模式逻辑 · 图 2

来源:cli/python/src/mem0_cli/config.py:72-120, cli/node/src/config.ts:69-104, cli/python/src/mem0_cli/app.py:194-211, cli/node/src/index.ts:92-97, cli/python/src/mem0_cli/backend/platform.py:33-35, cli/node/src/backend/platform.ts:48-49

有关配置模式以及如何将 CLI 集成到代理工作流中的详细信息,请参见 CLI 配置与代理模式

遥测

两种 CLI 实现都包含通过 PostHog 进行的匿名使用跟踪,以帮助维护者了解命令频率和错误率。遥测是非阻塞的;它会生成一个分离的子进程(telemetry_sender.pytelemetry-sender.cjs),这样主 CLI 执行永远不会因向遥测采集服务器的网络请求而延迟。

  • 退出机制: 可以通过设置环境变量 MEM0_TELEMETRY=false 来禁用遥测。
  • 身份标识: 系统会尝试使用用户的电子邮件(从 ping 检查中缓存)、API 密钥的 MD5 哈希值或配置文件中存储的持久匿名 ID 来解析稳定的 distinct_id
  • 子进程逻辑: 如果电子邮件尚未缓存,telemetry_sender 会通过 /v1/ping/ 端点处理电子邮件解析,确保父进程保持快速响应。

来源:cli/python/src/mem0_cli/telemetry.py:26-48, cli/node/src/telemetry.ts:24-53, cli/python/src/mem0_cli/telemetry_sender.py:23-38, cli/node/src/telemetry.ts:88-153