Claude Code 有不少藏在斜杠后面的命令,/compact、/rewind、/fork 这些可能你已经见过了。但有一条命令比较特殊,它不写代码,不改文件,做的事情是分析你自己:/insights。
跑一次 /insights,Claude 会读取你过去 30 天的会话记录,生成一份交互式 HTML 报告。报告里有项目分布、工具使用热力图、摩擦点分析、满意度追踪,还会给出可以直接复制粘贴的 CLAUDE.md 配置建议。
我最近跑了一次,发现些事情不看报告我自己根本注意不到。
这篇文章分三部分:报告长什么样,背后怎么跑的,怎么用才有价值。
太长不看版
/insights分析最近 30 天的会话数据,生成一份本地 HTML 报告- 报告分八大板块:概览、统计仪表盘、项目分布、交互风格、亮点成就、摩擦分析、功能推荐、未来展望
- 背后是六阶段流水线:会话过滤 → 元数据提取 → Facet 抽取 → 聚合分析 → 全局摘要 → HTML 渲染
- Facet 抽取用 Haiku 模型,每次最多分析 50 个新会话,结果缓存到本地
- 摩擦点被分成九种具体类型------不是告诉你"有问题",而是告诉你"什么类型的问题出现了几次"
- CLAUDE.md 建议来自你重复说过的指令,说过两次以上的会被优先推荐
- 报告还会推荐你没用过的功能:自定义 Skill、Hooks、MCP Server、Headless 模式
- 所有分析在本地完成,会话数据不上传,报告文件存在
~/.claude/usage-data/report.html
怎么跑
条件:Claude Pro 或更高级订阅,本地装好 Claude CLI,有至少几周的使用记录。
bash
claude
/insights
等几分钟(取决于会话数量),Claude 会输出报告文件路径。用浏览器打开就能看到完整的交互式报告。
第一次跑会慢一些,因为每个会话都要做 Facet 抽取(后面会解释这是什么)。后续再跑只分析新增会话,已分析的有缓存。
报告里有什么
报告内容很多,下面按板块说说每部分是什么、有什么用。
概览(At a Glance)
报告开头是一段四维度摘要,相当于整份报告的执行摘要:
| 维度 | 回答的问题 |
|---|---|
| 做得好的 | 你的交互风格有什么优势?哪些工作流效果好? |
| 拖后腿的 | Claude 端的问题(理解错误、方法不对)和你这边的问题(上下文不够、环境配置)分别是什么? |
| 速赢建议 | 有哪些马上能试的 Claude Code 功能或工作流调整? |
| 未来机会 | 随着模型能力提升,哪些现在不太行的工作流会变得可行? |
这段摘要是整条流水线最后生成的,它拿到了所有前序分析结果作为上下文。
统计仪表盘
数字面板直接从会话日志提取,不经过 LLM。包括总消息数、代码行增删、文件数、活跃天数、日均消息数这些总量指标。
更有意思的是几组分布数据:
- 工具使用排行,反映你是怎么用 Claude 的。比如 Bash 调用量远超 Read 和 Edit,说明以执行导向为主;反过来如果 Read 最多,说明你更多把 Claude 当代码阅读助手。
- 会话类型分布,迭代优化、单一任务、快速提问、多任务、探索这几种各占多少。你的典型工作节奏在这里一目了然。
- 时段分布,按小时统计消息量,可以切换时区。如果 API 错误集中在某个时段,可以考虑错峰。
- 并行会话,检测时间重叠的会话,看你有没有同时开多个 Claude 窗口的习惯。
- 响应时间分布,从 2-10 秒到 15 分钟以上分段统计,你能看到自己在 Claude 输出后多久才回复,间接反映会话中的思考时间和注意力分配。
项目分布
/insights 会自动识别你在哪些项目上花了时间,给出每个项目的会话数和活动描述。通常归纳 4-5 个区域。
这个板块的价值在于让你看到时间的实际分配。你以为自己在做 A 项目,数据告诉你大部分时间其实花在了 B 上。另外,对比不同项目的成功率也能发现规律,比如结构化输出类任务(生成查询、数据转换)的成功率通常比开放式探索类任务高不少。
交互风格
这部分用第二人称描述你怎么跟 Claude 交互。分析的信号包括:打断次数、会话平均消息数、满意度反馈、需求表述方式。
报告会判断你属于哪种用户类型。是任务驱动、精确指令型?还是探索式、给 Claude 大量自由度?你习惯开很多短会话还是少量长会话?遇到 Claude 跑偏时是打断纠正还是换个方向?
最后还会给一个"核心模式"的一句话总结。
亮点成就
从你的会话中找出做得好的工作流,不是客套话,而是具体的模式。通常列 3 个,每个包括你做了什么、用了哪些 Claude 功能、为什么效果好。
旁边有一组统计:Claude 最有帮助的能力排行(准确的代码编辑、好的解释、出色的调试、快速搜索等)和任务完成情况分布(完全完成、大部分完成、部分完成、未完成各多少)。
摩擦分析
这是报告里对改进最有用的部分。它把问题分成具体类型,给出出现次数:
方法不对"] A --> C["user_rejected_action
你拒绝了操作"] A --> D["misunderstood_request
理解错了"] A --> E["buggy_code
代码有 bug"] A --> F["excessive_changes
改动过多"] A --> G["claude_got_blocked
Claude 卡住了"] A --> H["external_issue
外部环境问题"] classDef default fill:#0d2d2d,stroke:#1A9090,color:#e0e0e0 classDef highlight fill:#1A9090,stroke:#0d4d4d,color:#ffffff class A highlight
每种类型不只有数字,还附带具体例子和改进建议。比如"misunderstood_request 出现 8 次,主要集中在需求描述模糊的会话,建议在 prompt 中提供明确的编号变更列表"。
旁边还有满意度分布(frustrated → dissatisfied → likely_satisfied → satisfied → happy)。这个数据让你直观地看到,多少会话是"干了活但不顺"的状态。
推荐功能和 CLAUDE.md 建议
这个板块给出可以直接执行的行动项,分三块。
CLAUDE.md 配置建议是报告里最省力的改进方式。它找出你在多个会话里重复说过的指令,生成可以直接粘贴到 CLAUDE.md 的规则。判断标准是同一条指令出现 2 次以上。每条建议旁边有出现频次、触发原因和"复制"按钮。
功能推荐根据你的使用场景推荐你没用过的 Claude Code 功能,通常从这几个里选:
| 功能 | 是什么 | 适合什么场景 |
|---|---|---|
| 自定义 Skill | 可复用的 Markdown 文件,作为斜杠命令运行 | 重复性工作流:提交、Review、数据生成 |
| Hooks | 在特定生命周期事件自动运行 Shell 命令 | 编辑后自动跑编译检查、格式化、测试 |
| MCP Server | 通过 Model Context Protocol 连接外部工具和 API | 数据库查询、网页抓取、Slack 集成 |
| Headless 模式 | 非交互式运行,适合脚本和 CI/CD | 批量修复、短小工具任务、自动重试 |
每个推荐附带具体的配置示例和命令,可以直接复制执行。
使用模式建议更偏工作流层面,比如"在优化请求前添加明确的范围约束"、"把短任务放到 Headless 模式跑",每个附带可复制的 prompt 模板。
未来展望
最后一个板块偏前瞻,根据你当前的使用模式,预测随着模型能力提升哪些工作流会变得可行。通常列 3 个方向,比如自主测试驱动的 bug 修复、并行子代理协作、自愈式网页研究管道。每个方向附带入门方法和可复制的 prompt。
彩蛋
报告末尾有一段从会话里挖出来的趣事。我的是:
"用户连续说了 12 次'hi',每次都被 API 错误拒绝,但仍然回来开新会话"
这要么是执着,要么是一种特殊形式的乐观。实际情况是:那天代理平台抽风,一直失败。
背后怎么跑的:六阶段流水线
/insights 不是一次 LLM 调用,是一条多阶段流水线,混合了本地数据处理和多轮 LLM 调用。
排除 Agent 子会话
排除 <2 条消息
排除 <1 分钟会话"] S3 -.- D3["Haiku 模型
每次最多 50 个新会话
结果缓存到
~/.claude/usage-data/facets/"] S4 -.- D4["7 个专项 Prompt:
项目分布 / 交互风格
亮点 / 摩擦 / 建议
未来机会 / 趣事"] S5 -.- D5["拿到所有前序结果
生成四维度概览"] classDef stage fill:#1A9090,stroke:#0d4d4d,color:#ffffff classDef detail fill:#0d2d2d,stroke:#1A9090,color:#b0b0b0 class S1,S2,S3,S4,S5,S6 stage class D1,D3,D4,D5 detail
阶段 1:过滤和元数据提取
从 ~/.claude/projects/ 加载所有会话日志,过滤掉三类噪声:
- Agent 子会话(文件名以
agent-开头) - 内部操作会话(如 Facet 抽取自身产生的会话)
- 过短的会话(消息少于 2 条或时长不足 1 分钟)
我的 215 个会话中,过滤后保留了 116 个。
对每个保留的会话提取结构化元数据:session_id、时长、Token 用量、工具调用统计、编程语言、Git 活动、代码变更量、用户打断次数、工具错误等。这一步纯本地处理,不调用 LLM。
阶段 2:长文本摘要
如果某个会话的文本超过 30,000 字符,会按 25,000 字符分块,每块用 LLM 压缩到 3-5 句话。这是为了让后续的 Facet 抽取不超出 Token 限制。
阶段 3:Facet 抽取
整条流水线的核心步骤。对每个会话(每次运行最多处理 50 个新会话),用 Haiku 模型抽取一组结构化的 Facet,可以理解为会话的定性标签。
每个 Facet 是一个 JSON 对象,包含以下维度:
| 维度 | 说明 | 分类举例 |
|---|---|---|
| goal_categories | 你要求 Claude 做什么 | implement_feature, debug_investigate, fix_bug, write_script_tool, refactor_code |
| user_satisfaction | 满意度信号 | happy, satisfied, likely_satisfied, dissatisfied, frustrated |
| friction_counts | 摩擦类型和次数 | misunderstood_request, wrong_approach, buggy_code, user_rejected_action |
| outcome | 最终结果 | fully_achieved, mostly_achieved, partially_achieved, not_achieved |
| session_type | 会话类型 | single_task, multi_task, iterative_refinement, exploration, quick_question |
| claude_helpfulness | Claude 帮助程度 | unhelpful → slightly_helpful → moderately_helpful → very_helpful → essential |
两个细节。goal_categories 只统计你明确要求的任务,Claude 自发的代码库探索不算。判断依据是你的措辞中有没有"can you..."、"please..."、"I need..."这类信号。satisfaction 基于对话中的文字推断,"great!" 对应 happy,"thanks" 对应 satisfied,"that's not right" 对应 dissatisfied。所以报告才建议你在对话中给点反馈。
Facet 结果缓存在 ~/.claude/usage-data/facets/ 目录下。已分析过的会话不会重复分析,所以第二次跑 /insights 会快得多。
阶段 4:聚合分析
把所有元数据和 Facet 汇总后,跑 7 个专项分析 Prompt,每个最多 8192 Token 输出:
- 项目分布识别,归纳 4-5 个工作区域
- 交互风格描述,用第二人称分析使用模式
- 亮点工作流提炼,找 3 个做得好的模式
- 摩擦点归类,归纳 3 个类别,各附 2 个具体例子
- 优化建议生成,包括 CLAUDE.md 规则、功能推荐、使用模式建议
- 未来机会展望,3 个前瞻性工作流
- 趣事提取,从会话里找一个有趣的片段
每个 Prompt 拿到的上下文是一样的:聚合统计(总会话数、工具使用 Top 8、目标类别 Top 8、满意度分布、摩擦分布)加上最多 50 条会话摘要和 20 条摩擦详情。
阶段 5:全局摘要
拿到前面所有分析结果,生成报告开头的 At a Glance 四维度概览。这个 Prompt 的上下文最丰富,因为它能看到整条流水线的所有输出,概括质量通常也最高。
阶段 6:HTML 渲染
最后把所有数据和分析结果拼成一个自包含的 HTML 文件,内嵌 CSS 和 JavaScript,包含交互式图表、可点击的导航、可复制的代码块。不依赖外部资源,浏览器打开就能看。
怎么用才有价值
跑的时机
每月一次,或者在项目里程碑结束后跑一次。跑太频繁看到的是重复模式,跑太少错过阶段性变化。
给 Claude 反馈
满意度追踪依赖你在对话中的文字信号。看我的满意度分布就知道了:基本满意 50 次,但满意只有 3 次,沮丧有 6 次。如果你习惯什么都不说,这些数据就是空的。不用刻意,说一句"好的"或"不对,重来"就行。
把建议落地到 CLAUDE.md
报告里的 CLAUDE.md 建议附带"复制"按钮。看到靠谱的直接粘贴到项目的 CLAUDE.md 里。比如我的报告建议"当要求特定数量的优化时,只实现这些确切的更改",这条来自至少 4 个会话中 Claude 超出范围的观察。粘贴到 CLAUDE.md 后,下次 Claude 启动会自动读取,你不用再重复说。
把成功模式标准化为技能
报告里一个明显的规律:成功率最高的会话往往用了自定义技能。如果你有一类任务反复做(生成 ES 查询、格式转换、代码审查),把它做成 .claude/skills/ 下的 SKILL.md,用斜杠命令一键触发。
搭配其他命令
报告里的摩擦分类直接对应了可以采取的行动:
| 摩擦类型 | 对应命令 | 怎么用 |
|---|---|---|
| wrong_approach(错误方法) | /rewind |
回退到分歧点重新来,保留对话记忆 |
| user_rejected_action(拒绝操作) | /fork |
分支当前对话试验不同方案 |
| slow_or_verbose(太慢太啰嗦) | /compact |
压缩上下文释放 Token |
| 上下文切换 | /btw |
不打断当前任务问个快速问题 |
隐私
所有分析通过 Anthropic API 在本地完成。会话数据不上传,HTML 报告生成在本地,分享不分享你说了算。Facet 抽取关注的是交互模式(你做了什么类型的任务、满意度怎样、出了什么摩擦),不是你的代码内容。
小结
/insights 把你过去一个月跟 Claude Code 的交互变成一份分析报告。
那行消息条数本身说明不了什么。有用的是后面几个部分:摩擦分析告诉你在哪里反复踩坑,CLAUDE.md 建议把你说过两遍以上的指令变成自动规则,功能推荐帮你发现一直需要但没用过的工具。
如果你每天都在用 Claude Code,每个月花几分钟跑一次 /insights。
