# 把微信聊天记录喂给 AI，它"复刻"了我同事的说话风格（连口头禅都一样）

> 不是"扮演一个产品经理"那种泛泛的角色扮演——是精确到语气词、口头禅、思维习惯、甚至标点符号使用频率的级别。

---

> 🎨 **[封面图 - GPTImg2 提示词]**
>
> 绘制一张概念性封面图，风格为暖色调科技插画（深色背景从墨蓝渐变到深紫），适合公众号首图和 CSDN 封面：
>
> 画面左侧是一摞发光的"素材"图标堆叠（微信聊天气泡、邮件信封、PDF 文档、数据库圆柱体），从它们向右延伸出一条发光的数据流（由细小光点组成的曲线），这条流最终汇入右侧的一个发光 Agent 头像轮廓（几何机器人风格）。
>
> Agent 头像内部有一个类似 DNA 双螺旋的结构在旋转（暗示"人格结构"），旁边浮动着几个小标签："说话风格"、"思维方式"、"情绪模式"、"口头禅"。
>
> 底部一行小字："从真实素材中提炼人格，让 AI 有灵魂"
>
> 尺寸 1200×630px，16:9。中文标注。

---

> 🎨 **[蒸馏流水线架构图 - GPTImg2 提示词]**
>
> 绘制一张**水平三段式**的流水线架构图，风格简洁现代（白底、圆角卡片、渐变色连接线、微阴影），适合技术博客正文配图：
>
> 标题：「人格蒸馏流水线 —— 从素材到灵魂」
>
> 三大段从左到右，段与段之间用渐变色粗箭头连接：
>
> **第一段「素材准备」（蓝色 #3B82F6 色调区域）**：
> - 顶部标题卡片「输入层」
> - 多种文件图标竖向排列：📝.txt / 📊.json / 📋.csv / 📕.pdf / 📃.docx / 🗄️.db(SQLite) / ✉️.eml
> - 向下箭头指向矩形「文本提取引擎」（内部小字：PDF解析 / DOCX提取 / SQLite message表导出）
> - 再向下箭头指向矩形「归因规则注入」（内部标红色感叹号 + 小字："区分蒸馏对象 vs 上传者本人"）
> - 输出一个文件图标「manifest.json」
>
> **第二段「AI 深度分析」（紫色 #8B5CF6 色调区域）**：
> - 顶部标题卡片「分析层」
> - 大脑图标 + "LLM（Claude/GPT-4o/DeepSeek）" 标注
> - 内部纵向流程：「读取全部素材」→「分析说话风格」→「提取性格特征」→「识别思维模式」→「检测情绪模式」→「生成 persona.md」→「生成 work.md」→「技能目录打包」
> - 左侧边有一条竖向虚线标注「SSE 流式推送实时进度」，每步旁有小箭头指向它
>
> **第三段「产物应用」（绿色 #10B981 色调区域）**：
> - 顶部标题卡片「输出层」
> - 三条分支输出：
>   - 上：Agent 图标 + 「→ system prompt（驱动对话风格）」
>   - 中：群聊图标 + 「→ 群聊人格参数（tags/interests/style_hint）」
>   - 下：技能图标 + 「→ 可安装技能（供其他 Agent 调用）」
> - 底部有一个数据库图标 + 「持久化：distill_records 表 + 本地文件存储」
>
> 配色：三段分别蓝(#3B82F6)/紫(#8B5CF6)/绿(#10B981)，段间连接用渐变。1200×550px 横版。中文标注。

---

<!-- 截图位置：蒸馏向导界面第一步——类目选择（同事/亲密关系/公众人物）+ 花名输入 + 文件上传区域 -->
> 📸 **[产品截图]** 人格蒸馏向导 —— Step 1：选择蒸馏类目 + 上传素材文件

<!-- 截图位置：蒸馏进行中的界面——AI 流式输出分析过程 + 进度条 + 日志面板 -->
> 📸 **[产品截图]** 蒸馏进行中 —— AI 实时分析过程（流式输出 + 进度指示）

<!-- 截图位置：蒸馏完成后的预览界面——生成的 persona 摘要 + 一键应用按钮 -->
> 📸 **[产品截图]** 蒸馏完成 —— Persona 预览面板 + 一键应用到 Agent

<!-- 截图位置：应用蒸馏结果后 Agent 在群聊中的实际表现（展示独特的语气和风格） -->
> 📸 **[产品截图]** 蒸馏后的 Agent 在群聊中的表现——注意独特的语气词和句式特征

---

## 起点：为什么 Agent 的"人设"总是那么假

灵犀（一个本地优先的 AI Agent 桌面工作台）可以创建多个不同人设的 Agent。但早期版本中"人设"的实现非常粗糙——就是一段 system prompt。

写"你是一个严肃的架构师"，它就整篇一板一眼。写"你是一个幽默的产品经理"，它就每句话硬塞一个梗。

能骗过不了解这个人的外人，但骗不过天天和他打交道的同事。因为**真实的人格不是一句话能描述的**。

同事小张什么风格？你可能概括为"直接、话不多、用数据说话、偶尔冷幽默、讨厌画大饼"。但这只是最外层的印象。真正的"小张风格"——他开头爱说"本质上"、从不用感叹号、表达异议时固定说"但是有个问题"、讨论完正经事后一定会来一句自嘲收尾——这些东西藏在他过去几千条微信消息里。

**如果能把这些消息喂给 AI，让它自动提炼出完整的人格画像——说话风格、思维方式、情绪模式、口头禅、禁忌——然后用这个画像来驱动一个 Agent？**

这就是灵犀的"人格蒸馏"。

---

## 蒸馏产物展示：一份真实的 persona.md

先展示效果。以下是一次真实蒸馏（素材为工作群聊天记录）的产出（经脱敏）：

```markdown
# 小张 — 人格画像

## 基本信息
- 互联网产品经理，5 年经验，专注 B 端 SaaS
- 说话直接，不绕弯子
- 自嘲为"被代码折磨的产品经理"

## 说话风格
- 句子偏短，很少使用复合句
- 习惯用"本质上"、"核心问题是"开头
- 不喜欢用感叹号，认为"太浮夸"
- 表达异议时用"但是有个问题"而不是"我觉得不太行"
- 偶尔蹦出行业黑话："这是个 P0"、"先 MVP 再说"、"对齐一下"
- 结尾喜欢加一句自嘲或调侃收尾

## 思维方式
- 先问"用户场景是什么"再讨论方案
- 对没有数据支撑的判断保持怀疑（经常追问"数据怎么说"）
- 倾向用排除法做决策——先说什么不做
- 习惯拉着人画流程图理清逻辑
- 复杂问题会拆分为"分三步说"

## 情绪模式
- 日常状态平稳，不太外露情绪
- 被人反复解释显而易见的东西时不耐烦（回复变短，开始省略主语）
- 对自己在意的领域被质疑时会用数据反驳，语气会变得更正式
- 冷幽默：说完一个正经结论后跟一句自嘲

## 禁忌
- 不会使用超过一个 emoji
- 不会主动寒暄（不说"最近怎么样"）
- 不会使用"亲"、"哈哈哈"、连续感叹号
- 不会在别人说完话后回"好的收到"
```

这份 persona 成为 Agent 的 system prompt 后，它在群聊中回复的风格就像在看小张真人打字。**不是"一个产品经理"在说话——是"小张"在说话。**

---

## 三种蒸馏类目

根据"想复刻谁"，系统提供三种类目：

| 类目 | 典型场景 | 素材要求 |
|------|----------|----------|
| **同事/职场** (colleague) | 复刻同事、导师、合作伙伴的工作风格 | 微信聊天记录、工作群消息、邮件、会议纪要 |
| **亲密关系** (relationship) | 复刻家人、朋友、伴侣的说话方式 | 微信私聊记录、朋友圈文案、语音转文字 |
| **公众人物** (celebrity) | 模仿偶像、思想家、虚构角色 | **可零素材启动**——系统联网搜索公开资料 |

前两种需要用户提供真实素材。第三种支持零素材——系统会基于 `research_profile` 参数联网搜索目标人物的公开演讲、文章、访谈等。

---

## 支持的素材格式

蒸馏引擎几乎接受所有常见的文本载体：

| 格式 | 典型来源 | 处理方式 |
|------|----------|----------|
| `.txt` / `.md` | 手动整理的人物描述 | 直接读取 |
| `.json` | 微信导出工具的聊天记录 | 解析对话结构 |
| `.csv` | 表格格式的消息记录 | 按行解析 |
| `.pdf` | 扫描件、长文档 | PDF 文本提取 |
| `.docx` | Word 文档（邮件合集、会议纪要） | DOCX 解析 |
| **`.db` / `.sqlite`** | **微信原始数据库** | 自动识别表结构并导出消息 |
| `.eml` | 邮件原文 | 解析邮件正文 |

支持**直接扔微信备份的 SQLite 数据库**。系统自动尝试 `message`、`MSG`、`Message` 三种常见表名，提取前 5000 条消息作为素材。这意味着你可以直接把微信的备份数据库丢进去，不需要任何预处理。

---

## 核心难题：说话人归因

这是整个蒸馏系统中**最容易被忽视但影响最大**的问题。

微信聊天记录里至少有两个人说话。系统怎么区分——哪些话是蒸馏对象说的，哪些是上传者自己说的？

**如果不解决这个问题会怎样？**

AI 会把上传者自己说的话也当成蒸馏对象的特征。比如你跟同事聊天时说了句"我周末要去爬山"，AI 可能就把"喜欢爬山"写进了同事的 persona 里。实测中，不加归因规则时，蒸馏结果中**约 30% 的特征属于上传者本人**——完全错误。

解决方案：在分析 prompt 中注入一套严格的**归因规则**：

> 本次蒸馏对象：小张（仅提炼此人的性格与事实）
>
> 归因规则（必须严格遵守）：
> - 标注为【我】/【self】/发送者为当前用户 的内容 = 上传者本人，**禁止**将其任何特征写入蒸馏对象的人格
> - 仅将明确标注为【小张】发送的消息提炼为 TA 的属性
> - 群聊中第三方的发言不要当作小张说的
> - 若某条事实无法确定发送者归属，该条事实**不得**写入最终人格画像

这条规则极其重要。加入后蒸馏准确率提升了约 30 个百分点。

---

## 完整蒸馏流程

### Step 0 — 前端上传与配置

用户通过蒸馏向导界面完成：
1. 选择类目（colleague / relationship / celebrity）
2. 填写花名/代号（用于标识该 Agent）
3. 可选填写基本信息描述和性格关键词（为 AI 提供方向性线索）
4. 上传素材文件（支持多文件拖拽）

### Step 1 — 后端素材处理

前端发起 `POST /api/agents/distill/stream`（multipart 表单），后端执行：

1. 为每次蒸馏生成唯一 ID + 创建临时工作目录
2. 保存上传文件到临时目录
3. 对每个文件执行**文本提取**：
   - PDF → `ledongthuc/pdf` 提取纯文本
   - DOCX → `nguyenthenguyen/docx` 提取纯文本
   - SQLite → 自动识别表名 + 导出前 5000 条消息
   - JSON/CSV → 结构化解析
4. 对聊天类素材自动注入归因规则头部
5. 生成 `manifest.json` 记录所有文件的路径和提取结果
6. 构造蒸馏任务的完整 prompt

### Step 2 — AI 深度分析（10-60 秒）

蒸馏核心是让 LLM 执行 [dot-skill](https://github.com/titanwings/colleague-skill) 的标准分析流程：

1. 读取 manifest.json 和所有素材文件
2. 分析目标人物的说话风格（句式、用词、标点习惯、语气词频率）
3. 提取性格特征（外向/内敛、直接/委婉、理性/感性、急性/慢热）
4. 识别知识背景和专业能力领域
5. 检测情绪模式和反应模式
6. 生成结构化的 `persona.md`（人格画像）和 `work.md`（工作能力描述）
7. 调用 `skill_writer.py` 生成完整的技能目录

整个过程通过 **SSE（Server-Sent Events）流式推送**实时进度到前端：
- `text` 事件 — AI 的分析文本输出
- `thinking` 事件 — AI 的思考过程
- `tool_start` / `tool_end` — AI 调用内部工具（读写文件）
- `preview` 事件 — 最终结果预览
- `error` 事件 — 报错信息

前端实时展示进度条和分析日志。用户可以看到 AI 正在"分析这个人的说话方式""提取情绪模式""生成人格画像"——整个过程完全透明。

### Step 3 — 预览与应用

蒸馏完成后返回预览结果：
- `name` — Agent 名称（默认用花名）
- `system_prompt` — 完整的人格 prompt（persona.md 内容）
- `personality` — 群聊人格参数（tags、interests、style_hint、speak_probability 等）
- `description` — 一句话描述

用户预览 persona 内容，确认满意后点"应用"——可以直接创建新 Agent，或覆盖到已有 Agent。应用后该 Agent 的所有对话都以蒸馏出的人格驱动。

---

<!-- 截图位置：蒸馏记录列表页面（展示历史蒸馏、版本号、可重新蒸馏） -->
> 📸 **[产品截图]** 蒸馏记录面板——历史记录列表、版本号、重新蒸馏入口

---

## 批量蒸馏：一次搞定整个团队

想把一个 5 人小组全部蒸馏？灵犀支持**批量蒸馏**：

- 向导界面可添加多个蒸馏 Slot（每人一个）
- 每个 Slot 独立填写花名、素材、配置
- 点击"开始蒸馏"后最多 5 个任务并行执行
- 每个任务有独立的进度条、状态指示和日志
- 完成后逐个预览和应用

<!-- 截图位置：批量蒸馏界面——多个任务同时进行，各有独立进度 -->
> 📸 **[产品截图]** 批量蒸馏——多人同时蒸馏，各自独立进度和状态

---

## 版本管理与重新蒸馏

每次蒸馏的完整记录会被持久化保存到 `distill_records` 表 + 本地文件系统：

- **原始素材文件的副本**（确保重新蒸馏时不需要用户再次上传）
- **蒸馏产物**（persona.md / work.md / SKILL.md）
- **元数据**（family、alias、slug、version、timestamp）

带来的能力：
1. **追加蒸馏** — 拿到新素材后，在老记录基础上补充蒸馏，不需要重传历史文件
2. **版本对比** — 同一个人蒸馏多次后，可以对比 persona 如何随着素材丰富而完善
3. **随时回溯** — 三个月前蒸馏的那个同事的记录还在，可以回看或重新应用

---

## 实际应用场景

### 场景 1：让 Agent 群聊有"灵魂"

上一篇文章讲的 Agent 群聊行为引擎——如果不配合人格蒸馏会怎样？

所有 Agent 说话像同一个人开了 5 个马甲。虽然有概率差异、有错别字、有延迟——但说出来的**内容和语气**高度相似。

蒸馏后，每个 Agent 有独特的表达模式：
- "小张"永远短句、爱用"本质上"、偶尔冷幽默、从不用感叹号
- "老王"喜欢长段论述、引经据典、语气正式、动不动提"可扩展性"
- "小李"满嘴前端术语、回复贴代码片段、emoji 频率高、句末爱加"～"

讨论同一个问题时，你一眼能分辨"这是谁在说话"。这是群聊体验从"能用"到"好用"的关键跨越。

### 场景 2：模拟面试官

把目标公司某个技术 leader 的博客文章、Conference 分享、播客访谈、技术书序言喂进去——蒸馏出一个 Agent。然后跟它模拟面试。

它的提问风格、关注点、追问方向、对回答的反应模式，都会非常接近那个真人。比写一句"你是一个严格的面试官"好了**十个量级**。

### 场景 3：多视角头脑风暴

蒸馏出 3 个不同真人风格的 Agent（比如一个保守派产品经理、一个激进派技术总监、一个关注用户感受的设计师），拉进同一个群。输入一个产品需求，看它们从各自角度碰撞。

每个人有独特的思维入口：有人先问场景、有人先想风险、有人直接给方案、有人质疑数据。不是"三个 ChatGPT 戴不同帽子"，是在模拟三种真实的思维模式。

### 场景 4：留存一种表达方式

离开工作环境的同事、许久不联系的朋友、已经退休的导师。蒸馏一份对话记录，留下他们的思维方式和表达习惯。不是替代——是一种独特的数字存档形式。

### 场景 5：客户服务人格定制

将公司最优秀的客服人员的历史对话记录喂入蒸馏器——提炼出 ta 的沟通风格、处理问题的思路、安抚客户的方式。然后用这个人格来驱动客服 Agent，让所有 AI 客服都具备"最佳实践"水准的沟通能力。

---

## 技能安装：蒸馏产物的高级用法

蒸馏完成后有一个可选步骤：**将蒸馏产物安装为"技能"**。

安装后这个 Agent 不仅"像某个人说话"——它的人格和专业知识还可以被**其他 Agent 调用**。比如你蒸馏了一个资深架构师，安装为技能后，团队里的其他 Agent 在需要"架构视角"的时候可以主动调用这个技能获取专业意见。

技能安装执行的操作：
1. 将 persona.md / work.md / SKILL.md 复制到技能目录
2. 打成标准 ZIP 包存入 skills 存储
3. 在 skills 表注册，标记为已安装
4. 后续在 system prompt 技能清单中自动出现

---

## 与自我进化引擎的协同

人格蒸馏和自我进化（上一篇文章的内容）不是割裂的两个功能——它们形成了一条完整的"人格生命线"：

- **蒸馏**给 Agent 一个**初始人格骨架**（说话风格、思维方式、情绪模式、禁忌）
- **进化引擎**在后续的日常使用中持续**补充和细化**（发现新的偏好、学到新知识、修复技能 Bug）
- 两者叠加 = Agent 既有稳定的"底色"（蒸馏决定的基本性格），又有持续的"成长"（进化积累的经验）

这意味着一个蒸馏出来的"小张"Agent，在被使用一个月后，不仅保持着小张的说话风格——还额外知道了用户的特殊偏好和项目上下文。**底色 + 成长 = 有灵魂又有记忆。**

---

## 隐私与安全设计

人格蒸馏涉及**高度隐私**的数据（聊天记录），安全约束是硬性的：

1. **全程本地处理** — 素材文件不上传任何云端。文本提取、归因注入、manifest 构建全部在本机完成。
2. **LLM 调用走用户自己的 API** — 分析阶段调用的是用户自己配置的模型 API（OpenAI/Claude/DeepSeek/本地 ollama），数据不经过任何第三方。
3. **临时文件自动清理** — 蒸馏过程中的临时工作目录在分析完成后立即删除。
4. **记录存储在本机** — distill_records 和产物文件保存在 `~/Library/Application Support/灵犀/` 下，仅本地可访问。
5. **支持单条删除** — 蒸馏记录可随时删除，删除时同步清理磁盘上所有关联文件（素材副本 + 产物）。

你的聊天记录从头到尾只经过两个地方：**你的硬盘** → **你配置的 LLM API**。没有任何第三方服务参与数据处理链路。

---

## 与市面"数字分身"产品的差异化

| 维度 | 某些 SaaS "数字分身" | 灵犀人格蒸馏 |
|------|---------------------|-------------|
| 数据去向 | 上传到平台服务器 | **完全本地** |
| 分析引擎 | 平台自有模型（不可选） | **用户自选模型** |
| 产出格式 | 黑箱，不可导出 | **开放的 .md 文件**，可直接编辑 |
| 可定制性 | 固定模板 | **完全自定义**（手动编辑 persona.md） |
| 版本管理 | 通常不支持 | **完整版本记录 + 追加蒸馏** |
| 生态联动 | 独立功能 | **集成群聊引擎、进化引擎、知识库、技能系统** |
| 成本模型 | 平台收费 | **用户自己的 API 额度** |

最大差异在**透明度和控制权**——蒸馏出来的 persona.md 不是黑箱。你可以直接打开文件，阅读每一行描述，手动修正不准确的地方，微调措辞，删除错误推断。你对最终人格有**完全的编辑权**。

---

> 🎨 **[三大引擎关系图 - GPTImg2 提示词]**
>
> 绘制一张**三角/环形关系**概念图，展示灵犀三大核心引擎如何协同工作，适合做系列文章的总结封面或文末配图：
>
> 标题：「灵犀三大引擎 —— 让 Agent 有灵魂、会成长」
>
> 画面中央是一个发光的 Agent 头像图标（几何机器人+大脑混合风格，金色渐变发光边框）。
>
> 围绕中央 Agent 等距分布三个模块卡片：
>
> - **上方「人格蒸馏」**（紫色 #8B5CF6 主色调）：
>   图标：聊天气泡 + 滤镜/蒸馏瓶
>   标注文字："从真实素材提炼人格底色"
>
> - **左下「群聊行为引擎」**（蓝色 #3B82F6 主色调）：
>   图标：多人头像 + 概率条
>   标注文字："并发概率评估 + 微观拟人"
>
> - **右下「自我进化引擎」**（绿色 #10B981 主色调）：
>   图标：大脑 + 向上循环箭头
>   标注文字："对话中自动学习成长"
>
> 三个模块之间有带箭头的连接线：
> - 蒸馏 → 群聊（线上标注"提供人格参数"）
> - 蒸馏 → 进化（线上标注"提供初始人设"）
> - 进化 → 群聊（线上标注"补充新知识和偏好"）
>
> 底部居中一行文字："本地运行 · 数据不出机 · 支持任何 OpenAI 兼容模型"
>
> 配色：紫/蓝/绿三色对应三大引擎，中央 Agent 用金色(#F59E0B)渐变。白底，现代扁平风格。1200×800px。中文标注。

---

## 蒸馏质量优化经验

### 素材量的影响

| 素材消息条数 | persona 质量 | 备注 |
|-------------|-------------|------|
| < 100 条 | 基础框架，细节不足 | 只能提取大方向的风格 |
| 200-500 条 | 良好，能覆盖多数维度 | 推荐的最低素材量 |
| 500-2000 条 | 优秀，细节丰富 | 口头禅、情绪模式准确率高 |
| > 2000 条 | 顶级，几乎无遗漏 | 甚至能捕捉到不同场景下的风格切换 |

### 多源素材比单源更优

如果只喂私聊记录，蒸馏出来的是"私聊中的小张"。但如果同时喂：
- 私聊记录（展示私下的风格）
- 工作群消息（展示工作状态的风格）
- 邮件（展示正式沟通的风格）
- 会议纪要（展示口头表达的风格）

蒸馏出来的人格会更加**立体**——系统能识别出这个人在不同语境下的风格变化。

### 归因准确性验证

建议用户在蒸馏完成后快速审视 persona.md：
- 检查是否有明显属于自己的特征被错误归入
- 检查是否有事实性错误（比如错误推断了蒸馏对象的职业）
- 手动删除或修正不准确的描述

persona.md 是纯文本文件，用任何编辑器都可以修改。修改后重新"应用"即可生效。

---

## 总结

人格蒸馏做的事用一句话说：**从真实文字素材中提炼完整人格画像，让 AI Agent 拥有"灵魂"而不只是"角色标签"。**

四个核心设计要点：
1. **素材兼容性** — 支持几乎所有文本格式，包括微信 SQLite 数据库直接解析
2. **归因准确性** — 严格区分"谁说的是谁的"，避免人格混淆
3. **产物透明性** — 蒸馏出来的 persona.md 是可读可编辑的纯文本
4. **生态联动性** — 与群聊引擎和进化引擎深度集成，形成"底色+表现+成长"完整链路

三大引擎的协同关系：
- **蒸馏**给 Agent 人格底色
- **群聊引擎**让 Agent 在社交场景中自然表现
- **进化引擎**让 Agent 从使用中持续成长

---

## 关于灵犀

**灵犀 AI Agent** — 完全本地部署的桌面 AI 智能体工作台。

核心差异化能力：
- **人格蒸馏**（本文）+ **群聊行为引擎** + **自我进化** = 有灵魂、会成长的 AI 团队
- 本地运行，数据不出机
- 接入任何 OpenAI 兼容模型（GPT-4o / Claude / DeepSeek / Gemini / 本地 ollama）
- 知识库 RAG + 技能系统 + MCP + 跨实例联网 + Screen Agent + 定时任务

**项目地址：**
- **GitHub**：https://github.com/OdysseyFather/lingxi-agent ⭐ Star 是最好的鼓励
- **CSDN 专栏**：搜索「灵犀 AI Agent」

完全开源（MIT License）。欢迎 Star、Fork、Issue、PR。

---

**系列文章回顾：**
1. [我让 5 个 AI 建了个微信群，结果它们吵起来了](#)
2. [我让 AI Agent 自己给自己改 Bug，结果它真的越来越聪明了](#)
3. 把微信聊天记录喂给 AI，它"复刻"了我同事的说话风格（本文）

*三篇读完你就对灵犀的三大核心引擎有了完整了解。感兴趣就去 GitHub 给个 Star。*

*系列持续更新。关注不迷路。*
