agentleFS
JularDepickJularDepick/ChatAnalysis.SKILL/ChatAnalysis/SKILL.md

chat-analysis

Skill3 starsChanged 5 months agoMITView on GitHub

聊天记录深度分析工具。输入原始聊天数据,输出结构化统计报告、人格画像、话题专题、精彩发言展示,全部渲染为可浏览的 HTML 页面。支持私聊和群聊。当用户提供聊天文件、聊天记录、对话日志、JSONL 聊天数据、群聊导出、私聊记录,或要求分析聊天活跃度、话题分布、用户画像、聊天统计时使用。当用户说'分析聊天记录'、'做聊天记录分析'、'聊天数据分析'、'对话记录分析'时触发。

  • Installs packages

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. bogdanbaciu21/skills★ 2same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

The file

Files
SKILL.md

聊天记录分析 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 用户配置

询问用户(或从数据中检测):

  1. 聊天平台 — QQ / 微信 / Telegram / Discord / WhatsApp,或自动检测
  2. 聊天模式 — 群聊或私聊
  3. 焦点用户 — 需深度分析的用户 UIN 或昵称(通常是自己的账号)
  4. 输出目录 — 结果写入路径
  5. 输出模式 — md(仅核心)/ html(核心+渲染,默认推荐)/ all(核心+渲染+保留md)
  6. HTML 风格主题 — 仅 html/all 时询问(默认 Apple):Apple / Nord / Dracula / Gruvbox / Solarized
  7. HTML 页面布局 — 仅 html/all 时询问(默认 Standard):Standard / Wide / Magazine / Compact
  8. 完整聊天记录长页(可选) — 是否生成 .whole/ 单页 HTML(默认不生成)
  9. 页脚技术支持链接(可选) — 是否在 HTML 页脚显示项目链接
  10. 叙述人称 — 第三人称(默认)或第一人称(需指定"我"对应哪个账号)
  11. 敏感内容判断范围 — 仅媒体文件(默认)或所有内容
  12. 敏感内容大赏(可选) — 用户主动要求时才开启
  13. 最大并行子代理数 — 私聊默认 3,群聊默认 5,最大 9
  14. 头像嵌入(可选) — 原始数据含头像时是否嵌入报告(默认不嵌入)

群聊额外询问: 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 模式):

  1. 完整版 + 纯净版(默认) — .full/ + .pure/
  2. 仅纯净版 — 只生成 .pure/
  3. 仅完整版 — 只生成 .full/
  4. 含敏感内容大赏 — 完整版 + .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-agent5 篇统计分析
report-agent4 篇综合报告(含关系动态)
topic-agentN 篇话题专题
personality-agent2 篇画像(并排对比)

私聊默认并行上限 3,超出时分批执行。

群聊模式(多人):

子代理职责
analyse-agent5 篇统计分析(含交叉分析)
report-agent4 篇综合报告
topic-agentN 篇话题专题(典型 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.mdCSS 设计系统、主题色值、布局规范、组件模式、媒体嵌入
references/sensitive_content.md敏感内容定义、处置流程、形式目录派生、可选模块
references/output_structure.md完整输出目录结构、各目录职责、扁平/分组模式

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.