MemPalace Mine 完全指南:将项目、对话与会议记录自动导入本地 AI 记忆库 📅 发布时间:2026/9/8 20:40:33 👁 浏览次数: MemPalace Mine 完全指南将项目、对话与会议记录自动导入本地 AI 记忆库【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalaceMemPalace 是一个完全本地运行、无需 API Key 的开源 AI 记忆系统。mine挖掘是它最重要的数据入口命令把项目代码、Claude/ChatGPT/Slack 对话导出甚至普通文档咀嚼成可供检索的逐字记忆抽屉Drawer存入 palace。本文以仓库中的 挖掘技能指令 为骨架结合 CLI 主入口、miner.py、convo_miner.py 等源码完整讲解从「问清要挖什么」到「确认挖掘结果、衔接后续检索」的六步实战流程让你和你的 AI Agent 都能把历史语料变成可随时召回的高保真记忆。1. 理解挖掘在 MemPalace 中的位置在深入命令之前先建立一张心智地图。MemPalace 把记忆组织成层级结构见 help.mdWings项目/人物 -- Rooms主题房间 -- Closets摘要橱柜 -- Drawers逐字记忆抽屉Halls连接同一 wing 内的 roomsTunnels连接不同 wing 之间的 rooms。mempalace mine负责把磁盘上的真实语料源码、文档、对话记录转化为上述结构中的Drawer逐字原文。这里有个关键设计理念mine 只存储逐字原文不产生摘要。正如 miner.py 模块注释所述Stores verbatim chunks as drawers. No summaries. Ever.——绝不丢失信息这正是100% 召回承诺的基础。存储层面palace 位于本地默认用 ChromaDB 做向量检索、SQLite 存元数据无云服务、无需 API Key后端还支持 SQLite-exact、PGVector、Qdrant、Milvus 等可插拔实现见 backends 目录可通过--backend或配置选择。mine这个技能既是一套给 AI Agent 执行的六步操作流程记录于 mine.md也是底层一条真正的 CLI 命令。本文按指令文档的步骤依次展开。2. 第一步先问清要挖什么、源数据在哪技能指令的第一条原则是不要在信息不全时盲目执行。当用户或 Agent 发起一次挖掘时首先要澄清三个问题来源类型是项目目录代码、文档、笔记还是对话导出Claude、ChatGPT、Slack或者是单条对话文件期望处理方式是否需要自动分类把内容归入 decisions/milestones/problems 等主题去向组织是否希望归档到某个特定 wing项目/人物分类下这一步的意义在于决定后续选择哪种挖掘模式。CLI 层面对应的正是mine子命令的--mode参数见 cli.py--mode取值用途说明projects默认项目挖掘处理代码、文档、笔记convos对话挖掘处理聊天导出与逐字会话记录extract文档挖掘处理 PDF/DOCX/PPTX/XLSX/RTF/EPUB 等二进制办公文档需安装mempalace[extract]另外还有一个与--mode互斥的--source ADAPTER参数用于走 RFC 002 定义的第三方 Source Adapter 插件协议。3. 第二步选择挖掘模式3.1 项目挖掘Project Miningmempalace mine dir默认模式对应源码中的miner.mine()。它扫描目录中的可读文本文件逐字切块后按内容路由到合适房间。从 miner.py 可以看到可读扩展名覆盖极广从.md/.txt/.json/.yaml/.html/.csv/.sql/.toml到.py/.js/.ts/.tsx/.java/.go/.rs/.swift/.kt/.rb/.sh再到 C/C.c/.cpp/.h/.hpp、C#.cs/.razor、PHP 全家族.php/.twig/.blade等。同时它有一组固定跳过名单例如entities.json、mempalace.yaml、package-lock.json、pnpm-lock.yaml、yarn.lock等元数据文件避免把锁文件这类噪音挖进记忆库。3.2 对话挖掘Conversation Miningmempalace mine dir --mode convos把 Claude Code / Claude.ai / ChatGPT / Slack 等对话导出挖掘进 palace。与项目挖掘共用同一个 palace、同一套检索只是摄取策略不同convo_miner.py。支持的文件扩展名见CONVO_EXTENSIONS.txt/.md/.json/.jsonl等。扫描时有几个值得注意的默认行为convo_miner.py跳过符号链接symlink与超限大文件并在 stderr 打印SKIP: path (symlink)等提示保证为什么这个目录没挖出东西可见默认跳过subagents/目录Claude Code 的子代理会话通常数量庞大如需挖掘可加--include-subagents.meta.json后缀被排除直接传入单个对话文件也合法CLI 会按单文件处理。对话按问答对exchange pair切块一个用户轮次 其后的 AI 响应作为一个单元。若无标记则回退为按段落切块整段 AI 回复保持逐字保留超长时切分到连续抽屉绝不静默丢弃见 chunk 相关的chunk_by_exchange/_chunk_by_paragraph实现。对话内容还会按话题关键词自动路由房间technical/architecture/planning/decisions/problems/general见 TOPIC_KEYWORDS。补充源码还支持mempalace mine convo-dir --mode convos --wing my_app这种把整批对话归档到指定项目 wing 的典型用法示例见 cli.py 文档字符串。3.3 自动分类提取General Extractionmempalace mine dir --mode convos --extract general这是对话挖掘的自动分类变体不再是按问答对保存而是用纯规则启发式把内容抽取为五种记忆类型。--extract有两个取值见 cli.py--extract行为exchange默认按问答对切块保存general通用提取decisions / preferences / milestones / problems / emotions底层实现在 general_extractor.py完全不需要 LLM靠关键词/模式正则DECISIONS决策—— we went with X because Y、we decided/chose/picked、trade-off、instead of 等PREFERENCES偏好—— always use X、never do Y、I prefer Z、my rule isMILESTONES里程碑—— it works、figured it out、shipped、deployed、v\d.\dPROBLEMS问题—— bug/error/crash/broken、root cause、doesnt workEMOTIONAL情绪—— 感受、脆弱时刻、人际关系相关表达。在--extract general模式下每个记忆片段的memory_type会直接成为目标房间名见 convo_miner.py从而自动把对话沉淀为决策史 / 问题史 / 里程碑史。3.4 其他摄取通道选读除了技能指令提到的两种主命令还支持以下通道让mine 同一个 palace、不同摄取策略的生态更完整# 二进制办公文档PDF/DOCX/PPTX/XLSX/RTF/EPUB需 mempalace[extract] mempalace mine docs-dir --mode extract # 通过已注册的 Source Adapter 摄取 mempalace mine source --source adapter-nameextract模式调用 format_miner.py 中的mine_formats()--source走 sources 目录 的适配器注册表与PalaceContext写入通道支持--dry-run预演dry run 时写入走记录型代理绝不开真实后端见 cli.py 的 _DryRunCollectionProxy。4. 第三步可选——先切分巨型文件如果源目录包含超大文件典型场景是被拼接的多个 Claude Code 会话转录混在一个.txt里指令建议先切分再挖掘mempalace split dir [--dry-run]务必先用--dry-run预览将发生什么确认无误后再真正执行。实现位于 split_mega_files.py扫描.txt文件中以Claude Code v头部标记的多个会话区分真实会话起点与会话中途的上下文恢复后者附近 6 行内会出现 CtrlE ... previous messages 提示据此排除见is_true_session_start按会话切分为独立文件文件名携带日期时间、检测到的人物、首个提问主题输出到--output-dir默认与源同目录原文件重命名为.mega_backup后缀不会删除人物检测基于~/.mempalace/known_names.json的可选名单names与username_map字段。其它命令示例--min-sessions 2只处理含 2 个以上会话的文件MEMPALACE_SOURCE_DIR环境变量可改变默认扫描目录。切分后再执行挖掘可让每个会话的文件级去重、mtime 跟踪与回填日期都精确到单个会话。5. 第四步可选——用 --wing 归档到指定项目若用户希望把挖掘内容归入某个特定 wing项目/人物加--wing标志即可mempalace mine dir --wing name关于 wing 的归属规则源码给出了清晰的可解释逻辑convo_miner.py_resolve_wing项目挖掘由 miner.py 与 config 处理显式--wing永远优先未指定时若源路径是已知 AI 工具目录如路径含.claude/projects、.codex、.gemini段自动归入wing_api——把 Claude Code / Codex / Gemini 会话统一收进API 来源内容专用 wing否则回退到源目录名经normalize_wing_name规整小写、空格/连字符折叠为下划线。mempalace init、room_detector_local、miner.load_config与convo_miner共享同一套 wing 规整逻辑保证init 时探测出的 wing 名 mine 时的落盘 wing 名隧道tunnel查找不会因名字不一致而失效。在 CLI 层--wing与--agent、--limit、--dry-run等参数并列见 cli.py参数默认值作用--wing NAME目录名规整结果指定归档 wing--agent NAMEmempalace记录到每个 drawer 的added_by写入者身份--limit N0全部最多处理的文件数--dry-run关只展示将要归档的内容不实际写入--no-gitignore关项目扫描时不遵守.gitignore--include-ignored PATH无即使被 gitignore 也强制扫描的路径可重复/逗号分隔--redetect-origin关重跑语料来源检测并覆写 origin.json6. 第五步展示进度、汇总结果选定模式并运行挖掘命令后应实时展示执行进度完成后按指令汇总三类信息挖掘条数Number of items mined应用的分类/归类Categories or classifications applied如对话路由到的 topic 房间、general 提取产生的 memory_type警告与被跳过的文件Warnings or skipped files例如 symlink、超限文件、subagents目录等。6.1 进度展示与重复挖掘保护挖掘过程中CLI 会实时输出每个文件的处理情况SKIP:前缀的提示会说明为什么某文件被略过符号链接/超大/非普通文件/stat 错误见 convo_miner.py。文件级别有去重与重建机制convo_miner.py单文件通过mine_lock串行化防止并发 Agent 重复归档已按当前 schema mtime 归档过的文件直接跳过file_already_mined会话转录文件不被假定不可变——Claude Code 会话进行中会不断追加内容/compact或/clear可能原地重写因此 mtime 变化会触发先清旧 drawer 再重建批量 upsert 限界分批崩溃中断的文件会保留完整性记录chunk_total下次挖掘能自愈补全对话内容还做SHA-256 内容哈希去重同一 wing 下已归档的重复会话不会二次入库convo_miner.py。此外conversation 的时间戳会尽量回填为真实的会话时间authored_at取 JSONL 中每条消息 ISO-8601 timestamp 的最大值保证几天前的会话即使今天回挖也按真实日期排列不会全部塌缩成入库时间见_extract_authored_at。6.2 结果汇总的底层形态每个 drawer 写入时会携带结构化元数据convo_miner.py这正是汇总条数与分类的数据来源{ wing: ..., room: ..., hall: ..., source_file: ..., chunk_index: ..., added_by: agent, filed_at: ..., entities: [...], authored_at: ..., ingest_mode: convos, extract_mode: exchange/general, normalize_version: ..., id_recipe: ..., chunk_total: ... }挖掘完成后同 wing 下还会自动计算 hallways走廊与跨 wing 的 topic tunnels隧道等后置逻辑见 miner.py 引入的compute_hallways_for_wing、palace_graph 的隧道计算让同一主题分散在不同 wing的内容彼此连通。6.3 与 palace 写入锁的协同多次挖掘、MCP 写入与后台服务可能同时争夺同一 palace。底层通过非阻塞写入锁协调已有写入者在运行时新的mine会以MineAlreadyRunning异常退出并打印持锁者身份见 cli.py避免并发堆积而当本 palace 正在运行mempalace serve的 HTTP hub 时CLI 会把 mine 任务转发给 hub执行_forward_mine_to_hub保证实时会话捕获不被写锁中断。需要强制本地直挖可设MEMPALACE_HUB_FORWARD0。7. 第六步建议下一步挖掘完成不等于工作结束。指令明确建议引导用户尝试以下后续动作对应技能命令详见 help.md后续动作命令/技能作用检索刚挖掘的内容/mempalace:search或mempalace search query精确/向量检索新记忆查看 palace 当前状态/mempalace:status或mempalace statuswing/room/抽屉统计概览挖掘更多数据源再次mempalace mine持续扩充记忆库search支持按 wing/room 过滤例如mempalace search pricing discussion --wing my_app --room costs见 cli.py状态命令可查看哪些内容已被归档。这样一个完整的「挖掘 → 落盘 → 检索 → 复用」记忆闭环就形成了。8. 技能指令与命令的联动方式如果你是在 Claude Code / Cursor 等 Agent 环境中使用mine还是一条可执行的技能指令。mempalace-mine.md 说明了它的联动方式插件调用mempalace技能后运行mempalace instructions mine在终端输出技能指令再按输出步骤执行。也就是说本文介绍的 mine.md 六步流程正是由mempalace instructions mine打印给 Agent 的正文——这是技能文档即运行时指令的设计。配套的 Agent 端命令还包括/mempalace:init初始化、/mempalace:search检索、/mempalace:status状态、/mempalace:help帮助对应的 初始化指令、检索指令、状态指令 与 帮助文档 都存放在同目录可一并阅读。挖掘通常紧跟初始化mempalace init dir在 Pass 4 阶段会主动询问现在就挖掘这个目录吗[Y/n]默认路径是先探测实体与房间、写出mempalace.yaml与entities.json并自动写入.gitignore防止误提交随后立刻进入挖掘。9. 附一组从查询到归档的完整命令流综合上述内容一个典型的一次性挖掘会话如下# 0) 首次使用先初始化会探测实体、房间并提示是否立即挖掘 mempalace init ~/projects/my_app # 1) 项目挖掘代码/文档/笔记 mempalace mine ~/projects/my_app # 2) 对话挖掘Claude Code 导出归档到指定 wing mempalace mine ~/.claude/projects/-Users-you-Projects-my_app --mode convos --wing my_app # 2b) 对话自动分类提取决策/里程碑/问题/偏好/情绪 mempalace mine ~/convo_exports --mode convos --extract general # 3) 巨型拼接转录先切分先 dry-run 预览 mempalace split ~/Desktop/transcripts --dry-run # 4) 检索刚归档的内容 mempalace search why did we switch to GraphQL mempalace status每条命令都遵循「同一 palace、不同摄取策略、逐字存储、绝不丢信息」的设计哲学无论来自项目源码、AI 会话还是办公文档最终都成为可被语义检索、带完整来源元数据的逐字抽屉让 AI 在未来的任何一次会话中都能精确召回历史事实而不是依赖摘要或遗忘。【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考