---
title: ChatCrystal：本地 AI 对话知识库与 MCP 记忆
description: 把 AI 编程对话整理成可检索、可复用的个人知识库，连接结构化笔记、语义搜索与 MCP 记忆。
image: "https://zengliangyi.com/_astro/chatcrystal.BVQkD0Sh.png"
---

## 问题：对话结束后，经验去了哪里？

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

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

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

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

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

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

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

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

![ChatCrystal 笔记列表，展示由编程对话整理出的知识记录](/_image?href=%2F_astro%2Fchatcrystal-notes.COt6GCQP.png&w=1280&h=800&f=webp&fit=cover&position=center) 仓库提供的真实笔记界面截图。笔记的质量仍取决于原始内容、模型和后续整理。

### 3. 检索：按语义找内容，按标签看关联

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

![ChatCrystal 标签知识图谱，展示笔记主题之间的关联](/_image?href=%2F_astro%2Fchatcrystal-graph.7yV9Q8ry.png&w=1280&h=800&f=webp&fit=cover&position=center) 图谱提供另一种浏览入口，与笔记列表和语义搜索互补。

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

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

## 架构：共享知识核心，按需选择入口

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

| 设计选择 | 带来的价值 | 需要理解的边界 |

| --- | --- | --- |

| 本地优先 | 围绕自己的对话记录和工作流管理知识 | 不等于模型推理一定离线 |

| LLM 与 embedding 分别配置 | 摘要生成和语义检索可选择不同服务 | 两类模型不能直接混用 |

| 同时保留对话与笔记入口 | 兼顾过程追溯与快速阅读 | 模型提炼的结论仍需判断 |

| CLI / MCP 访问 | 把经验带回自动化和 Agent 工作流 | 应结合具体任务筛选检索结果 |

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

## 从一批对话开始

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

桌面下载、CLI 命令及模型配置以 [项目 README](https://github.com/ZengLiangYi/ChatCrystal) 为准；实现结构可参考 [开发文档](https://github.com/ZengLiangYi/ChatCrystal/blob/main/docs/DEVELOPMENT.md)。

## 实现与工作流

- [5 种 AI 对话数据格式全解析](/blog/ai-conversation-data-formats)：导入端的格式差异与能力边界。

- [本地向量数据库选型](/blog/local-vector-database-selection)：部署、检索和索引恢复之间的取舍。

- [从 ChatCrystal 导出到 Obsidian](/blog/chatcrystal-to-obsidian)：保留笔记内容与关联的 Markdown 快照工作流。

- [本地优先与云端 AI](/blog/local-first-ai-data-boundaries)：区分存储、模型推理与 Agent 客户端的数据边界。

- [从 RAG 到知识图谱](/blog/rag-and-knowledge-graphs)：理解候选检索、笔记关系与单跳扩展。

- [AI Agent 时代的知识库](/blog/agent-knowledge-memory-loop)：围绕证据组织回忆、验证与写回。

##  更多项目

[2026

### Network Error Reporter

把 Chrome 中失败的网络请求转成结构化 Markdown 与图片报告，减少接口排查时的重复沟通。

#JavaScript

#Chrome Extension

#Developer Tools](/projects/network-error-reporter)[2026

### 方形图片工坊

无需安装或上传图片，在浏览器中调整方形构图、铺白底并压缩导出 JPG。

#HTML

#Canvas

#Offline Tools](/projects/image-tool)[2026

### PaddleOCR-VL 文档解析评估工具

接入百度智能云文档解析 API，对照原件检查阅读顺序、版面坐标、表格和 Markdown，评估真实文档的解析效果。

#Python

#JavaScript

#Document AI](/projects/paddleocr-vl)

##  有问题或想法？

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

[联系我](/contact) [全部项目](/projects)

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "ZengLiangYi Blog",
  "alternateName": [
    "Zeng Liangyi",
    "ZengLiangYi",
    "zengliangyi.com"
  ],
  "url": "https://zengliangyi.com",
  "description": "曾亮懿的个人网站。记录 AI Native 探索、开发者工具与全栈产品实践。"
}
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "ChatCrystal",
  "description": "把 AI 编程对话整理成可检索、可复用的个人知识库，连接结构化笔记、语义搜索与 MCP 记忆。",
  "url": "https://zengliangyi.com/projects/chatcrystal/",
  "applicationCategory": "DeveloperApplication",
  "operatingSystem": "Any",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "codeRepository": "https://github.com/ZengLiangYi/ChatCrystal",
  "image": "https://zengliangyi.com/_astro/chatcrystal.BVQkD0Sh.png",
  "author": {
    "@type": "Person",
    "name": "曾亮懿",
    "url": "https://zengliangyi.com"
  }
}
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "首页",
      "item": "https://zengliangyi.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "项目",
      "item": "https://zengliangyi.com/projects"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "ChatCrystal",
      "item": "https://zengliangyi.com/projects/chatcrystal/"
    }
  ]
}
```
