Skip to content

memos add 成功但立即 get/list 查不到;且不存在 memos list 子命令 #39

Description

@Memtensor-AI

现象

  • 执行 memos add "测试记忆" 命令返回成功(打印 memory added),但立即执行 memos get(用户描述为 memory list)时查不到刚写入的内容。
  • 两个账号可稳定复现;退出重新登录仍存在。

复现步骤

  1. 已完成 memos init 或配置好 ~/.memos/config.yaml
  2. memos add "测试记忆" → 显示成功。
  3. 立即 memos get(或用户尝试的 memos list)→ 记忆缺失。

根因假设(基于代码证据)

1. memos list 命令根本不存在(表面 UX/文档不一致)

  • src/memos_cli/main.py:128-151 只注册了 add / search / get / origin / delete / extract / rerank / feedback / chat / message / status / kb;没有 list 命令,也没有 memory 子命令组。
  • MemOS CLI.md:52 与 skill 文档示例中出现 memos list --user-id ... --format tableREADME.md:145 又统一改为 memos get
  • 用户若照着 MemOS CLI.mdmemos list 会直接失败或落到 typer 的 help,Skill 层可能吞掉错误、看起来“查不到”。

2. add 走异步入库,但 CLI 的完成语义不准确

  • src/memos_cli/backend/memory_api.py:57-79add_memory 调用 POST /add/message,是“消息 → 抽取 → 落库”的管道,天然是异步流程。
  • API 支持 async_modememory_api.py:72),cmd_add 也透传该字段(src/memos_cli/commands/memory_cmd.py:251),但顶层 typer 命令没有暴露此选项,src/memos_cli/commands/memory.py:23-44 硬编码 async_mode=None,用户无法要求同步等待。
  • add 完成后 src/memos_cli/output.py:1084 直接打印 "memory added",未告知这是"入队成功"而非"已落库可查"。
  • 后端 /get/statussrc/memos_cli/backend/message_api.py:35-41)是现成的轮询入口,但 add 路径没有拿返回里的 task_id 去轮询,也没有把 task_id 提示给用户。

3. get 侧作用域正常,可以排除 scope 不匹配

  • src/memos_cli/backend/memory_api.py:168-190/get/memory 只按 user_id 过滤,不受 conversation_id 影响。
  • add 默认走 DEFAULT_CONVERSATION_ID = "memos-cli-default"memory_cmd.py:236-240),所以“scope 对不上”这个假设不成立,主因是时序 / 异步。

建议修复方向(供确认,不在本任务修改)

  1. 顶层 add 命令暴露 --async-mode/--wait/--wait-timeout,并在同步等待时基于响应中的 task_id 轮询 /get/status 直到 completed/failed
  2. 完成信息更准确output.py"memory added" 改为 "memory add accepted (task_id=..., not yet queryable)" 或在等待成功后再打印 added。
  3. 补齐 memos list 命令(作为 memos get 的别名 / 或替换文档)——统一 MemOS CLI.md、skill 示例、README.md 对该命令名的表述。
  4. 客户端可在 add 成功但 get 立即查询未命中时给出一次“记忆入库通常有异步延迟,请几秒后重试或使用 memos status <task_id>”的提示。

佐证行号

  • src/memos_cli/main.py:128-151(命令注册中没有 list
  • src/memos_cli/commands/memory.py:23-44add 未暴露 async_mode
  • src/memos_cli/commands/memory_cmd.py:236-251(conversation_id 与 async_mode 传递)
  • src/memos_cli/backend/memory_api.py:57-79(/add/message)
  • src/memos_cli/backend/memory_api.py:168-190(/get/memory 按 user_id)
  • src/memos_cli/backend/message_api.py:35-41(/get/status 已存在但 add 未使用)
  • src/memos_cli/output.py:1084(提前打印 memory added)
  • MemOS CLI.md:52 vs README.md:145memos listmemos get 表述冲突)

trace_id: a49426794ddd65d6ced38b27f2d47e63

Metadata

Metadata

Labels

ai:pr-readyAI-created PR is ready for review | AI 生成的 PR 已等待评审area:coreMOS 编排层 / 框架底座 / 跨模块问题status:in-progressSomeone or AI is working on it | 人工或 AI 正在处理

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions