跳到正文
曾亮懿 ZengLiangYi Blog

ChatCrystal

把 AI 编程对话整理成可检索、可复用的个人知识库,连接结构化笔记、语义搜索与 MCP 记忆。

目录 展开 收起

问题:对话结束后,经验去了哪里?

AI 编程对话里有代码,也有排查过程、失败尝试和最终取舍。把这些记录留在不同工具的历史列表中,下一次遇到相似问题时,仍然需要重新寻找上下文。

ChatCrystal 保留原始对话,并提供笔记整理、语义检索和 Agent 访问接口。导入对话后,可以提炼结构化笔记,再通过检索和 Agent 接口使用已有记录。

四个环节,连接一次问题解决过程

这是一张概念流程图,不代表所有步骤都会在导入后自动执行。尤其在远端实例工作流中,导入和摘要生成是分开的操作,用户可以决定何时调用模型处理内容。

1. 导入:保留不同工具中的上下文

项目支持从 Claude Code、Cursor、Codex CLI、Trae 和 GitHub Copilot 等工具的本地数据目录导入对话。统一入口让跨工具的记录能够放在一起查找,不必记住某个问题最初在哪个客户端里解决。

2. 提炼:从长对话中保留可用结论

结构化笔记包含标题、摘要、结论、代码片段和标签。原始记录提供背景,笔记则提供更短的阅读入口:先判断这条经验是否相关,再回到需要的细节。

ChatCrystal 笔记列表,展示由编程对话整理出的知识记录
仓库提供的真实笔记界面截图。笔记的质量仍取决于原始内容、模型和后续整理。

3. 检索:按语义找内容,按标签看关联

语义搜索用于寻找表达不同但含义相关的经验;标签图谱则展示知识点之间的联系。图谱中的关系来自标签共现等组织方式,适合帮助探索相关主题,不应把一条连接直接理解成因果关系。

ChatCrystal 标签知识图谱,展示笔记主题之间的关联
图谱提供另一种浏览入口,与笔记列表和语义搜索互补。

4. 复用:让经验进入下一次工作流

CLI 和 MCP 接口让检索不局限在图形界面。Agent 可以查询已有经验,也可以把新的记录写回知识库,让一次解决问题的结果继续服务于后续任务。

架构:共享知识核心,按需选择入口

仓库采用 TypeScript,包含 React 客户端、Fastify 服务端和 Electron 桌面入口。桌面应用、CLI / Web 和 Docker 自托管是不同的使用方式;图中强调共同的知识处理职责,而不是具体部署拓扑。

设计选择 带来的价值 需要理解的边界
本地优先 围绕自己的对话记录和工作流管理知识 不等于模型推理一定离线
LLM 与 embedding 分别配置 摘要生成和语义检索可选择不同服务 两类模型不能直接混用
同时保留对话与笔记入口 兼顾过程追溯与快速阅读 模型提炼的结论仍需判断
CLI / MCP 访问 把经验带回自动化和 Agent 工作流 应结合具体任务筛选检索结果

使用外部 LLM 或 embedding 服务时,对应处理内容会发送到配置的服务商。选择模型与部署方式时,需要理解自己的数据会经过哪些环节。

从一批对话开始

可以先导入一个熟悉的项目,检查对话记录,再生成一批笔记,最后用自己曾经问过的问题测试检索是否有帮助。这样更容易判断整理方式是否适合自己的工作流。

桌面下载、CLI 命令及模型配置以 项目 README 为准;实现结构可参考 开发文档。

实现与工作流

有问题或想法?

无论是讨论技术实现,还是交流项目思路,都可以给我留言。