| name | chat-analysis |
| description | 聊天记录深度分析工具。输入原始聊天数据,输出结构化统计报告、人格画像、话题专题、精彩发言展示,全部渲染为可浏览的 HTML 页面。支持私聊和群聊。当用户提供聊天文件、聊天记录、对话日志、JSONL 聊天数据、群聊导出、私聊记录,或要求分析聊天活跃度、话题分布、用户画像、聊天统计时使用。当用户说'分析聊天记录'、'做聊天记录分析'、'聊天数据分析'、'对话记录分析'时触发。 |
| when_to_use | 当用户要求分析即时通讯导出数据(QQ、微信、Telegram、Discord、WhatsApp 等)时;当用户需要聊天数据的人格画像、话题分析、互动模式分析时;当用户提供原始聊天日志文件或目录希望得到结构化统计报告时。 |
| compatibility | Python 3.8+(运行时生成解析脚本),pip install markdown(HTML 渲染)。无 Python 时降级但功能受限。 |
| metadata | {"version":"1.2","author":"JularDepick","date_added":"2026-05-31","risk":"moderate","tags":["chat","nlp","analysis","report","html","group-chat","private-chat","jsonl"]} |
聊天记录分析 v1.2
聊天记录深度分析完整流水线。支持私聊(1v1)和群聊(多人)场景。解析结构化聊天日志,提取多维统计,生成话题报告、人格画像。核心输出为 Markdown;推荐可选渲染为 HTML。脚本根据实际数据格式在运行时生成,不做格式限制。
When to Use This Skill
- 当用户要求"分析聊天记录"、"聊天数据分析"、"对话记录分析"时
- 当用户要求分析即时通讯导出数据(QQ、微信、Telegram、Discord、WhatsApp 等)时
- 当用户提供原始聊天日志文件或目录,希望得到结构化统计报告时
- 当用户需要聊天数据的人格画像、话题分析、互动模式分析时
更多触发短语见 frontmatter when_to_use 字段。
Examples
用户:帮我分析一下这个群聊记录
Agent:好的,请提供聊天数据的路径。
用户:./chat-data/group-export/
Agent:检测到 JSONL 格式,共 15,000 条消息,32 个发送者。是否以群聊模式分析?
用户:分析我和张三的聊天记录,文件在 ./chats/zhangsan.txt
Agent:检测到纯文本格式,约 3,200 条消息。将以私聊模式分析,焦点用户为?
用户:我是李四
Best Practices
- 基于证据分析,每个结论附聊天原文引用
- 善用子代理并行处理报告生成
- 在 Phase 0 充分确认配置再开始分析
- 使用相对路径,确保输出可独立部署
Limitations
- 不负责聊天记录的导出、提取或抓取,用户需自行获取原始数据
- 分析结果基于聊天记录切片,不代表用户的完整人格或现实生活
- 脚本在运行时生成,依赖 Python 环境;无 Python 时会降级但功能受限
- 大数据集(>25K 消息)会消耗大量 TOKEN(动辄百万),需确保能承担
- 不替代人工审核,输出仅做敏感内容警告,不兜底、不隐藏内容
Security & Safety Notes
- 所有脚本在用户工作目录中运行时生成,需用户确认后执行
- 敏感内容(违法/色情)自动用
<details> 收起隐藏,但不删除原始内容
- 群聊中的人物真实身份默认脱敏处理,需用户明确授权才可出现
- 输出使用相对路径,禁止
file:// 协议和硬编码域名
- 不在任务过程中执行 git 操作,除非用户明确要求
常见陷阱
- TOKEN 消耗过高: 先用小数据集测试,并行子代理数不超过数据规模需要
- 跨聊天数据混合: Phase 0 明确确认数据来源,一次任务只分析一个聊天
- 脚本生成失败: 检查 Python 3.8+ 是否可用,pip install markdown 是否完成
- 媒体文件缺失: Phase 0.4 媒体检测时确认文件完整性
- 输出目录冲突: 使用
.xxx/ 形式目录隔离,all 模式下 md/ 受保护
Related Skills
暂无必须关联的 Skill。本 SKILL 为独立的端到端分析流水线。
可选增强: 如果安装了前端设计相关技能(如 frontend-design),Agent 在生成 HTML 输出时可参考其设计规范,产出更精美的页面效果。这不是必须依赖,仅在可用时提升视觉品质。
范围
本 SKILL 只负责:输入 → 分析 → 输出,最多附加数据清洗。不负责聊天记录的导出、提取、抓取和平台 API 调用。
关键规则(任务启动时必须提醒用户):
- 本 SKILL 会消耗大量 TOKEN(动辄百万),请确保能承担再使用
- 不要在任务过程中执行 git 操作,除非用户明确要求
- 一次任务的所有数据必须来自同一个私聊/群聊,禁止跨聊天混合
- 允许任务中途追加新批次数据,但追加数据必须属于同一聊天
支持场景
| 场景 | 描述 | 关键差异 |
|---|
| 私聊 | 一对一对话 | 聚焦关系动态,2 个发送者画像,并排对比,回复链分析 |
| 群聊 | 多人群组 | 社交动态,N 个发送者画像,活跃排行,Bot 互动,转发文化 |
分析哲学
广度优先,深度并行
先广泛扫描全貌(统计、时间、内容、互动、媒体、话题、用户画像),再用子代理并行处理各维度的深度报告。
善用子代理
任务量大、需要并行时,开子代理是最高效的方式。主对话负责决策、确认、交互、审查;子代理负责执行、生成、转换、批量操作。小任务直接在主对话中完成。主对话执行长时间任务时,定期检查用户是否有新消息(约 5 分钟间隔)。
就事论事,理性优先
每个结论必须有聊天记录原文支撑。客观描述可观察行为,不预设立场,不代入道德判断。使用限定性语言("从聊天中可观察到"、"在此场景中表现出")。用户全责 — 输出仅做敏感内容警告,不兜底、不隐藏内容。
相对路径原则(T0)
所有输出中的路径必须使用相对路径。禁止绝对路径、file:// 协议、硬编码域名。页面内 #id 锚点跳转使用裸 #id 格式。详见 frontend_spec.md。
局部视角,不以偏概全
聊天记录只是用户生活的片面切片。主观性输出(锐评、精彩发言等)需避免以偏概全的论断。
敏感内容处理
详细规范见 references/sensitive_content.md。
| 类型 | 是否敏感 | 处理方式 |
|---|
| 严重违法/色情 | 是 | Markdown 注释标记 → HTML <details> 隐藏 |
| 价值观不同 / 软色情 / 争议性言论 | 否 | 保留在正文中,添加视觉警告 |
默认仅针对媒体文件。形式目录(同一内容的不同输出变体,详见 references/output_structure.md)派生:.full/ 为基准,.pure/ 移除敏感块,.sensitive/ 和 .parts/ 仅在用户选择"敏感内容大赏"时生成。.whole/ 独立于敏感内容管线,为完整聊天记录长页。敏感内容大赏模块默认关闭,不主动引导。
工作流概览
workdir/
├── data/ ← 原始数据(Phase 0 初始化后只读)
│
├─► Phase 0: 目录初始化 + 输入检测与配置
├─► Phase 1: 解析与统计 → .output/chat_stats.json
├─► Phase 2: 深度分析 → .output/md/*.md
└─► Phase 3: 输出渲染与清理 → .output/html/
├─ .full/ — 完整版(默认)
├─ .pure/ — 纯净版
├─ .whole/ — 聊天记录长页(可选)
├─ .parts/ — 分块输出(敏感内容大赏,可选)
└─ .sensitive/ — 敏感内容大赏(可选)
完整目录结构见 references/output_structure.md。
Phase 0:输入检测与配置
0.0 目录初始化
标准结构:workdir/data/(原始数据)+ workdir/.output/(所有输出)。不符合时执行迁移(先向用户确认)。原始数据直接在根目录时创建 data/ 移入;.output/ 不存在时创建。
启动提醒(必须告知用户): 本次分析的所有数据必须来自同一个私聊/群聊。如需分析多个聊天,请分别启动独立任务。分析输出基于聊天记录文本数据,AI 生成内容不代表用户真实主观感受,由用户自行承担责任。
0.1 格式检测
不做格式限制。只要数据包含时间、人物、对话三要素即可分析。
| 格式 | 特征 | 检测方式 |
|---|
| 文本格式(单文件) | 含日期头和发送者前缀 | 输入路径为单文件 |
| JSONL 格式(批量目录) | 结构化 JSON Lines,含 timestamp + sender | 输入路径为含 *.jsonl 的目录 |
解析器模式见 references/script_writing_guide.md。
0.2 聊天模式检测
统计前 500 条消息中的不同发送者数:>2 为群聊,=2 为私聊,=1 提示用户确认。用户可手动覆盖。
0.3 用户配置
询问用户(或从数据中检测):
- 聊天平台 — QQ / 微信 / Telegram / Discord / WhatsApp,或自动检测
- 聊天模式 — 群聊或私聊
- 焦点用户 — 需深度分析的用户 UIN 或昵称(通常是自己的账号)
- 输出目录 — 结果写入路径
- 输出模式 —
md(仅核心)/ html(核心+渲染,默认推荐)/ all(核心+渲染+保留md)
- HTML 风格主题 — 仅 html/all 时询问(默认 Apple):Apple / Nord / Dracula / Gruvbox / Solarized
- HTML 页面布局 — 仅 html/all 时询问(默认 Standard):Standard / Wide / Magazine / Compact
- 完整聊天记录长页(可选) — 是否生成
.whole/ 单页 HTML(默认不生成)
- 页脚技术支持链接(可选) — 是否在 HTML 页脚显示项目链接
- 叙述人称 — 第三人称(默认)或第一人称(需指定"我"对应哪个账号)
- 敏感内容判断范围 — 仅媒体文件(默认)或所有内容
- 敏感内容大赏(可选) — 用户主动要求时才开启
- 最大并行子代理数 — 私聊默认 3,群聊默认 5,最大 9
- 头像嵌入(可选) — 原始数据含头像时是否嵌入报告(默认不嵌入)
群聊额外询问:
15. TOP N 排名 — 为排名前 N 的用户单独生成画像(默认 10,最大 20)
16. more/ 单独页(默认全不选) — 精彩发言(20-30 条)、神人发言(10-20 条),逐项确认
17. 群聊历险记 — 以不同用户的第一人称视角撰写历险日记(默认不生成)
18. 真实身份数据 — 群聊中是否允许出现真实身份(默认脱敏)
私聊配置要点: 焦点用户需明确"我"对应哪个发送者;无 TOP N / more/ / 群聊历险记等群聊专属选项;子代理上限默认 3;人格画像默认生成双方对比。
md/ 默认扁平放置,用户可要求按分类分子目录。
0.4 媒体资源检测
扫描 data/ 检查媒体文件。发现时询问用户:全部使用 / 选择性使用 / 不使用。媒体引用使用 HTML 标签(<img>/<audio>/<video>),固定维度 min(360px, 50vw),相对路径。善用原始媒体嵌入报告。各 .xxx/ 独立迁移 resources/。大文件默认过滤 10MB。详见 script_writing_guide.md 3.7 节。
Phase 1:解析与统计
解析原始数据,提取多维统计,输出 chat_stats.json。
1.1 脚本生成
本 SKILL 不提供预置脚本。脚本在运行时根据实际数据格式编写。参阅:
references/script_writing_guide.md — 解析器模式、统计计算、平台适配
references/methodology.md — 统计分析维度、深度分析框架
references/topic_patterns.md — 话题检测模式、关键词模板
流程:读取实际数据 20-50 行 → 编写解析器 → 写入 .output/scripts/ → 运行验证 → 迭代修正。
1.2 文本格式解析器
针对单文件文本聊天记录。自动检测日期头和发送者格式、分类消息类型、提取时间戳、计算统计指标。模式见 script_writing_guide.md。
1.3 JSONL 格式解析器
针对 JSONL 批量目录。加载所有 .jsonl 文件、解析嵌套对象、转换时间戳、发送者名称解析(groupCard > name > nickname)、同名消歧(后缀 (UIN))、消息分类、按 UIN 分组统计、中英文词提取、关键词匹配、对话轮次检测(30 分钟阈值)、回复速度计算、媒体分析。模式见 script_writing_guide.md。
1.4 统计输出
输出 chat_stats.json,结构见 script_writing_guide.md 第 6 节。包含:meta、basic、time、content、interaction、media、keywords、keywords_by_sender、user_stats、top_users。
1.5 活动断层检测(群聊)
识别消息量骤降节点。检测标准:下降 >15% 且绝对 >80 条,或下降是接下来 3 次均值的 2.5 倍。向用户报告分层信息。
1.6 数据完整性验证
验证:总消息数符合预期、日期范围正确、发送者名称正确区分、焦点用户存在、消息类型分布合理。
1.7 输出前确认
Phase 1 完成后向用户报告数据扫描结果并确认 HTML 输出架构(仅 html/all 模式):
- 完整版 + 纯净版(默认) —
.full/ + .pure/
- 仅纯净版 — 只生成
.pure/
- 仅完整版 — 只生成
.full/
- 含敏感内容大赏 — 完整版 +
.sensitive/ + .parts/
无敏感内容时直接告知用户。md 模式无需选择。
Phase 2:深度分析报告
并行生成多维度分析报告。
2.1 输出结构
完整目录结构见 references/output_structure.md。关键约定:md/ 是核心输出,html/ 从 md/ 渲染;md/ 默认扁平放置;每个 .xxx/ 完全自包含;临时文件写入 .cache/。
2.2 子代理调度策略
使用并行后台子代理(run_in_background: true)。
私聊模式(2 人):
| 子代理 | 职责 |
|---|
| analyse-agent | 5 篇统计分析 |
| report-agent | 4 篇综合报告(含关系动态) |
| topic-agent | N 篇话题专题 |
| personality-agent | 2 篇画像(并排对比) |
私聊默认并行上限 3,超出时分批执行。
群聊模式(多人):
| 子代理 | 职责 |
|---|
| analyse-agent | 5 篇统计分析(含交叉分析) |
| report-agent | 4 篇综合报告 |
| topic-agent | N 篇话题专题(典型 9-12 篇) |
| personality-batch-A/B/C | 分批生成用户画像 |
| brilliant-agent | 精彩发言(Phase 0 选择后) |
| legendary-agent | 神人发言(Phase 0 选择后) |
| adventures-agent | 群聊历险记(Phase 0 选择后) |
调度规则: 并行数不超过 Phase 0 上限(私聊默认 3,群聊默认 5,最大 9),超出时分批;同批在一条消息中全部启动;brilliant/legendary/adventures 仅 Phase 0 选择后调度;每个子代理自包含上下文。
2.3 写作规范
每篇报告必须:使用表格、代码块引用原始记录、嵌入媒体文件、引用统计数据、承认局限性、使用相同语言、满足最低行数(统计 ≥200、综合 ≥300、话题 ≥300、画像私聊 ≥400/群聊 ≥350、精彩/神人 ≥300)、阅读 8-10 个片段、抽检 chat_stats.json、遵循叙述视角。
禁止:无证据论断、推测私人生活、包含敏感个人信息、空洞总结。详细标准见 references/methodology.md 3.6 节(证据标准)。
2.4 话题检测
四阶段方法(详见 references/topic_patterns.md):发现(8-10 个片段)→ 分类(关键词列表 + 全量扫描)→ 深潜(>5% 话题收集引文)→ 交叉分析(话题 × 时间/发送者/情绪)。
2.5 人格画像
私聊: 聚焦关系动态、沟通模式、情感交流,双方并排对比,包含关系演变。分析主动性差异、回复速度、情感支持模式。
群聊: 聚焦个人沟通风格、社交角色、影响力。分析 Bot 互动、回复目标、角色原型(话题驱动者、回应者、潜水者、Bot 用户、梗传播者)。
通用:所有观察基于可验证的聊天行为,每个论断附证据,使用限定性语言,以"局限性声明"结尾。详见 references/personality_guide.md。
2.6 精彩发言 / 神人发言(群聊,可选)
仅 Phase 0 用户选择后生成。精彩发言 20-30 条(神回复、经典对话、梗传播等),神人发言 10-20 条(逻辑跳跃、抽象表达)。每条含原始记录、上下文、深度解析。
推荐扩展(可向用户提议): 高频梗速查表、内容集锦、深度点评、时间线大事记、社交网络图。"敏感内容大赏"不主动引导。
2.7 群聊历险记(可选)
以不同用户第一人称撰写,每篇 150-250 行,基于真实事件,创意但不虚构。每篇开头嵌入 AI 生成声明。详见 references/methodology.md。
2.8 高风险内容处理
一般敏感内容 — 添加视觉警告。严重违法/色情 — 按 references/sensitive_content.md 执行。任务结束后向用户报告处理情况。
2.9 子代理拒绝恢复
调整提示词(强调学术目的、转述而非逐字引用)→ 缩小范围 → 重新启动 → 仍拒绝则主对话手动写入。
2.10 Phase 完成检查
Phase 2 完成后向用户报告生成的报告数量和覆盖范围,确认无遗漏后进入 Phase 3。
Phase 3:输出渲染与清理
3.1 输出模式
所有模式均生成 chat_stats.json(Phase 1 产物)和 md/(Phase 2 核心输出)。
| 模式 | 描述 | md/ 行为 | html/ 行为 |
|---|
md | 仅核心输出 | 保留 | 不生成 |
html(默认,推荐) | 核心 + 渲染 | 保留,可被后续重渲染覆盖 | 从 md/ 渲染生成 |
all | 核心 + 渲染 + 保留 md | 受保护,不被重渲染覆盖或自动清理 | 从 md/ 渲染生成 |
3.2 HTML 渲染
按 references/script_writing_guide.md 编写转换脚本。渲染时自动将 <!-- sensitive-start/end --> 转为 <details>。用户允许技术支持链接时添加 --footer-link 参数(无额外值,仅作为布尔标志)。渲染完成后从 .full/ 派生其他形式。用户选择时生成 .output/html/.whole/chat.html。
设计系统: 详见 references/frontend_spec.md(5 种主题色值、4 种布局、组件模式、响应式规则、媒体嵌入规范)。
技术架构: 严格 HTML + CSS + JS,零外部依赖。每个 .xxx/ 完全自包含。所有引用使用相对路径(T0 原则)。
3.3 可移植性
所有输出文件使用相对路径。详见 T0 原则和 references/output_structure.md。
3.4 验证
Markdown: 文件完整、媒体路径正确、统计一致、敏感标记成对、链接正确。
HTML: 页面可从索引访问、面包屑正常、表格渲染正确、中文无乱码、主题切换持久化、排行榜链接正确、响应式正常。
3.5 文件清理
临时文件从生成时即写入 .output/.cache/。Phase 3 完成后按顺序执行:质量检查 → 隐私脱敏扫描 → 清理 .cache/ → 生成 README.ai.md → 交付报告。
3.6 README.ai.md
在 .output/ 根目录生成,包含分析概况、输出架构、目录结构、数据来源、chat_stats.json 关键字段、焦点用户、复用指南。
质量检查清单
数据完整性: 统计数据一致(抽检 3-5 点)、日期范围准确、发送者名称正确。
报告质量: 每个论断有引文支撑、话题覆盖 >5% 消息、画像含局限性声明、满足最低行数、无敏感个人数据泄露。
输出质量: md 文件完整、媒体路径有效、HTML 渲染正确、主题切换正常、排行榜正确、响应式正常。
文件组织: 目录结构正确、chat_stats.json 有效、.cache/ 已清理、无孤立文件。
自迭代规则
默认不迭代。 除非用户明确要求迭代 SKILL,否则不得自动写入。用户的想法、建议是对话内容,不是 SKILL 规则。
迭代时遵守:禁止写入任务数据、禁止泄露敏感内容、禁止包含迭代日志、SKILL 纯净性为 T0 级、编码模式而非实例、保持引用通用、提供预设选项(2-4 个选择,非开放式提问)。
任务后提醒默认关闭。 仅用户主动要求时才执行迭代。
任务中迭代: 用子代理维护 SKILL(主对话继续任务)或用子代理做任务(主对话处理 SKILL)。并行处理,互不阻塞。
备注
性能指南
- 使用
run_in_background: true 并行报告生成
- 每个子代理阅读 8-10 个不同片段
- 大文件(>10K 行)使用
Read 的 offset/limit
- JSONL 将所有消息加载到内存跨批分析
- 抽检子代理输出时阅读实际文件,不信任摘要
规模指南
| 聊天规模 | 私聊推荐 | 群聊推荐 | 预计耗时 |
|---|
| <1K 消息 | 2 子代理 | 3 子代理 | 2-5 分钟 |
| 1K-5K 消息 | 3 子代理 | 4 子代理 | 5-10 分钟 |
| 5K-25K 消息 | 3(需调高上限) | 5-9 子代理 | 10-20 分钟 |
| >25K 消息 | 3(需调高上限) | 9 子代理(分批) | 20-30 分钟 |
技术陷阱
- Windows 用
python 不用 python3
- Windows 终端乱码:脚本中添加
sys.stdout.reconfigure(encoding='utf-8')
- JSONL 时间戳是毫秒 — 除以 1000 转 datetime
- 发送者名称可能变化(groupCard 更新)— 用 UIN 作稳定标识
- Bot 账号消息量大 — 考虑从排行中排除或单独分析
参考文档索引
| 文档 | 内容 |
|---|
references/methodology.md | 统计分析维度、深度分析框架、报告写作标准、人格画像框架 |
references/script_writing_guide.md | 解析器脚本模式、统计计算模式、HTML 渲染模式、平台适配 |
references/topic_patterns.md | 话题检测模式、关键词模板、话题发现流程、报告模板 |
references/personality_guide.md | 人格画像撰写指南、分析维度、角色原型、局限性模板 |
references/frontend_spec.md | CSS 设计系统、主题色值、布局规范、组件模式、媒体嵌入 |
references/sensitive_content.md | 敏感内容定义、处置流程、形式目录派生、可选模块 |
references/output_structure.md | 完整输出目录结构、各目录职责、扁平/分组模式 |