Kilo数据导出功能使用指南

Kilo 开发了一个工具,可以下载与你账户关联的部分数据。这份实地指南可以帮助你了解这组数据集。

这种输出可以将过去几个月零散的数据转化为对上一个季度表现的更清晰图景。你可以成为自己的法医侦探,识别出在进入年末最后一个季度时需要改进的地方。

您还可以使用我们指南中介绍的开源工具,对自己的数据进行网络安全检查。例如,如果您或您的组织在安全事件发生后需要了解您的数据配置文件,这些开源工具可以帮助确定在修复潜在风险时应优先关注的重点。

导出本身很容易申请。如果你没有数据背景,理解里面的内容可能需要一些帮助,这正是本指南的目的。

导出是一个包含账户信息的压缩文件。

因为这是一个大数据导出,直接打开文件是读不到的。它是有结构的,但不是人类的结构,本指南会带你解读它,如何组织,以及如何在其中寻找你想要的具体内容。

请求和解压文件

要请求导出,请在app.kilo.ai点击左下角的账户设置菜单,选择请求数据导出.然后,点击请求导出.一旦邮件准备好,Kilo会通过你发送邮件到你,通常几分钟内,邮件链接到一个名为的单一文件kilo-data-export.jsonl.gz.

.gz扩展名意味着文件是用gzip压缩的。在macOS或Linux上,你可以用以下方式原地解压:

gunzip -k kilo-data-export.jsonl.gz

-k 标志可以保留原始压缩文件,以备你以后需要重新处理时使用。在 Windows 上,7-Zip 可以直接打开它,或者你也可以用最新版本的 PowerShell 运行 tar -xf。

如果你想完全跳过解压步骤,本指南中的大多数命令通过zcat(或macOS上的gzcat)流式传输压缩文件也同样有效,这也是全书采用的做法。

解压后,你得到的是一个 .jsonl 文件,简称 JSON Lines:一个纯文本文件,每一行都是独立完整的 JSON 对象。它是大型导出的常见格式,因为它允许你用普通 Unix 工具逐行处理文件,而不是一次性加载整个文件到内存。

但代价是它本身不太易读,所以你需要安装 JQ 来理解它。如果你还没有,可以在macOS上编造安装JQ,或者你其他软件包管理器的对应软件。

阅读头部

文件的第一行是一个描述导出过程的头部,与你的实际数据分开。您可以通过以下方式观看:

gzip -dc kilo-data-export.jsonl.gz | head -1 | jq

结果大致如下:

{

“type”: “header”,

“schemaVersion”: 1,

“exportId”: “010a8d7f-...”,

“requestedAt”: “2026-08-11T15:15:16.939Z”,

“generatedAt”: “2026-08-11T15:15:19.334Z”,

“includedSources”: [

“kilocode_users”,

“app_builder_projects”,

“microdollar_usage_metadata”,

“system_prompt_prefix”

],

“snapshotAt”: “2026-08-03T00:00:00.000Z”

}

这里有两个领域值得关注。includeSources 列出了哪些类别的数据进入了本次导出,snapshotAt 表示导出的时间点。

数据结构如何

头部后的每一行都是一个平面对象,带有一个源字段告诉你它属于哪个类别,一个字段名称和一个值。有些行还带有 id,将多个字段/值对组合合并为一条记录,比如一个 CLI 会话有标题、会话 ID 和 git 分支,作为三行共享同一 ID。

账户层面的列长如下:

{”source”: “kilocode_users”, “field”: “default_model”, “value”: “x-ai/grok-code-fast-1”}

记录级列如下:

