Back to skills
extension
Category: Data & AnalyticsNo API key required

威高数科-AI周报-收集器

AI 使用数据采集器。启动时让用户多选其使用的 AI 平台,在当前设备上逐一采集所选平台的本周 token、请求和会话明细,并为每个平台生成独立 JSON 到 Windows 桌面\.ai-report;支持 WorkBuddy、Claude Code、OpenCode、Codex/ChatGPT、ZCode、Cursor、CodeArts、Trae、Qoder、CodeBuddy、Hermes、反重力、扣子。用于"采集 AI 使用数据""采集本周 AI 用量""生成 AI 数据 JSON"等请求。

personAuthor: user_4b416ca8hubcommunity

AI 使用数据采集器

启动交互(必须先执行)

每次启动 Skill,第一步必须先询问用户本周使用了哪些平台。即使能从本机目录推断,也不能在用户选择前读取任何平台的数据或生成报告。

使用支持多选的交互控件时,向用户展示一个单独的问题页面,标题为“请选择本周使用过的 AI 平台(可多选)”,并在该问题的 options 中一次性列出全部 13 个选项,不要按类别拆分成多个 questions,也不要分页展示。

全部选项:

  1. WorkBuddy
  2. Claude Code
  3. OpenCode
  4. Codex / ChatGPT
  5. ZCode
  6. Cursor
  7. CodeArts / 华为云码道
  8. Trae
  9. Qoder
  10. CodeBuddy
  11. Hermes(爱马仕)
  12. 反重力(Anti-Gravity)
  13. 扣子(Coze)

调用示例(必须只发一个问题对象):

{
  "question": "请选择本周使用过的 AI 平台(可多选)",
  "header": "AI 平台",
  "multiSelect": true,
  "options": [
    {"label": "WorkBuddy", "description": "当前使用的 AI 助手平台"},
    {"label": "Claude Code", "description": "Anthropic 命令行编码工具"},
    {"label": "OpenCode", "description": "开源终端编码助手"},
    {"label": "Codex / ChatGPT", "description": "OpenAI 命令行与网页端"},
    {"label": "ZCode", "description": "智谱 AI 编码工具"},
    {"label": "Cursor", "description": "Anysphere AI IDE"},
    {"label": "CodeArts / 华为云码道", "description": "华为云 AI 编码平台"},
    {"label": "Trae", "description": "字节跳动 AI IDE"},
    {"label": "Qoder", "description": "奇安信 AI IDE"},
    {"label": "CodeBuddy", "description": "腾讯 AI 编程助手"},
    {"label": "Hermes(爱马仕)", "description": "Hermes Agent MCP 平台"},
    {"label": "反重力(Anti-Gravity)", "description": "蚂蚁 AI 编程助手"},
    {"label": "扣子(Coze)", "description": "字节跳动智能体平台"}
  ]
}

若当前界面没有多选控件,仍要完整列出上述平台,请用户用平台名称或编号(逗号分隔)回复。确认后将结果记为 selected_platforms;只读取这些平台,未选平台不得扫描。若用户没有选择任何平台,停止采集且不生成报告。

强制规则

  1. 只采集用户所选平台selected_platforms 是本次读取授权边界。可以从当前设备读取多个平台的本地记录、配置、缓存、导出文件和经授权的服务端统计,但不得扫描、汇总或生成未选平台的报告。
  2. 平台选择必须单页展示:询问“请选择本周使用过的 AI 平台(可多选)”时,必须把全部 13 个选项放在一个问题对象的 options 中一次性展示。禁止按类别拆成多个 questions,禁止分页展示。未选平台不得扫描。若用户没有选择任何平台,停止采集且不生成报告。
  3. 每个平台独立输出:所选每个平台必须生成一个独立 JSON;不能把多个平台合并到同一文件。某个平台没有安装、没有数据或暂时无法授权时,也为该平台生成契约兼容的降级 JSON,并继续采集其他所选平台。
  4. Codex 归入 ChatGPT:用户选择 Codex / ChatGPT 时,平台标识统一使用 chatgpt,输出文件名为 chatgpt-<YYYY-Www>.json
  5. 缺失数据时必须深度获取:如果首选数据源找不到要求的 token、模型、请求或会话明细,必须继续深度探查该所选平台,包括本地 json/jsonl、SQLite/WAL、LevelDB/IndexedDB、日志、缓存、配置、导出目录、应用运行时状态,以及该平台服务端接口或内置统计能力。
  6. 服务端访问边界:只访问用户所选平台,使用本机已有登录态、配置和官方/平台自身接口;不绕过认证、加密、权限或付费限制,不猜测未授权接口,不上传或泄露凭据。
  7. 只读优先:本地数据库使用只读/immutable/副本方式打开;服务端只调用查询/统计接口,不执行写入、删除、发送消息或改变账户设置的操作。
  8. 不得编造:确实拿不到的字段按契约填 null 或空数组,并在 _tokens_note/_data_source 说明检查范围、失败原因和所需用户操作。估算值必须设置 tokens_estimated: true 并说明算法。
  9. 统一输出目录:所有生成的 JSON 文件(包括 config.json)必须放在当前用户桌面的 .ai-report 文件夹中。Windows 路径为 C:\Users\<用户名>\Desktop\.ai-report\;目录不存在时必须自动创建。严禁写入 ~/.ai-report 或其他报告目录。
  10. 发布包不带用户数据:Skill 包只能包含说明、采集脚本、Schema 和平台参考资料。不得把报告 JSON、config.json、数据库、导出文件、日志、Cookie、Token、API Key 或任何真实会话内容打包。
  11. Windows 桌面解析:脚本必须优先使用 Windows 系统桌面目录(兼容 OneDrive/重定向桌面),不能只拼接 C:\Users\<用户名>\Desktop;解析失败时才回退到用户主目录下的 Desktop
  12. 安全写入与覆盖:生成报告时先写入同目录临时文件,再用原子替换覆盖同名目标文件;禁止留下半截 JSON。重复生成同一周同一平台报告时覆盖旧报告,不另写入其他目录。
  13. 固定契约:每个平台输出都必须遵守 references/json-contract.mdreferences/usage.schema.json。拿不到的数值使用 null,未知列表使用空数组,不得用 0 伪装未知。

