1. 项目概述为什么我们需要一个本地AI对话档案馆如果你和我一样每天在Claude、ChatGPT、Gemini这些AI助手之间来回切换那么你肯定也遇到过这样的困境上周和Claude讨论的那个绝妙的项目方案今天怎么也想不起具体是怎么聊的了上个月在ChatGPT里调试的一段代码现在需要参考却淹没在几百条对话记录里翻得手指发麻。更让人头疼的是这些平台提供的搜索功能往往很基础只能搜标题或者对内容的理解非常表面想找一句模糊记得的话简直是大海捞针。这就是我开发Loominary原名Lyra Exporter最直接的动因。我的核心需求很简单拿回对话数据的所有权并拥有一个真正强大、可搜索、可管理的本地档案馆。我不希望我的智力劳动成果——那些充满灵感的讨论、精心调试的提示词、迭代了无数次的方案——被锁在某个平台的服务器里或者消失在无穷无尽的滚动条中。我需要一个“家”一个完全由我掌控的、本地的、功能强大的对话管理中心。Loominary就是为这个目标而生的。它是一个本地优先Local-First的AI对话管理器。简单来说它能从你常用的AI平台如Claude、ChatGPT、Gemini、Grok等导出完整的对话历史然后在你自己的电脑浏览器里为你建立一个功能完备的档案馆。所有数据都留在你的设备上没有任何数据会上传到云端。你可以进行全局搜索、给对话打标签、可视化浏览对话的分支比如AI重新生成的不同回答并按照你想要的格式如Markdown、PDF导出。这个工具特别适合以下几类人重度AI使用者对话量巨大需要高效检索内容创作者和研究者需要系统性地整理和引用与AI的交互过程提示词工程师和开发者希望复盘和优化与模型的对话策略以及任何重视数据隐私和所有权不希望自己的对话记录完全依赖第三方服务的用户。2. 核心功能深度解析不止于备份很多人把Loominary理解为一个“聊天记录导出工具”这没错但只看到了它最基础的一层。它的真正价值在于它重新定义了你与AI对话历史交互的方式提供了原平台所不具备的深度管理能力。2.1 实时记录捕捉每一个思维分支这是Loominary最具革命性的功能之一。我们都有这样的经历让AI重新生成Regenerate一个回答或者稍微修改了一下提示词Prompt再次发送。在大多数AI平台上新的回答会直接覆盖旧的那个。一旦你点了“保存”或者页面刷新之前的版本就永远消失了。如果你后来发现其实第一次生成的版本更有用或者想对比不同提示词带来的细微差别那就为时已晚。Loominary的实时记录Realtime Recording模式彻底解决了这个问题。当你启用这个功能后Loominary的浏览器扩展会在后台静默工作自动记录每一次交互。每一次重新生成、每一次提示词编辑、每一次后续追问都会被当作一个独立的分支Branch保存下来。实操要点启用这个功能非常简单。安装好Loominary的浏览器扩展或用户脚本后在支持的平台如ChatGPT、Claude网页版上你会看到一个Loominary的小图标。点击它打开设置找到“Realtime Recording”选项并开启即可。之后你正常使用AI对话所有分支都会被自动捕获。它的价值在哪里举个例子你在用Midjourney之类的工具通过AI生成图片时可能会让AI给出四组不同的描述词Prompt。在原生平台上你通常只能看到最后一组或者需要手动截屏保存。而Loominary会把这四组描述词以及AI对应的所有回复分支都完整记录下来并以时间线或树状图的形式清晰展示。你可以轻松对比哪一组提示词产出了最符合你预期的描述。再比如调试一段代码时你让AI用两种不同思路重构Loominary会把两个方案并排留存方便你后续仔细评估。注意实时记录功能依赖于浏览器扩展对页面DOM变化的监听。这意味着它主要针对Web端应用如ChatGPT网页版、Claude网页版效果最好。对于某些客户端应用或特殊框架的页面可能需要额外的适配。2.2 上下文捕获不只是对话文本一个高质量的AI对话其价值往往不止于你问我答的纯文本。围绕对话的上下文Context同样至关重要但这些信息在原平台导出时经常被忽略。Loominary在这方面做得非常深入它致力于捕获一次对话的“全貌”。对于Claude它不仅能导出对话记录还能一并归档项目描述Project Description、自定义指令Instructions、项目记忆Project Memory以及你上传的知识文件Knowledge Files。这些是Claude理解你特定任务背景的核心材料丢失它们对话记录就失去了灵魂。对于ChatGPT可以导出ChatGPT记忆Memories。这是ChatGPT用来记住你个人偏好和重要信息的功能将其与对话一起保存使得历史对话在回顾时更具连贯性。对于SillyTavern这个功能更为强大。SillyTavern本身通过JSONL文件记录分支对话但原生查看并不直观。Loominary可以加载所有这些JSONL文件并将它们合并成一个统一、可视化的时间线。同时它还会归档角色卡Character Card、世界书World Book以及你当时使用的对话预设Preset。这对于角色扮演RP爱好者或使用SillyTavern进行复杂叙事创作的用户来说是无可替代的整理工具。经验之谈在分析过去与Claude合作的项目时我无数次庆幸自己用Loominary保存了项目描述和指令。很多时候对话中某个看似突兀的转折或精妙的回答其根源恰恰在于最初设定的项目背景或一条不起眼的指令。没有这些上下文复盘学习的效果会大打折扣。2.3 全局与语义搜索从“找不到”到“瞬间定位”当你的本地档案馆积累了成百上千条对话后强大的搜索能力就成了刚需。Loominary提供多层次的搜索方案基础全文搜索快速搜索所有对话的标题和内容这是最基本也是最常用的功能。高级过滤搜索你可以精确筛选只包含图片、只显示AI思考过程Reasoning、只查找调用了特定工具Tool Calls或包含产物Artifacts如Claude生成的代码文件的对话。这在处理技术讨论或创作任务时极其高效。语义搜索需自备模型这是它的“杀手锏”之一。如果你在本地部署了文本嵌入模型如通过Ollama运行nomic-embed-text你可以将其连接到Loominary。之后你就可以进行“模糊”搜索了。比如你记得曾经和AI讨论过“如何用Python优雅地处理异步日志”但记不清原话。你只需要输入“python async logging”语义搜索就能找到概念上最相关的对话即使原文中没有完全匹配这些关键词。配置语义搜索的简要步骤在本地运行一个支持兼容API如OpenAI格式的嵌入模型服务。在Loominary的搜索设置中填入该本地服务的API地址和模型名称。首次使用时Loominary会为你的所有对话内容计算嵌入向量并建立索引这可能需要一些时间取决于对话数量。索引完成后你就可以使用语义搜索栏了。2.4 可视化分支与时间线理清对话的脉络复杂的对话往往不是线性的。一次重新生成、一次追问都会产生分支。Loominary能自动检测这些分支并用清晰的时间线Timeline或树状图Tree View将它们可视化出来。你可以一眼看清对话的演变过程轻松点击跳转到任意一个历史分支进行查看。这对于复盘决策过程、追溯不同方案的产生缘由提供了无与伦比的便利。2.5 灵活的导出与批处理导出功能是这类工具的基石Loominary提供了高度定制化的选项格式支持导出为结构清晰的Markdown便于放入笔记软件如Obsidian、Logseq或排版精美的PDF支持LaTeX公式渲染和图片嵌入。内容定制你可以选择是否包含时间戳、AI的思考过程、工具调用细节、引用来源等。这意味着你可以导出一份干净的最终稿用于分享也可以导出一份包含所有元数据的详细记录用于存档。批处理这是处理大量数据时的救星。你可以一次性选择成百上千条对话打包成一个ZIP文件导出。更贴心的是对于像Claude这样的全账户导出可能包含大量历史分支你可以选择“仅导出每个对话的最新分支”从而快速获得一份简洁的、只包含最终结果的合集。3. 从零开始安装、配置与首次使用全指南了解了核心功能后我们来看看如何一步步搭建起你自己的AI对话档案馆。Loominary提供了多种使用方式适应不同用户的需求。3.1 选择你的使用方式网页版 vs. 浏览器扩展 vs. 本地部署在线试用最快直接访问https://laumss.github.io/react/welcome/。这是一个纯前端的单页应用完全在浏览器中运行。你可以立即体验它的界面和基本功能手动上传已导出的对话文件如从各平台手动下载的JSON文件进行管理。这是零门槛的入门方式。浏览器扩展/用户脚本推荐日常使用这是实现自动捕获和实时记录的关键。扩展从Chrome Web Store、Firefox Add-ons或Edge Add-ons商店搜索“Loominary”安装。扩展的优势是更稳定与浏览器集成度更高通常拥有更好的性能和对页面内容的访问权限。用户脚本对于习惯使用Tampermonkey或Violentmonkey的用户可以在 GreasyFork 获取用户脚本。安装后它会在支持的AI网站如chat.openai.com, claude.ai上自动注入Loominary的捕获按钮。区别根据项目说明用户脚本版本可能暂不支持SillyTavern如需此功能应使用浏览器扩展。本地开发部署面向开发者/高级用户从GitHub克隆项目源码在本地构建运行。这种方式会启动一个本地后端服务器。它的最大价值在于这个后端可以将你归档的对话、标签、上下文数据通过MCPModel Context Protocol等协议提供给本地运行的其他AI客户端如本地运行的Claude Desktop、自定义AI应用作为参考上下文。这为构建个人AI知识库和工作流打开了大门。3.2 首次数据导入以ChatGPT和Claude为例假设你已经安装了浏览器扩展我们以ChatGPT和Claude为例进行第一次数据抓取。步骤一访问平台并打开导出界面正常登录chat.openai.com或claude.ai。你应该能在页面角落通常是右下角或侧边栏看到一个Loominary的图标可能是一个羽毛笔或类似的标志。点击它。步骤二执行导出操作3. 在弹出的Loominary侧边栏或浮动窗口中你会看到“Export Conversations”或类似的按钮。对于ChatGPT和ClaudeLoominary通常能直接通过API或解析页面来获取你的对话列表。 4. 点击导出。对于首次使用建议先选择少量近期对话进行测试。 5. Loominary会在后台获取数据。完成后数据并不会“上传”而是直接传输到你浏览器中打开的Loominary应用页面通常是http://localhost:3000或你指定的在线页面。步骤三在Loominary中查看与管理6. 确保你的Loominary应用页面本地或在线版已经打开。 7. 导出完成后对话会自动出现在Loominary的侧边栏列表中。你可以点击任意对话查看详情使用搜索功能或尝试打上标签。重要提示首次进行全账户导出尤其是Claude历史记录可能非常多时过程可能较长并且浏览器标签页可能会因为大量数据处理而“无响应”。这是正常的请耐心等待不要关闭页面。建议初次使用时先导出最近50-100条对话熟悉流程。3.3 核心界面与操作速览成功导入数据后你会看到Loominary的主界面通常分为三个主要区域左侧边栏对话列表。可按时间、标题、标签排序或筛选。顶部有全局搜索框。中间主区域对话内容查看器。以气泡或段落形式展示对话分支会以时间线或树形图在顶部或侧边显示。右侧边栏/面板上下文信息区。这里会显示本条对话捕获的额外上下文如Claude的项目描述、记忆或SillyTavern的角色卡。也是进行打标签、导出设置操作的地方。快速上手操作清单搜索在顶部搜索框输入关键词试试过滤选项如图片、思考过程。查看分支找一条你曾让AI重新生成过的对话点击顶部的时间线看看不同分支是如何展示的。打标签选中一条对话在右侧面板给它添加如“重要”、“待复盘”、“写作素材”等自定义标签。单条导出选择一条对话点击导出按钮尝试导出为Markdown和PDF对比一下格式差异。批量操作在左侧列表按住Shift多选几条对话试试批量添加标签或批量导出。4. 高级技巧与隐私安全考量4.1 打造个人工作流标签与搜索的组合拳单纯地导出和堆砌数据只会创造另一个“数字废墟”。要让Loominary发挥最大效用你需要建立自己的管理习惯。我的核心建议是即时标签定期整理。建立标签体系不要等到有几百条对话再整理。在每次导出或回顾对话后花几秒钟打上标签。可以建立一套简单的体系例如#工作/项目A、#学习/Python按领域/项目分类#提示词-优秀、#提示词-待优化按质量分类#灵感、#代码片段、#文案参考按内容类型分类#已处理、#需跟进按状态分类结合语义搜索当你为对话打上高质量的标签后搜索就变成了二维的。你可以先用标签圈定范围如#工作/项目A再在这个范围内进行全文或语义搜索精准度会大幅提升。定期清理与归档可以每月或每季度进行一次整理。利用Loominary的批量操作将已完结项目的对话批量导出为一个PDF合集存档然后在Loominary中将其标记为“已归档”或暂时隐藏保持活跃视图的清爽。4.2 开发者视角本地部署与数据联通对于开发者而言本地部署Loominary的后端服务开启了更多可能性。其核心思想是让你的AI对话档案馆成为一个可查询的本地知识源。想象一下这个场景你正在本地VS Code中通过Continue等插件与一个本地大模型如通过Ollama运行的Llama 3编程。你可以配置该插件使其能够查询你本地的Loominary服务器。当你遇到一个编程问题时AI助手不仅可以基于通用知识回答还可以主动搜索你过去与Claude/ChatGPT讨论过的相关解决方案、代码片段和错误排查记录并将其作为上下文提供给你。这相当于为你本地AI配备了一个专属的、高度相关的“经验记忆库”。当前实现状态根据项目文档这个数据联通的架构已经搭好但具体的集成协议如MCP的实现和客户端适配还处于早期阶段。如果你是开发者并且对此感兴趣最好的方式是去项目的GitHub仓库查看相关Issue甚至提交自己的构想。这正是开源项目的魅力所在。4.3 隐私与安全你的数据永远属于你在数据隐私问题日益突出的今天Loominary的设计哲学值得称道。它明确声明无分析、无遥测、无数据收集。所有代码运行在你的浏览器中。数据本地处理对话内容在导出时是在你的浏览器内存中进行解析、索引和存储的。在线版使用浏览器的IndexedDB进行存储本地部署版则使用你指定的本地数据库。扩展权限最小化浏览器扩展只在你访问指定的AI平台网站如claude.ai时激活并且只与你自己打开的Loominary应用页面通常是localhost或你指定的地址通信不会将数据发送到任何外部服务器。这意味着只要你从官方渠道获取扩展或脚本你的所有对话数据从始至终都没有离开过你的计算机。这对于处理敏感商业对话、创意草案或个人隐私信息的用户来说是至关重要的保障。5. 常见问题与故障排查实录在实际使用中你可能会遇到一些典型问题。以下是我和社区用户遇到过的一些情况及解决方法。Q1导出的对话在Loominary里显示乱码或格式错乱A这通常是因为AI平台更新了页面结构导致Loominary的数据抓取脚本暂时失效。首先请确保你的浏览器扩展或用户脚本是最新版本。其次可以尝试切换导出方式如果之前用的是“自动抓取”可以尝试在AI平台的数据设置里找到“导出数据”功能下载官方的JSON文件然后手动拖入Loominary的页面进行导入。对于Claude和ChatGPT官方导出格式通常是兼容的。Q2实时记录Realtime Recording没有生效A请按以下步骤排查确认启用点击浏览器工具栏的Loominary图标检查设置中“Realtime Recording”开关是否已打开。检查页面匹配确保你所在的网址是Loominary明确支持的平台如chat.openai.com/*,claude.ai/*。某些平台的子域名或新推出的界面可能未被脚本覆盖。检查浏览器权限确保扩展拥有对该网站的“读取页面数据”或类似权限。有时浏览器更新后需要重新确认。查看控制台按F12打开开发者工具切换到Console控制台标签页看是否有Loominary相关的错误日志。这能帮助定位具体问题。Q3批量导出大量对话时浏览器卡死或无响应A这是预期行为尤其是在导出包含大量分支和附件的对话时。浏览器的JavaScript主线程正在密集地进行数据序列化、格式转换和压缩打包。请耐心等待不要关闭标签页。建议在进行超大规模导出如数千条时分批进行例如每次选择200-300条。另外关闭其他不必要的浏览器标签页释放内存。Q4语义搜索功能无法连接到我本地运行的嵌入模型A首先确认你的本地模型服务正在运行且可访问例如通过curl http://localhost:11434/api/embeddings测试Ollama的嵌入端点。然后在Loominary的设置中检查API地址是否正确注意是http://localhost:端口号/v1/embeddings格式具体取决于你的本地服务。模型名称是否与本地服务提供的完全一致。如果本地服务有API密钥是否已正确填写。由于浏览器安全策略CORS你可能需要在本地模型服务端配置允许Loominary前端页面的源Origin进行跨域访问。Q5从SillyTavern导入时时间线合并不正确A确保你导入的是包含所有分支JSONL文件的整个对话文件夹而不是单个文件。Loominary依赖于分析多个JSONL文件之间的关系来重建时间线。如果是从SillyTavern的“导出”功能得到的单个打包文件可能需要先解压再让Loominary导入整个解压后的目录。Q6数据存储在哪里如何备份在线版数据存储在浏览器的IndexedDB中。这是一个与特定网站域名绑定的本地数据库。备份方法是定期使用Loominary的批量导出功能将重要对话导出为Markdown或PDF文件保存到你的硬盘或云盘。清除浏览器数据可能会删除IndexedDB。本地部署版数据存储在你配置的本地数据库文件如SQLite中。备份这个数据库文件即可。务必将其纳入你的常规系统备份计划。一个关键的实操心得不要完全依赖Loominary作为唯一的存档。将它视为一个强大的管理和检索中心但定期的、多格式的如PDF、Markdown导出备份才是数据长期安全的最佳实践。我个人的习惯是每个季度将标记为“重要”的对话批量导出一次按项目分类存放到NAS和云存储中。这样即使多年后Loominary这个工具本身不再维护我的核心智力资产依然以可读的通用格式完好保存着。工具会变但你的知识和对话的价值是永恒的掌握它们的所有权和管理权才是我们使用这类工具的最终目的。