{”source”:”microdollar_usage_metadata”,”id”:”9e6f3aa6-120a-4047-8169-dafcfe566e2e”,”createdAt”:”2025-10-28T16:40:40.581Z”,”field”:”user_prompt_prefix”,”value”:”\ngive me a 2 sentence summary of this whole project\n\n\n# VSCode Vis”}

{”source”:”system_prompt_prefix”,”field”:”system_prompt_prefix”,”value”:”You are Kilo Code, a knowledgeable technical assistant focused on answering questions and providing “}

没有可拆包的嵌套JSON,也没有嵌套在值里。你查询的每个字段都在顶层,这让下面的 jq 配方相对简单。

在做其他事情之前,先了解一下导出文件到底包含了什么,以及每种类型的数据有多少:

gzcat kilo-data-export.jsonl.gz | jq -r ‘.source // “header”’ | sort | uniq -c | sort -rn

每个资源包含的内容

kilocode_users是你的账户记录。它涵盖了你预期的基本信息,比如注册日期、默认模式和信用总额,但还包含更多内容:你的谷歌账户邮箱、姓名和头像(如果你是通过该方式注册的话)、任何关联的GitHub或LinkedIn URL、你的邮箱域名以及注册IP地址。

它本身就值得一看,因为它是唯一一个完全关于你自己,而不是你做过什么的资料。

gzcat kilo-data-export.jsonl.gz | \

jq -r ‘select(.source == “kilocode_users”) | “\(.field): \(.value)”’

这里也追踪支出,以microdollars_used和total_microdollars_acquired为单位,均以微美元计,除以百万即可得到实际金额:

gzcat kilo-data-export.jsonl.gz | \

jq -r ‘select(.source == “kilocode_users” and .field == “microdollars_used”) | .value / 1000000’

microdollar_usage_metadata是每个计费请求的一行,由该请求唯一的ID键入。因为它绑定在请求级计费,而非单一对话,它会捕捉 Kilo 计费的每个上下文的提示,包括计划或自动化任务,而不仅仅是你在会话中输入的内容。

大约每个请求一行,这最终成为导出中最大且最多样化的来源。

gzcat kilo-data-export.jsonl.gz | \

jq -r ‘select(.source == “microdollar_usage_metadata”) | .value’ | head -20

system_prompt_prefix包含与你账户系统级提示相关的前缀文本,截断方式相同。这是一个较小的来源,主要用于确认某个模型调用实际被指示做什么。

正在审核您的数据导出

一旦你手头有完整的导出文件,值得仔细检查一下,看看有没有你没注意到的敏感内容。最可能的做法是microdollar_usage_metadata,因为它直接由提示文本构建,内容丰富:任务描述中输入的零散 .env 值、粘贴到调试提示中的 API 键、数据库连接字符串、嵌入自动化上下文中的电子邮件地址。

这些都不奇怪,也不代表有什么问题。这只是当你提示中一百字符的窗口被记录成千上万次时,往往会积累这些信息。既然你的出口记录是对此的忠实记录,所以这是一个合理的检查地点。

首先,将你想扫描的字段拉入一个纯文本文件:

zcat kilo-data-export.jsonl.gz | \

jq -r ‘select(.source == “microdollar_usage_metadata” or .source == “system_prompt_prefix”) | .value’ \

> kilo-export-flat.txt

开源工具

扫描大量文本以寻找敏感字符串是一个公认的问题,有几个专门为它开发的优秀开源工具.没有一个能单独捕捉所有信息,因为每个检测方法不同,所以最彻底的方法是先跑几个,然后去重复它们发现的。

以下是值得了解的几个例子。

Gitleaks(资料来源,MIT许可证)是运行最快的。它主要为git仓库设计,但也支持扫描普通目录:

gitleaks detect --no-git --source . --report-path findings.json

指向包含你扁平导出的目录,它会返回一个符合其内置规则集的所有内容的JSON报告。

松露猬(资料来源,网站AGPL-3.0许可证)超越了模式匹配。对于许多类型的发现,它实际上会通过对相关服务进行实时测试调用,来验证发现的密钥是否仍然有效。

这一区别对分诊非常重要,因为已经处于非激活状态的发现无需进一步处理,而经过验证的发现则需要进一步处理。

trufflehog filesystem ./kilo-export-flat.txt --results=verified,unknown

信洁者(资料来源,纪录片,MIT许可)最初由三星开发。它在其基于正则表达式的规则之上叠加机器学习模型,专门减少误报,这在短提示片段往往重复且零散的情况下非常有用。

pip install credsweeper

credsweeper --path kilo-export-flat.txt --save-json report.json

要塞(资料来源,网站MIT许可证由Microsoft孵化,重点与上述工具不同:它不是用钥匙和令牌,而是用于查找个人信息,包括姓名、电子邮件地址、电话号码和实体地址。鉴于kilocode_users和microdollar_usage_metadata都经常携带这类数据,这对这种导出来说非常合适。它是一个Python库,而不是独立的命令行工具,但基础扫描只需几行代码,而且还能匿名化发现的内容。

大块提取器(资料来源,GPL-3.0许可证)源自数字取证领域。它不是解析文件结构,而是直接扫描原始字节中的邮件、网址和其他模式,从而捕捉到结构感知工具有时会忽略的部分。

这比大多数人例行检查所需的多,但如果你想要最全面的扫描,这是正确的选择。

如果你运行多个这些工具,你很可能会看到以略有不同的格式报告相同的结果。最简单的整合方法是对匹配字符串本身进行所有报告的归一化,然后再进行去重处理,短 jq 和排序 -u 传递就能很好地处理。

让基洛帮你占卜

鉴于 Kilo 是一个代理型工程平台,手动处理一个大型 JSONL 文件正是它设计来减轻你负担的任务。唯一要避免的是让它原生分析导出内容。

告诉代理直接读取文件,对于任何有意义的导出,都会通过上下文窗口和大量信用。

更好的方法是创建一个小型自定义技能,教Kilo把导出过程分成固定大小的块,把每个块交给一个子代理,而不是把整个内容放在主会话的上下文里。

一种在实际中效果不错的方法是每千行生成一个子代理:每个子代理只读取自己的切片,返回一个简短的摘要,父会话则在不加载原始数据的情况下汇总这些摘要。

类似这样的技能可能如下:

---

name: export-analyzer

description: Analyze a Kilo data export (kilo-data-export.jsonl) without loading it all into context. Use when the user asks to explore, summarize, or audit their Kilo data export.

---

# Kilo Export Analyzer

## Rules

- NEVER read the export file directly into the main context. It can be

tens of thousands of lines.

- First, run `wc -l` on the file and read only line 1 (the header) to

learn which sources are present.

- Split the work: process the file in chunks of 1,000 lines. For each

chunk, spawn a subagent whose only job is to analyze that slice and

return a compact summary (counts, notable findings, flagged strings

with line numbers). Chunk with:

`sed -n ‘START,ENDp’ kilo-data-export.jsonl`

- Subagents report findings only, never raw chunk contents.

- Prefer shell one-liners (jq, grep, awk) over reading data as text.

Compute aggregates like spend and session counts entirely in shell.

## Standard tasks

- “Summarize my export”: per-source line counts, session titles, total

spend in dollars (microdollars / 1,000,000), date range covered.

- “Audit my export”: pull `value` from `microdollar_usage_metadata` and

`system_prompt_prefix` into a flat file, then scan it chunk by chunk

for high-entropy strings and known key patterns. Aggregate and

de-duplicate findings, then report each with enough context to

locate it.

- “Find X”: grep first to locate candidate line numbers, then send only

those regions to a subagent for interpretation.

有了这个功能,一个简单的提示“auditing my data export in ~/Downloads”就能独立运行整个平整、扫描和聚合的流程,上下文窗口也会完整地从另一端出来。

你最终得到的是什么

总体来看,这样的导出比乍看之下更有用。它是一个支出账本,或者是你实际思考问题的记录,而不仅仅是你发布了哪些代码。这样的历史记录能让你发现真实的规律,比如哪些重复次数吃得最多,或者你不断重复哪些提示。

这也是最快回答一个无法回答的问题的方法:到底是什么最终出现在你的提示历史中。在没有问题的情况下做扫描,给你一个基线,结果会变成一份简短的具体行动清单,而不是模糊地感觉可能有问题。

如果你负责将AI工具引入团队,那么同样的“平整扫描”检查也是安全审查员会要求的证据,而在别人问之前准备好它比事后组装要好得多。

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论