mcpField
H
health

health

github.com/mem0aiAgent 工作流68.2k94 次安装1 天前更新
代码仓库

关于 health

用于诊断 Mem0 插件的技能,检查配置、身份解析、MCP 连接、记忆写入和会话跟踪。深度模式还会扫描记忆质量问题。

主要功能

  1. 01检查 API 密钥和身份信息
  2. 02测试 MCP 连接
  3. 03测试记忆写入与清理
  4. 04验证会话统计文件
  5. 05深度扫描记忆质量

适用场景

  1. 01排查 Mem0 插件配置问题
  2. 02验证记忆读写权限
  3. 03检查已存记忆的质量

MCP 相关

诊断时使用 Mem0 MCP 工具搜索、新增、检查和删除记忆;深度模式还会检索记忆进行分析。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mem0ai/mem0 --skill health

安装后在 Claude Code 中输入/health确认已加载。

详细介绍

Mem0 健康检查

运行 mem0 插件诊断检查。适用于故障排查。

执行

运行所有检查,然后显示单个摘要。不要在首次失败时停止。

检查 1:API 密钥
_KEY="${MEM0_API_KEY:-${CLAUDE_PLUGIN_OPTION_MEM0_API_KEY:-}}"
[ -n "$_KEY" ] && echo "${_KEY:0:6}..." || echo "NOT_SET"
  • 如果为 NOT_SET:失败 —“未配置 API 密钥”
  • 如果已设置:通过 — 该命令只会打印前 6 个字符
检查 2:身份解析

使用插件自身的解析脚本解析身份,以匹配钩子的行为:

SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${CURSOR_PLUGIN_ROOT:-}}}/scripts"
source "$SCRIPT_DIR/_identity.sh" 2>/dev/null
echo "user_id=${MEM0_RESOLVED_USER_ID:-}"
echo "project_id=${MEM0_PROJECT_ID:-}"
echo "branch=${MEM0_BRANCH:-}"

如果 CLAUDE_PLUGIN_ROOT 不可用,则回退到:

  • user_id:取自 MEM0_USER_ID 或 $USER
  • project_id:取自 MEM0_PROJECT_ID,或检查 ~/.mem0/project_map.json 中 $PWD 对应的值
  • branch:取自 git branch --show-current

如果这三项均非空,则通过。如果任何一项回退到默认值,则发出警告。

检查 3:MCP 服务连通性

调用 search_memories,参数如下:

  • query="health check"

  • filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}

  • top_k=1

  • 如果调用成功返回(即使结果为空):通过

  • 如果出错:失败 — 显示错误消息

检查 4:记忆写入能力

调用 add_memory,参数如下:

  • text="Health check probe — safe to delete."
  • user_id=<active_user_id>
  • app_id=<active_project_id>
  • metadata={"type": "health_check", "probe": true}
  • infer=False

响应会返回 event_id(v3 写入为异步操作)。调用 get_event_status(event_id=<event_id>) 检查处理状态。

  • 如果状态为 SUCCEEDED:通过 — 从事件结果中提取记忆 ID,然后调用 delete_memory 并传入该 ID 进行清理。
  • 如果 5 秒后状态仍为 PENDING:通过(写入已接受,处理延迟)
  • 如果出错:失败 — 显示错误。
检查 5:会话统计跟踪器

检查会话统计文件是否存在且可读:

STATS_FILE="/tmp/mem0_session_stats_${USER}.json"
if [ -f "$STATS_FILE" ] && python3 -c "import json; json.load(open('$STATS_FILE'))" 2>/dev/null; then
  echo "OK"
else
  echo "FAIL"
fi

此文件由 SessionStart 钩子创建,并在整个会话期间由 PostToolUse 钩子更新。如果文件不存在,会话钩子可能尚未触发 — 请先发送一条消息,然后重新检查。

显示
## mem0 health

PASS  API Key          m0-dVe...
PASS  Identity         user=kartik, project=mem0, branch=main
PASS  MCP Connection   142ms
PASS  Write/Read       write + delete OK
PASS  Session Tracker  stats file active

All checks passed.

如果任何检查失败,则添加 ## Troubleshooting 部分,并针对每项失败提供具体的修复步骤。

扩展模式:记忆质量分析

使用 --deep 调用时(例如 /mem0:health --deep),运行上述标准的 5 项检查,并且执行记忆质量扫描。

质量检查 1:重复项

调用 get_memories,参数为 filters={"AND": [{"user_id": "<active_user_id>"}, {"app_id": "<active_project_id>"}]}、page_size=200。比较同一 metadata.type 分组中的所有记忆对,找出文本高度重叠(共享名词/关键词 > 60%)的情况。报告:

Potential duplicates: <N> pairs
  [mem0:<id1>] ≈ [mem0:<id2>] — both about "<shared topic>"
质量检查 2:过期记忆

标记符合以下条件的记忆:

  • metadata.type 为 session_state 或 compact_summary,且时间早于 90 天
  • metadata.confidence < 0.3,且时间早于 30 天
Stale candidates: <N>
  [mem0:<id>] — session_state, 142d old
质量检查 2b:低置信度记忆

标记 metadata.confidence < 0.5 的记忆(不考虑年龄)。与过期记忆分开报告:

Low-confidence memories: <N>
  [mem0:<id>] — confidence=0.3, "<content preview>"
质量检查 3:矛盾

在每个 metadata.type 分组中,标记针对同一主题提出相反事实的记忆对。使用语义判断 — 查找否定模式、相互冲突的工具/框架选择或相反的决策。

Possible contradictions: <N>
  [mem0:<idA>] vs [mem0:<idB>] — conflicting on "<topic>"
质量检查 4:孤立记忆

未设置 metadata.type,或 metadata.type 不属于 17 个已知编码类别的记忆。这些记忆很可能是在未正确添加标签的情况下写入的。

Untagged/orphan memories: <N>
质量摘要
## Memory Quality

Duplicates: <N> · Stale: <N> · Contradictions: <N> · Orphans: <N>

如果所有计数均为 0:Memory quality: clean. 如果有任意非零计数:追加 Run /mem0:dream to fix.

要修复 --deep 发现的问题,请运行 /mem0:dream 以自动整合(合并、精简、解决冲突)。

评论

支持 Markdown