关于 gemini-history-analyzer
用于提取和分析 Google Takeout 中 Gemini Apps 活动记录的技能,适合需要整理对话、会议转录或特定主题内容的用户。它先判断记录类型,再进行分类、上下文核验和结构化报告,并可按需生成记忆文件。
主要功能
- 01提取支持中文文件名的 ZIP
- 02区分会议转录与问答记录
- 03分类主题并分析对话模式
- 04核验关键词匹配的上下文
- 05检测个人及敏感信息
- 06生成报告或可选记忆文件
适用场景
- 01整理 Gemini 导出的活动记录
- 02分析会议讨论、发言者和决策
- 03检索金融或法律等特定主题
- 04从对话中提取用户偏好
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill gemini-history-analyzer安装后在 Claude Code 中输入/gemini-history-analyzer确认已加载。
详细介绍
Gemini History Analyzer
提取、分类和分析 Gemini Apps 活动的 Google Takeout ZIP 导出文件。此技能可处理:
- 解压(支持中文/Unicode 文件名)
- 内容分类和主题分析
- 根据对话模式提取用户画像
- 带上下文核验的领域专用关键词搜索
- PII/敏感内容检测
- 生成结构化报告,并可选择创建记忆文件
快速判断:会议记录还是提示词-响应
完整分析前,抽取 3-5 个文件样本,以确定对话类型:
| 信号 | 会议记录 | 提示词-响应 |
|---|---|---|
| 说话人标签 | “张三:”、“李四:”、“Speaker 1:” | “User:”、“Assistant:”、“You:” |
| 内容模式 | 讨论流程、轮流发言、闲聊 | 问答、指令→输出 |
| 长度分布 | 长短不一,短轮次较多 | Assistant 的回复较长 |
| 文件命名 | 通常为中文、会议风格标题 | 英文、按主题命名 |
分析方法因类型而异:
- 会议记录 → 主题分类、说话人分析、决策跟踪、用户画像提取
- 提示词-响应 → 使用模式分析、能力评估、兴趣领域映射
步骤 1:解压 ZIP
Google Takeout 文件包含中文/Unicode 文件名。macOS 的 unzip 会破坏这些文件名——请始终使用 unar。
# Install unar if missing
brew install unar 2>/dev/null || true
# Extract to a target directory
unar -o <output-dir> -q "<takeout-zip-path>"
标准结构:
Takeout/
└── My Activity/
└── Gemini Apps/
├── *.txt # Conversation transcripts
├── *.html # Web-format backups (rare)
├── *.png/jpg # Images from conversations
├── *.mp3/mp4/wav # Audio/video attachments
├── *.pdf # Uploaded/shared documents
├── *.xlsx/docx # Office documents
└── *.zip # Nested archives (animation frames, etc.)
步骤 2:盘点和分类
读取任何单个文件前,先进行完整盘点:
# Count by extension
find <extract-dir> -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn
# List all txt files (these are the primary content)
find <extract-dir> -name "*.txt" -type f | sort
# Get total size per type
find <extract-dir> -type f -exec du -sh {} \; | sort -rh | head -30
建立一张表,列出:
- 文件总数、总大小
- 按文件类型划分的统计(txt 数量/大小、媒体文件数量/大小等)
- 如果文件时间戳有意义,则列出日期范围
步骤 3:抽样和分类
从文件列表中选取分散的 3-5 个 txt 文件(不要只选最前面的几个——时间戳/文件大小可能按类型聚集)。对每个文件:
- 阅读开头约 100 行,确定对话类型
- 识别语言(中文/英文/混合)
- 对主题领域进行高层分类
- 记录说话人数量和模式
根据这些样本,为其余文件确定分析策略。
步骤 4:完整内容分析
对每个 txt 文件,读取并提取:
4a. 元数据
- 标题(文件名去掉哈希后缀)
- 大致时长(根据对话记录中的时间戳)
- 说话人数量和身份
- 语言比例(中文 % / 英文 %)
4b. 主题分类
指定主要和次要主题。默认类别(根据实际内容调整):
- 软件开发
- AI/大模型工具与工作流
- 基础设施/云/DevOps
- 商业/战略
- 产品/设计
- 团队/人力资源/人员
- 金融/投资(通常是分析重点)
- 法律/合规
- 个人/其他
4c. 每个文件的关键发现
对每个文件,记录:
- 主要讨论要点(3-5 条)
- 已作出的决定或行动事项
- 值得注意的引述(逐字引用,并附上上下文)
- 提及的关系(人物、公司、项目)
步骤 5:领域专用关键词搜索
查找特定领域(金融、法律等)的内容时:
- 设计带有 AND/OR 逻辑的关键词列表——例如,金融:
stock OR investment OR fund OR portfolio OR 股票 OR 投资 OR 基金,还要包括领域专用术语,如EPS、P/E、dividend、arbitrage - 对每批关键词使用 grep 搜索每个 txt 文件
- 阅读每处匹配的上下文(前后各 10 行)——仅靠关键词匹配会产生大量误报。“Investment”可能指商业战略,“option”可能指 UI 选项,“fund”可能指保险功能
- 将每处匹配分类为:
- 确定命中(对话内容确实涉及该领域)
- 误报(词语相同,含义不同)
- 不确定(需要进一步阅读)
- 对确定命中和不确定的匹配,重新阅读完整文件
不要只看 grep 输出就停止——必须核验上下文。
步骤 6:生成报告
报告结构
# Gemini History Analysis Report
**Source**: <zip filename>
**Date analyzed**: <today>
**Extraction size**: <N files, N MB>
## 1. Content Overview
- Total conversations: N
- Conversation type: [Meeting Transcripts | Prompt-Response | Mixed]
- Language distribution: X% Chinese, Y% English, Z% Mixed
- Date range: <earliest> to <latest>
- Media attachments: N images, N audio, N video
## 2. Topic Distribution
| Category | Count | % | Notes |
|----------|-------|---|-------|
| ... | | | |
## 3. Key Findings
(Bulleted, organized by significance)
## 4. Domain-Specific Analysis
(If user requested finance/legal/etc. keyword search)
- Matches found: N
- Confirmed relevant: N
- False positives: N (with examples of what caused them)
## 5. Notable Documents
Non-txt files worth attention: PDFs, spreadsheets, etc.
## 6. Valuable Quotes
Verbatim quotes that capture key insights
## 7. PII / Sensitive Content
(Flag if detected — do NOT include the actual PII in the report)
- File: <name>, Type: <resume/background-check/etc.>, Risk: <high/medium/low>
步骤 7:生成记忆文件(可选)
如果用户希望将发现作为项目记忆持久保存(例如 .claude/projects/<path>/memory/):
何时生成记忆文件
- 用户明确提出要求(“建立用户档案”“记住这个”)
- 分析发现了关于用户偏好、工作流程或限制条件的可复用见解
- 项目有记忆系统(检查是否已有
memory/MEMORY.md)
可提供的记忆文件类型
- 用户档案(
user-profile.md)——如果对话揭示了用户的角色、偏好、个性 - 反馈/工作流程(
feedback-*.md)——如果对话揭示了经过验证的工作流程、该做/不该做的事项 - 项目上下文(
project-*.md)——如果对话揭示了持续进行的项目、决策、限制条件
记忆写入协议
- 遵循项目现有的记忆格式(检查其他记忆文件的 frontmatter 约定)
- 添加
originSessionId或指向该分析的来源标签 - 在
MEMORY.md索引中添加新条目 - 切勿重复记忆中已有的内容——应更新现有文件
步骤 8:清理
# Remove extracted files after analysis complete (user confirms)
rm -rf <extract-dir>
关键注意事项(来自实际使用)
1. ZIP 解压:始终使用 unar
macOS 的 unzip 会悄悄损坏中文文件名,导致文件路径乱码,许多文件无法解压。使用 brew install unar 和 unar -o <dir> <zip> 可以正确处理所有情况。
2. 关键词搜索:grep 是第一步,不是答案
在一次实际分析中,搜索“stock”“investment”“fund”“option”“portfolio”“trading”等关键词,在 80% 以上的文件中都找到了匹配项——但每一个都是误报。这些词经常出现在软件开发语境中。对于每个匹配项,务必阅读其上下文。
3. 了解你正在读取的内容
Gemini Takeout txt 文件并非原始的 Gemini 提示词和回答。它们可能是:
- 由飞书妙记导出、随后上传到 Gemini 的会议记录
- 复制粘贴到 Gemini 中的手写笔记
- 为供分析而粘贴的 PDF/文章文本 在判断文件性质之前,先阅读每个文件开头约 100 行。
4. 可能包含个人身份信息(PII)
简历、背景调查表、联系人列表等,经常会出现在对话历史中。请标记这些内容,切勿在报告中包含其内容。如果要创建记忆文件或 wiki 页面,请确保对 PII 进行概述,而不是直接复制。
5. 大文件需要分级处理
一份 63KB 的记录可能是长达 2 小时的会议。除非它被标记为高度相关,否则不要通读全文。先阅读开头 10% 和结尾 10% 了解大意;只有在关键词命中或主题相关性足以支持时,才通读全文。
6. 大规模处理时并行读取
对于 100 个以上的文件,启动多个并行子 Agent,分批读取并总结(每批 10-15 个文件),再合并结果。一个 Agent 按顺序读取所有文件会耗尽上下文。