Pre-submission checklist | 提交前检查
Bug Description | 问题描述
在 src/memos/multi_mem_cube/single_cube.py 的 SingleCubeView.search_memories(约 L89–134)中,搜索结果组装完成后会用 logger.info 直接打印整个 memories_result:
# src/memos/multi_mem_cube/single_cube.py:132-133
self.logger.info(f"Search memories result: {memories_result}")
self.logger.info(f"Search {len(memories_result)} memories.")
搜索路径里,当 dedup 为 mmr 或 sim 时,format_memory_item(..., include_embedding=True)(src/memos/api/handlers/formatters_handler.py)会保留每条 memory 的 metadata.embedding 高维向量。
而 APISearchRequest 的默认值是:
因此在默认配置下,每次 search 都会把完整 embedding 向量打进日志,带来:
- 日志暴涨:单条记忆通常是数百~上千维浮点数组,
top_k 稍大时一次搜索可产生数 MB 日志。
- 噪声掩盖真正有用的信息:难以从日志中快速定位记忆 ID / 文本 / 分数等关键字段。
- 潜在隐私 / 合规风险:向量可能被用于近似还原语义内容,不宜无条件写入日志。
How to Reproduce | 如何重现
- 部署 MemOS API(含可写入的文本记忆),确认日志级别为
INFO。
- 向已有记忆的用户发起一次默认参数搜索(无需显式设置
dedup),例如:
curl -X POST "http://localhost:8000/product/search" \
-H "Content-Type: application/json" \
-d '{
"user_id": "<your_user_id>",
"query": "test query",
"top_k": 5
}'
- 查看服务日志,定位类似输出:
Search memories result: {'text_mem': [{'cube_id': '...', 'memories': [{..., 'metadata': {'embedding': [0.0123, -0.0456, ...], ...}}]}], ...}
- (对照)将请求改为
"dedup": "no" 再搜索一次,日志中 embedding 应变为空列表 [],可确认向量内容来自 include_embedding=True 分支。
Environment | 环境信息
| MemOS 版本 | 2.0.23 |
| 相关代码 | src/memos/multi_mem_cube/single_cube.py → SingleCubeView.search_memories L132–133 |
| 默认参数 | mode=fast, dedup=mmr(APISearchRequest) |
Additional Context | 其他信息
No response
Willingness to Implement | 实现意愿
Pre-submission checklist | 提交前检查
Bug Description | 问题描述
在
src/memos/multi_mem_cube/single_cube.py的SingleCubeView.search_memories(约 L89–134)中,搜索结果组装完成后会用logger.info直接打印整个memories_result:搜索路径里,当
dedup为mmr或sim时,format_memory_item(..., include_embedding=True)(src/memos/api/handlers/formatters_handler.py)会保留每条 memory 的metadata.embedding高维向量。而
APISearchRequest的默认值是:mode=fastdedup=mmr因此在默认配置下,每次 search 都会把完整 embedding 向量打进日志,带来:
top_k稍大时一次搜索可产生数 MB 日志。How to Reproduce | 如何重现
INFO。dedup),例如:"dedup": "no"再搜索一次,日志中embedding应变为空列表[],可确认向量内容来自include_embedding=True分支。Environment | 环境信息
| MemOS 版本 | 2.0.23 |
| 相关代码 |
src/memos/multi_mem_cube/single_cube.py→SingleCubeView.search_memoriesL132–133 || 默认参数 |
mode=fast,dedup=mmr(APISearchRequest) |Additional Context | 其他信息
No response
Willingness to Implement | 实现意愿