Antigravity CLI 的会话记录存在哪
Antigravity CLI(agy)把 step 记录保存在 ~/.gemini/antigravity-cli/brain/<对话 uuid>/.system_generated/logs/ 下。比较 transcript.jsonl 与 transcript_full.jsonl,两者都不保证完整:
~/.gemini/antigravity-cli/brain/<对话 uuid>/.system_generated/logs/transcript.jsonl完整布局:
~/.gemini/antigravity-cli/
├── brain/<对话 uuid>/
│ ├── .system_generated/logs/
│ │ ├── transcript.jsonl ← 滚动窗口
│ │ └── transcript_full.jsonl ← 名义上完整
│ ├── chunks/
│ ├── scratch/
│ └── media__<时间戳>.<扩展名> ← 你上传的附件
└── history.jsonl ← 索引对话属于哪个项目
路径里没有任何线索,答案在根目录那个索引里:
jq -r '[.timestamp, .workspace, .display] | @tsv' \
~/.gemini/antigravity-cli/history.jsonl | sort -r | head每行是 {display, timestamp, workspace, conversationId}。workspace 是项目目录,conversationId 就是 brain/ 下面那个文件夹名。
该读哪一个 transcript
两个都不保证完整。transcript.jsonl 是会在 checkpoint 处被压缩的滚动窗口,而 transcript_full.jsonl 虽然名字叫 full,同样会在 checkpoint 处被截断。实际可用的规则是:哪个大读哪个。
transcript.jsonl 还不是追加式的。CLI 压缩时会整文件重写,所以任何监听它的东西都必须处理「文件变小」,而不只是变大。假设文件单调增长的 tail 会在某一刻悄无声息地停止更新。
step 记录格式
{"step_index":12,"source":"USER_EXPLICIT","type":"USER_INPUT","status":"...",
"created_at":"...","content":"...","thinking":"...","tool_calls":[{"name":"...","args":{}}]}source 是 USER_EXPLICIT、MODEL、SYSTEM 三者之一。
content 有三件事,当成纯文本处理就会出问题:
- 用户输入裹着 XML 壳。真正的消息在
<USER_REQUEST>…</USER_REQUEST>里面,后面还跟着一段 metadata。 - 工具结果带两行前缀。每一条都以
Created At: …\nCompleted At: …\n开头,之后才是真正的输出。 - 代码改动里嵌着 diff。
CODE_ACTION类型的 step 含一个[diff_block_start]标记,后面跟 unified diff。
这些记录里没有任何 token、usage、model 字段,所以这个 agent 没法做成本和用量统计。
在终端里读 Antigravity CLI 对话
打印 step 的来源和类型:
jq -r '[.step_index, .source, .type] | @tsv' \
~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript.jsonl只把你自己敲的话抠出来,去掉 XML 壳:
jq -r 'select(.type=="USER_INPUT") | .content | strings
| select(contains("<USER_REQUEST>") and contains("</USER_REQUEST>"))
| split("<USER_REQUEST>")[1] | split("</USER_REQUEST>")[0]' \
~/.gemini/antigravity-cli/brain/<uuid>/.system_generated/logs/transcript.jsonl怎么恢复这个对话
在工作区目录运行 agy --conversation CONVERSATION_ID,需要已安装对应 CLI。应用提供终端恢复,不提供 Antigravity 内置对话。
依据与限制
实现依据:Antigravity CLI 适配器。
**参考范围:**2026-10-05 对照 Sessions Viewer 0.6.0 的适配器源码核对,不代表验证过每个 CLI 版本。Shell 示例使用 macOS/Linux 路径,需要
jq(opencode 用sqlite3);占位符要替换成实际值,自定义目录以你的配置为准。提取文本不等于完整还原工具、图片或会话树当前分支。命令回归使用可下载的合成样本,不读取私人会话;验证边界见能力与证据矩阵。浏览历史与恢复、编辑数据不同,见隐私与数据处理。
此页描述适配器读取的 agy 文件,不覆盖所有名为 Antigravity 的产品。较大的文件可能保留更多内容,但无法恢复两份文件都已丢失的记录。见找不到会话的排障指南。
或者用应用打开
Sessions Viewer 会在两份 transcript 里挑大的那个,剥掉 XML 壳和时间戳前缀,把 CODE_ACTION 的 diff 渲染成真正的 diff,并且能扛住文件在脚下被重写。它同时还读 Claude Code、Codex、Grok Build、Kimi Code、Pi 和 opencode。
