CLI(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/13-cli
翻译时间:2026-05-27T08:45:00.817Z
翻译模型:deepseek-chat
原文字符数:6452
项目:Mem0 (mem0)
---
CLI
相关源文件
以下文件被用作生成此 Wiki 页面的上下文:
cli/CLI_SPECIFICATION.mdcli/README.mdcli/node/package.jsoncli/node/src/backend/platform.tscli/node/src/config.tscli/node/src/index.tscli/node/src/telemetry.tscli/node/telemetry-sender.cjscli/python/Makefilecli/python/development.mdcli/python/pyproject.tomlcli/python/src/mem0_cli/__init__.pycli/python/src/mem0_cli/app.pycli/python/src/mem0_cli/backend/platform.pycli/python/src/mem0_cli/config.pycli/python/src/mem0_cli/telemetry.pycli/python/src/mem0_cli/telemetry_sender.pydocs/platform/cli.mdx
Mem0 CLI 提供了一个统一的命令行界面,用于与 Mem0 记忆层进行交互。它既可作为 Python 包(mem0-cli)使用,也可作为 Node.js 包(@mem0/cli)使用,在不同开发环境中提供相同的功能来管理记忆、实体和配置。
CLI 主要与 Mem0 平台 API(SaaS)交互,允许用户直接在终端中对记忆执行增删改查操作、搜索关系型知识以及检查后台处理事件。
系统交互图
下图展示了 CLI 组件如何在用户命令与底层平台 API 实体之间建立桥梁。
CLI 实体映射
graph TD
subgraph "CLI 入口点"
P_APP["mem0_cli.app:main"]
N_INDEX["cli/node/src/index.ts"]
end
subgraph "逻辑与状态"
CONFIG["配置管理器<br/>(load_config / save_config)"]
BACKEND["PlatformBackend<br/>(v3 API 客户端)"]
end
subgraph "平台 API 实体"
MEM["记忆<br/>(/v3/memories/)"]
ENT["实体<br/>(/v1/entities/)"]
EVT["事件<br/>(/v1/events/)"]
end
P_APP -- "使用" --> CONFIG
N_INDEX -- "使用" --> CONFIG
P_APP -- "实例化" --> BACKEND
N_INDEX -- "实例化" --> BACKEND
BACKEND -- "POST /v3/memories/search/" --> MEM
BACKEND -- "GET /v1/entities/" --> ENT
BACKEND -- "GET /v1/events/" --> EVT
来源: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 可以通过 pip 或 npm 安装。安装后,它提供了一套丰富的命令用于记忆管理,包括 add、search、list 和 delete。它还支持高级实体和事件检查。
有关具体命令语法和使用示例的详细信息,请参见 CLI 安装与命令。
| 特性 | Python 实现 | Node.js 实现 |
|---|---|---|
| 包名 | mem0-cli | @mem0/cli |
| 框架 | typer | commander |
| 安装方式 | pip install mem0-cli | npm install -g @mem0/cli |
| 版本 | 0.2.4 | 0.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 执行流程
flowchart LR
START(["用户/代理命令"]) --> LOAD_CFG["load_config()"]
LOAD_CFG --> CHECK_MODE{"is_agent_mode()?"}
subgraph "执行"
CHECK_MODE -- "是" --> SET_STATE["set_agent_mode(true)"]
CHECK_MODE -- "否" --> UI["显示旋转动画/颜色"]
SET_STATE --> REQ["PlatformBackend._request()"]
UI --> REQ
end
REQ --> OUT{"输出格式"}
OUT -- "JSON" --> STDOUT["标准输出(原始)"]
OUT -- "文本" --> TABLE["富表格/格式化"]
来源: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.py 或 telemetry-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