MemPalace 旧 Drawer 缺少 authored_at 字段怎么修复:backfill 脚本与重挖两种方式

发布时间:2026/9/13 19:28:02

MemPalace 旧 Drawer 缺少 authored_at 字段怎么修复:backfill 脚本与重挖两种方式 MemPalace 旧 Drawer 缺少 authored_at 字段怎么修复backfill 脚本与重挖两种方式【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace如果你的 MemPalace 里有些对话类 Drawer 只有入库时间、没有内容实际书写时间authored_at本文给出两条文档支持的修复路径原地 backfill 脚本推荐不重新嵌入和删除后重挖。适用前提是这些 Drawer 来自带逐行时间戳的 Claude Code / Codex JSONL 对话且对应的.jsonl转录文件仍在磁盘上。问题背景为什么旧 Drawer 没有 authored_atMemPalace 的 miner 在挖掘对话转录时会把每行 ISO-8601timestamp里最近的一条记录为该 Drawer 的authored_at——也就是内容真正被写下的时间。这个字段和入库时间是两回事字段含义filed_at/ 结果的created_atDrawer 被挖掘写入宫殿的时间批量重挖会让它们塌缩到同一时刻authored_at底层内容被写下的时间从转录时间戳恢复重挖后仍然保留authored_at会出现在搜索结果里CLIsearch输出中也会展示并作为混合排序中的确定性 tie-break分数相同的结果authored_at更近的排前面。关键限制在于重挖并不能修复旧 Drawer。扫描器会跳过已经在当前NORMALIZE_VERSION下挖掘过的文件所以单纯重新跑挖掘不会给这些旧 Drawer 补上authored_at。修复只有两条路见 docs/authored-at.md原地 backfill推荐不重新嵌入——scripts/backfill_authored_at.py读取每个 convos Drawer 的源转录只更新authored_at元数据。删除后重挖——删掉受影响的 Drawer 再重新挖掘转录新挖的会带上authored_at但会把所有内容重新嵌入。修复前准备确认你的宫殿目录路径脚本参数--palaceChromaDB palace 目录文档示例用~/.mempalace/palace。确认.jsonl转录文件所在的目录例如~/.claude和~/.codex。源转录不在磁盘上的 Drawer 会被原样跳过所以--sessions要指向仍保存着这些.jsonl的目录。先备份再动手文档给出的备份命令tar czf palace-backup.tgz -C palace-dir .palace-dir替换成你的宫殿目录路径即--palace指向的目录Docker 部署可改为对mempalace-data卷做快照。方式一原地 backfill 脚本推荐脚本 scripts/backfill_authored_at.py 只处理ingest_mode convos的 Drawer只改元数据、不碰嵌入向量无重新嵌入成本。它幂等已正确的 Drawer 会被跳过可以安全重跑。第 1 步dry-run 预检。默认不带--apply只报告将改动的数量、不写入python scripts/backfill_authored_at.py \ --palace ~/.mempalace/palace \ --sessions ~/.claude --sessions ~/.codex # dry run--sessions可重复传入多个目录。运行后你会看到一行统计形如文档示例格式数值随你的宫殿而异DRY-RUN (use --apply to write): scannedN updatedN resolved_filesN unresolved_filesN其中updated是将被补上authored_at的 Drawer 数unresolved_files是源转录在磁盘上找不到、因而保持filed_at回退的文件数。第 2 步确认无误后写入。加上--applypython scripts/backfill_authored_at.py \ --palace ~/.mempalace/palace \ --sessions ~/.claude --sessions ~/.codex --apply # write写入成功后输出前缀变为APPLIED统计字段含义不变。Docker MCP 镜像变体可选。如果你跑的是 Docker 部署把数据卷和会话目录以只读方式挂载进去脚本头部给出了完整的docker run调用docker run --rm \ -v mempalace-data:/data \ -v ~/.claude:/sessions/claude:ro -v ~/.codex:/sessions/codex:ro \ -v $PWD/scripts/backfill_authored_at.py:/tmp/backfill.py:ro \ --entrypoint /app/.venv/bin/python mempalace:local \ /tmp/backfill.py --palace /data/.mempalace/palace \ --sessions /sessions/claude --sessions /sessions/codex --apply这里$PWD是仓库根目录scripts/backfill_authored_at.py的所在仓库--apply表示直接写入如需预检去掉--apply即可。方式二删除后重挖文档描述的更简单但代价更大的做法删掉受影响的 Drawer再重新挖掘转录新挖出来的会自动盖上authored_at。副作用是所有内容都会被重新嵌入。删除通过 MCP 工具mempalace_delete_drawer按 ID 删除见 website/reference/mcp-tools.md该参考还描述了按source_file批量删除对应 Drawer 的能力适合清掉某个来源下的全部记录。删除前建议同样先备份。重新挖掘按 mempalace/instructions/mine.md 的对话挖掘方式对会话导出目录运行mempalace mine dir --mode convosdir替换成你的会话导出目录。重新挖掘完成后新 Drawer 会自带authored_at。验证结果两种方式都完成后跑一次 MemPalace 的搜索查看结果的authored_at字段修复前缺少该字段的 Drawer 在结果里会回退显示为filed_at见 mempalace/searcher.py 中authored_at缺失时回退到filed_at的逻辑。修复后这些 Drawer 的authored_at应显示为从转录时间戳恢复出的实际书写时间而不再是入库时间。backfill 脚本本身也自带判断依据updated反映实际补了多少个unresolved_files反映有多少源转录没找到而保持回退——若unresolved_files不为 0说明对应的.jsonl不在你传入的--sessions目录里。边界与限制backfill 脚本只处理ingest_mode convos的 Drawer。Markdown 等没有逐行时间戳的 Drawer 保持filed_at回退不会被改动。源转录已从磁盘删除的 Drawer 会被原样跳过继续回退到filed_at——这是 backfill 的预期行为不是脚本失败。脚本只改元数据、不触碰嵌入向量且幂等可重复运行。重挖方式方式二会把内容重新嵌入成本更高如果只是想补时间字段优先用 backfill。下一步两种方式的命令、参数与输出字段以 docs/authored-at.md 和 scripts/backfill_authored_at.py 头部说明为准。挖掘、搜索的完整说明见 mempalace/instructions/mine.md 和 website/reference/mcp-tools.md。【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/13 19:23:02

伺服编码器停产替代的三条实战路径

1. 这不是换零件,是给产线做一次“神经外科手术”上周五下午三点,我接到华东一家汽车零部件厂的紧急电话。他们产线上那台用了八年的德国伺服压装机突然报错——编码器信号丢失。维修师傅拆开一看,原装的Heidenhain ECN 1313-2048已经停产三年…

2026/9/13 20:13:05

AI SDK 如何校验 Provider 响应中的 URL 以防止 SSRF 攻击

AI SDK 如何校验 Provider 响应中的 URL 以防止 SSRF 攻击 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents 项目地址: https://gitcode.com…

2026/9/13 20:13:05

bd template 命令详解:用 Beads 模板系统统一 issue 创建规范

bd template 命令详解:用 Beads 模板系统统一 issue 创建规范 【免费下载链接】beads Beads - A memory upgrade for your coding agent 项目地址: https://gitcode.com/GitHub_Trending/beads1/beads Beads 的 bd template 命令体系用于管理 issue 模板&…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码