统计周期

  1. 获取今天日期和本地时区。
  2. 计算本周一,按 [周一 00:00, 今天之后一天 00:00) 半开区间筛选;报告 period.end 填今天日期。
  3. 使用 ISO 周号 YYYY-Www,例如 2026-W33
  4. 跨周会话按消息/事件时间逐条筛选,不按会话创建时间整条过滤。

平台选择目录(可多选)

用户选择平台后,才使用下列特征定位该平台的数据源。目录是否存在不能替代用户选择:

| 平台 | 特征 | platform 值 | |---|---|---| | WorkBuddy | ~/.workbuddy/projects/ | workbuddy | | Claude Code | ~/.claude/projects/ | claude-code | | OpenCode | ~/.local/share/opencode/opencode.db~/.config/opencode/ | opencode | | Trae | ~/.trae-cn/%APPDATA%/TRAE SOLO CN/ | trae | | Qoder | ~/.qoder/%APPDATA%/Qoder/ | qoder | | CodeBuddy | ~/.codebuddy/%LOCALAPPDATA%/CodeBuddyExtension/ | codebuddy | | Hermes | %APPDATA%/Hermes/%LOCALAPPDATA%/Hermes/ | hermes | | 反重力 | ~/.anti-gravity/%APPDATA%/AntiGravity/ | anti-gravity | | 扣子 | ~/.coze/ | coze | | ZCode | ~/.zcode/ | zcode | | Cursor | %APPDATA%/Cursor/~/.cursor/ | cursor | | CodeArts / 华为云码道 | codearts CLI、CodeArts/码道配置与缓存 | codearts | | Codex / ChatGPT | ~/.codex/ 或 ChatGPT 官方导出 | chatgpt |

用户可以同时选择任意多个平台。对每个所选平台独立定位、采集和写入;一个平台失败不得阻止其他平台完成。

采集流程

1. 确认选择与用户配置

完成启动多选并确认 selected_platforms。首次运行在平台选择之后询问姓名,将配置写入桌面 .ai-report/config.json;已有配置则复用。

2. 读取所选平台档案

只打开 references/data-sources.md 中所有所选平台对应的章节,不打开未选平台章节。对每个平台优先使用现成脚本或指引;脚本只能读取其对应平台,并只能写入桌面 .ai-report。如果使用 Python 脚本,先复用 references/output_paths.py 解析输出目录和安全写入。

3. 逐平台分层采集

selected_platforms 中每个平台按以下顺序执行并记录结果;互不依赖的平台可并行采集:

  1. 精确本地源:现成脚本、jsonl、SQLite/WAL、应用数据库、会话记录。
  2. 深度本地探查:检查该平台相关用户目录、应用数据目录、日志、缓存、LevelDB/IndexedDB、导出目录、插件和运行时状态。
  3. 该平台服务端:检查本地配置或官方文档可确定的统计/用量接口,复用已有认证,只执行查询;或使用该平台内置统计能力。
  4. 用户导出/授权:若服务端或本地数据需要用户登录、导出或授权,给出精确步骤并请求用户操作后继续。
  5. 最终降级:完成上述可行检查后仍不可得,为该平台输出 null/空数组并写明检查范围、不可得字段和原因,然后继续下一个平台。

