mcpField
G
gemini-history-analyzer

gemini-history-analyzer

github.com/daymade数据与数据库1.5k329 次安装今天更新
代码仓库

关于 gemini-history-analyzer

用于提取和分析 Google Takeout 中 Gemini Apps 活动记录的技能,适合需要整理对话、会议转录或特定主题内容的用户。它先判断记录类型,再进行分类、上下文核验和结构化报告,并可按需生成记忆文件。

主要功能

  1. 01提取支持中文文件名的 ZIP
  2. 02区分会议转录与问答记录
  3. 03分类主题并分析对话模式
  4. 04核验关键词匹配的上下文
  5. 05检测个人及敏感信息
  6. 06生成报告或可选记忆文件

适用场景

  1. 01整理 Gemini 导出的活动记录
  2. 02分析会议讨论、发言者和决策
  3. 03检索金融或法律等特定主题
  4. 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 文件(不要只选最前面的几个——时间戳/文件大小可能按类型聚集)。对每个文件:

  1. 阅读开头约 100 行,确定对话类型
  2. 识别语言(中文/英文/混合)
  3. 对主题领域进行高层分类
  4. 记录说话人数量和模式

根据这些样本,为其余文件确定分析策略。

步骤 4:完整内容分析

对每个 txt 文件,读取并提取:

4a. 元数据
  • 标题(文件名去掉哈希后缀)
  • 大致时长(根据对话记录中的时间戳)
  • 说话人数量和身份
  • 语言比例(中文 % / 英文 %)
4b. 主题分类

指定主要和次要主题。默认类别(根据实际内容调整):

  • 软件开发
  • AI/大模型工具与工作流
  • 基础设施/云/DevOps
  • 商业/战略
  • 产品/设计
  • 团队/人力资源/人员
  • 金融/投资(通常是分析重点)
  • 法律/合规
  • 个人/其他
4c. 每个文件的关键发现

对每个文件,记录:

  • 主要讨论要点(3-5 条)
  • 已作出的决定或行动事项
  • 值得注意的引述(逐字引用,并附上上下文)
  • 提及的关系(人物、公司、项目)

步骤 5:领域专用关键词搜索

查找特定领域(金融、法律等)的内容时:

  1. 设计带有 AND/OR 逻辑的关键词列表——例如,金融:stock OR investment OR fund OR portfolio OR 股票 OR 投资 OR 基金,还要包括领域专用术语,如 EPS、P/E、dividend、arbitrage
  2. 对每批关键词使用 grep 搜索每个 txt 文件
  3. 阅读每处匹配的上下文(前后各 10 行)——仅靠关键词匹配会产生大量误报。“Investment”可能指商业战略,“option”可能指 UI 选项,“fund”可能指保险功能
  4. 将每处匹配分类为:
    • 确定命中(对话内容确实涉及该领域)
    • 误报(词语相同,含义不同)
    • 不确定(需要进一步阅读)
  5. 对确定命中和不确定的匹配,重新阅读完整文件

不要只看 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)
可提供的记忆文件类型
  1. 用户档案(user-profile.md)——如果对话揭示了用户的角色、偏好、个性
  2. 反馈/工作流程(feedback-*.md)——如果对话揭示了经过验证的工作流程、该做/不该做的事项
  3. 项目上下文(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 按顺序读取所有文件会耗尽上下文。

评论

支持 Markdown