4. 统一字段

严格遵守 references/json-contract.mdreferences/usage.schema.json

  • summary:总 token、总请求、总会话
  • model_breakdown:分模型 token、调用数及可取得的输入/输出/缓存 token
  • sessions:会话标题、时间、模型和 token

token 不可得时使用 summary.total_tokens: null;分模型不可得时使用 model_breakdown: [];会话明细不可得时使用 sessions: []。不要用 0 伪装“未知”。

Codex 采集还必须维护以下聚合不变量:同一 rollout 可能同时存在于活跃和归档目录,按 rollout basename 去重;不同 rollout 即使共享 session_id,也可能分别是主执行流和 codex-auto-review 等辅助执行流,模型统计需分别累计,会话明细需按 session_id 汇总 token 并合并模型,不能互相覆盖。写入前必须验证 summary.total_tokens == sum(model_breakdown.tokens) == sum(sessions.tokens),且 summary.total_sessions == len(sessions);不一致时停止写入并修正采集逻辑。

CodeBuddy 采集必须运行 references/collect-codebuddy.py 或遵守其等价逻辑:token 只计 BaseAgent notifyStepEnd,消息文件的 extra 可能是字符串化 JSON,需二次解码后按 messageId 归因模型;未持久化的内部调用只能用附近明确的模型初始化记录补齐。Auto 保持为平台自动路由模型,客户端未记录底层实际模型时不得猜测拆分。会话按 history/<workspace>/index.jsonconversations[] 统计,不得用日志文件数代替;写入前验证总 token 与会话合计、已归因模型加未归因 token 均一致。

5. 逐平台写入报告

对每个所选平台将报告安全写入桌面 .ai-report

<用户桌面>/.ai-report/<platform>-<YYYY-Www>.json

生成前调用 get_output_dir() 创建目录。通过临时文件和 os.replace() 原子替换目标文件。若同名文件已存在,按该平台当前采集结果覆盖更新。选中 N 个平台应生成 N 个平台 JSON,不包括共享的 config.json

完成后按平台逐项告知用户:统计周期、报告路径、总量/会话/模型数、精确或估算状态,以及缺失字段。列出成功、降级和需要用户后续授权的平台;不得把不同平台的 token 合成一个总数。

平台脚本速查

| 平台 | 首选采集方式 | 备注 | |---|---|---| | WorkBuddy | references/collect-workbuddy.py | jsonl,通常精确 | | Claude Code | references/collect-claude-code.py | jsonl,通常精确 | | OpenCode | references/collect-opencode.py | SQLite/WAL,通常精确 | | ChatGPT / Codex | Codex 使用 references/collect-codex.py;ChatGPT 导出使用 collect-chatgpt.py 作为后备 | 输出平台标识均为 chatgpt | | ZCode | references/collect-zcode.md | 应用用量读取本机会话;Coding Plan 为远端后备,禁止重复相加 | | Cursor | references/collect-cursor.md | Teams/Enterprise 优先 Admin API;个人版用 Dashboard/本地元数据降级 | | CodeArts / 华为云码道 | references/collect-codearts.md | 优先官方 codearts stats + codearts export,控制台后备 | | Trae | 先查本地状态库,再查 Trae 平台统计 | 会话库可能加密 | | Qoder | 先查 state.vscdb,再查 Qoder 平台统计 | 字段随版本变化 | | CodeBuddy | references/collect-codebuddy.py | 日志精确 token;消息 extra 二次解码后按 messageId 归因模型,会话按 conversations 统计 | | Hermes | 先确认 local/remote,再查 Hermes 服务端统计 | remote 数据主要在服务端 | | 其他 | 深度探查所选平台本地源和查询接口 | 无法确认时按契约降级 |

详细字段、路径、查询策略见 references/data-sources.md;输出字段见 references/json-contract.mdreferences/usage.schema.json;Windows 桌面路径和安全写入见 references/output_paths.py

分层架构

本 Skill 是多平台 L1 采集器:一次运行可读取多个用户所选平台,但每个平台仍独立生成一个 JSON。不得读取未选平台,不得把多个平台合并成一个 JSON,也不得在 L1 阶段跨平台合并 token;跨平台汇总由另一个明确要求的 L2 报告流程完成。

发布边界

本项目只发布 Windows 可导入的 Skill 文件包,不制作独立程序、服务或安装器。导入目标可以是 Codex、Claude Code 或其他支持 Skill 的客户端;如果目标平台不支持 agents/openai.yaml,忽略该文件,仍以 SKILL.mdreferences/ 为核心。

发布 ZIP 的顶层必须只有一个 ai-usage-collector/ 目录,目录内保留 SKILL.mdreferences/ 和可选的 agents/。发布包中不得出现报告、配置、凭据或真实样例。