Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ __pycache__/
*.pyo

# 运行时产物(不入库)
data/
data/*
!data/experiments/
!data/README.md
*.db
metrics.jsonl
experiments/report.json
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ config/ session.json(Session 边界可切换配置)
experiments/ 三组对照 + rich_experiments.py(E20–E28)+ rich_experiments2.py(E30–E34)
tests/ 离线单测(录制样例 + 自查回归 + 多轮链 E2E)
tools/ mock_backend + verify_cache + smoke_e2e + recordings
data/ 34 组实验原始数据(逐轮 jsonl + 汇总 csv,溯源表见 data/README.md)
docs/ ir-schema.md / capability-matrix.md / experiment-results.md / LIMITATIONS.md / REVIEW.md / TRACK04_签字确认稿.md
CHANGELOG.md 按日期演进记录(v0 契约冻结 → v1.2 → 实验交付 → 覆盖补全)
```
31 changes: 31 additions & 0 deletions data/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 实验原始数据(34 组实测 · 逐轮记录)

> 本目录是 `docs/experiment-results.md` 全部数字的**原始出处**:每一次真实 API 调用的逐轮 jsonl 记录 + 汇总 csv。
> 数据日期 2026-09-08 / 09-09,Anthropic Messages API 兼容端点真实调用。
> 口径与防污染方法(唯一 run_id 前缀隔离等)见实验文档第七节「方法学与踩坑」。

## 文件 → 实验编号 溯源表

| 文件 | 内容 | 对应实验文档结论 |
| --- | --- | --- |
| `experiment_20260908_213818.jsonl` / `summary_*.csv` | 三组对照主实验批次 1:A_baseline / B_locked / G1_300 / G2_4x512 / G3_2048 / G4_30frag | exp1–exp5 |
| `experiment_20260908_214354.jsonl` / `summary_*.csv` | 批次 2:增加 C_dynamic / D1_head / D2_tail | exp1–exp8 |
| `experiment_20260908_214628.jsonl` / `summary_*.csv` | 批次 3(8 轮 × 9 配置全量) | exp1–exp19 主数据 |
| `supplement_20260908_220106.jsonl` | 补充实验一:E1/E2 协议横向 token 对照(99.3% 少算)+ H_10/30/60blk 块数证伪 | 20-block 回看窗口证伪 |
| `supplement_20260908_220353.jsonl` | 补充实验一续:H_5/10/30/60blk | 同上 |
| `batch3_20260908_221208.jsonl` | 三协议横向(R1_anthropic / R2_chat / R3_responses)+ 逐模型阈值探测(T_haiku-4.5 / T_sonnet-4.6 / T_opus-5)+ N1–N5 更新频率公式 | 05B 悬案 / 阈值表 / (N−1)/N |
| `batch4_20260908_223443.jsonl` | 断点数量(P1–P4,第 5 个 400)+ 边际效应(M_500–8000)+ 顺序对照(O1_fixed / O2_shuffled)+ 长前缀(OP_10000/20000) | 4 断点上限 / 阈值边际 / 确定性序列化 |
| `batch5_20260908_223934.jsonl` | LONG 20 轮长对话 + WARMUP 预热 + GAIN_LOCKED/DYNAMIC 成本收益 | 7.3× 主数字 / 首轮 11.6× |
| `ttl_20260908_224911.jsonl` / `ttl_20260908_230014.jsonl` | TTL 双档(T1_5min / T2_1h),两次运行互相印证 | 5min 档 400s 失效 |
| `rich_20260908_232421.jsonl` / `rich_20260908_232832.jsonl` / `rich_20260908_233922.jsonl` | 覆盖实验 E20–E29(跨模型隔离 / 流式无损 / schema 变更 / 阈值复测 / 断点位置 / 05B 救援 E27 / E29 埋点对账) | E20–E29 全部结论 |
| `补充2_20260909_142421.jsonl` | E30 并发冷启动 / E31 前缀字节边界 | E30–E31 |
| `补充3_20260909_142829.jsonl` | E32 single-flight / E33 命中延迟差 ~1.65s | E32–E33 |
| `补充4_20260909_143614.jsonl` | E34 opus-5 四档复测(端点异常定性)+ haiku 对照 | E34 / LIMITATIONS #9 |

> 说明:采集当日另有两个 0 字节空文件(`补充2_20260909_141208/141913.jsonl`,为前两次未完成运行),无数据,未入库。

## 字段口径

- `cr` / `cache_read` = `cache_read_input_tokens`;`cc` / `cache_creation` = `cache_creation_input_tokens`;`ti` = `input_tokens`(均为上游真实返回)。
- `hit_rate` = cache_read / (cache_read + input_tokens),与实验文档定义一致。
- `batch5` 的 `cost` 为按当时价目计算的美元成本;实验文档中的成本列统一为**相对倍数**,绝对金额以本目录原始记录为准。
45 changes: 45 additions & 0 deletions data/experiments/batch3_20260908_221208.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{"exp": "R1_anthropic", "path": "/messages", "round": 1, "total_in": 2981, "cached": 0, "wrote": 2972, "hit_rate": 0.0}
{"exp": "R1_anthropic", "path": "/messages", "round": 2, "total_in": 2981, "cached": 2972, "wrote": 0, "hit_rate": 0.997}
{"exp": "R1_anthropic", "path": "/messages", "round": 3, "total_in": 2982, "cached": 2972, "wrote": 0, "hit_rate": 0.9966}
{"exp": "R2_chat", "path": "/chat/completions", "round": 1, "total_in": 2981, "cached": 2972, "wrote": null, "hit_rate": 0.997}
{"exp": "R2_chat", "path": "/chat/completions", "round": 2, "total_in": 2981, "cached": 2972, "wrote": null, "hit_rate": 0.997}
{"exp": "R2_chat", "path": "/chat/completions", "round": 3, "total_in": 2982, "cached": 2972, "wrote": null, "hit_rate": 0.9966}
{"exp": "R3_responses", "path": "/responses", "round": 1, "total_in": 2983, "cached": 0, "wrote": null, "hit_rate": 0.0}
{"exp": "R3_responses", "path": "/responses", "round": 2, "total_in": 2983, "cached": 0, "wrote": null, "hit_rate": 0.0}
{"exp": "R3_responses", "path": "/responses", "round": 3, "total_in": 2984, "cached": 0, "wrote": null, "hit_rate": 0.0}
{"exp": "T_haiku-4.5", "model": "anthropic/claude-haiku-4.5", "size": 600, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_sonnet-4.6", "model": "anthropic/claude-sonnet-4.6", "size": 600, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_opus-5", "model": "anthropic/claude-opus-5", "size": 600, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_haiku-4.5", "model": "anthropic/claude-haiku-4.5", "size": 1200, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_sonnet-4.6", "model": "anthropic/claude-sonnet-4.6", "size": 1200, "cached": 1436, "wrote": 1436, "cached_ok": true}
{"exp": "T_opus-5", "model": "anthropic/claude-opus-5", "size": 1200, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_haiku-4.5", "model": "anthropic/claude-haiku-4.5", "size": 2500, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_sonnet-4.6", "model": "anthropic/claude-sonnet-4.6", "size": 2500, "cached": 2972, "wrote": 2972, "cached_ok": true}
{"exp": "T_opus-5", "model": "anthropic/claude-opus-5", "size": 2500, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "T_haiku-4.5", "model": "anthropic/claude-haiku-4.5", "size": 5000, "cached": 5936, "wrote": 5936, "cached_ok": true}
{"exp": "T_sonnet-4.6", "model": "anthropic/claude-sonnet-4.6", "size": 5000, "cached": 5937, "wrote": 5937, "cached_ok": true}
{"exp": "T_opus-5", "model": "anthropic/claude-opus-5", "size": 5000, "cached": 0, "wrote": 0, "cached_ok": false}
{"exp": "N1", "every_n": 1, "round": 1, "version": 0, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N1", "every_n": 1, "round": 2, "version": 1, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N1", "every_n": 1, "round": 3, "version": 2, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N1", "every_n": 1, "round": 4, "version": 3, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N1", "every_n": 1, "round": 5, "version": 4, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N1", "every_n": 1, "round": 6, "version": 5, "cache_read": 0, "cache_creation": 2974, "hit_rate": 0.0}
{"exp": "N2", "every_n": 2, "round": 1, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N2", "every_n": 2, "round": 2, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N2", "every_n": 2, "round": 3, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N2", "every_n": 2, "round": 4, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N2", "every_n": 2, "round": 5, "version": 2, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N2", "every_n": 2, "round": 6, "version": 2, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N3", "every_n": 3, "round": 1, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N3", "every_n": 3, "round": 2, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N3", "every_n": 3, "round": 3, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N3", "every_n": 3, "round": 4, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N3", "every_n": 3, "round": 5, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N3", "every_n": 3, "round": 6, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N5", "every_n": 5, "round": 1, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N5", "every_n": 5, "round": 2, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N5", "every_n": 5, "round": 3, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N5", "every_n": 5, "round": 4, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
{"exp": "N5", "every_n": 5, "round": 5, "version": 0, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.9966}
{"exp": "N5", "every_n": 5, "round": 6, "version": 1, "cache_read": 2974, "cache_creation": 0, "hit_rate": 0.997}
15 changes: 15 additions & 0 deletions data/experiments/batch4_20260908_223443.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{"exp": "P1_1bp", "breakpoints": 1, "hit_rate": 0.0, "err": null}
{"exp": "P2_2bp", "breakpoints": 2, "hit_rate": 0.6635, "err": null}
{"exp": "P3_4bp", "breakpoints": 4, "hit_rate": 0.8316, "err": null}
{"exp": "P4_5bp", "breakpoints": 5, "hit_rate": null, "err": "HTTP 400: {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"A maximum of 4 blocks with cache_control may be provided. Found 5.\",\"error_type\":\"invalid_req"}
{"exp": "M_500", "size": 500, "cached": 0, "hit_rate": 0.0, "cost": 0.00568}
{"exp": "M_1000", "size": 1000, "cached": 1174, "hit_rate": 0.6616, "cost": 0.00541}
{"exp": "M_2000", "size": 2000, "cached": 2323, "hit_rate": 0.6641, "cost": 0.01041}
{"exp": "M_4000", "size": 4000, "cached": 4628, "hit_rate": 0.6654, "cost": 0.02044}
{"exp": "M_8000", "size": 8000, "cached": 9240, "hit_rate": 0.666, "cost": 0.0405}
{"exp": "O1_fixed", "hit_rate": 0.7476}
{"exp": "O2_shuffled", "hit_rate": 0.2492}
{"exp": "OP_10000", "size": 10000, "round": 1, "cr": 0, "cc": 0, "ti": 0}
{"exp": "OP_10000", "size": 10000, "round": 2, "cr": 0, "cc": 0, "ti": 0}
{"exp": "OP_20000", "size": 20000, "round": 1, "cr": 0, "cc": 0, "ti": 0}
{"exp": "OP_20000", "size": 20000, "round": 2, "cr": 0, "cc": 0, "ti": 0}
25 changes: 25 additions & 0 deletions data/experiments/batch5_20260908_223934.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{"exp": "LONG", "round": 1, "cr": 0, "cc": 9241, "ti": 9, "hit_rate": 0.0, "cost": 0.011585}
{"exp": "LONG", "round": 2, "cr": 9241, "cc": 0, "ti": 20, "hit_rate": 0.9978, "cost": 0.000969}
{"exp": "LONG", "round": 3, "cr": 9241, "cc": 0, "ti": 32, "hit_rate": 0.9965, "cost": 0.000986}
{"exp": "LONG", "round": 4, "cr": 9241, "cc": 0, "ti": 44, "hit_rate": 0.9953, "cost": 0.000993}
{"exp": "LONG", "round": 5, "cr": 9241, "cc": 0, "ti": 56, "hit_rate": 0.994, "cost": 0.00101}
{"exp": "LONG", "round": 6, "cr": 9241, "cc": 0, "ti": 68, "hit_rate": 0.9927, "cost": 0.001017}
{"exp": "LONG", "round": 7, "cr": 9241, "cc": 0, "ti": 80, "hit_rate": 0.9914, "cost": 0.001034}
{"exp": "LONG", "round": 8, "cr": 9241, "cc": 0, "ti": 92, "hit_rate": 0.9901, "cost": 0.001041}
{"exp": "LONG", "round": 9, "cr": 9241, "cc": 0, "ti": 104, "hit_rate": 0.9889, "cost": 0.001058}
{"exp": "LONG", "round": 10, "cr": 9241, "cc": 0, "ti": 116, "hit_rate": 0.9876, "cost": 0.001065}
{"exp": "LONG", "round": 11, "cr": 9241, "cc": 0, "ti": 127, "hit_rate": 0.9864, "cost": 0.001076}
{"exp": "LONG", "round": 12, "cr": 9241, "cc": 0, "ti": 138, "hit_rate": 0.9853, "cost": 0.001087}
{"exp": "LONG", "round": 13, "cr": 9241, "cc": 0, "ti": 150, "hit_rate": 0.984, "cost": 0.001104}
{"exp": "LONG", "round": 14, "cr": 9241, "cc": 0, "ti": 162, "hit_rate": 0.9828, "cost": 0.001111}
{"exp": "LONG", "round": 15, "cr": 9241, "cc": 0, "ti": 174, "hit_rate": 0.9815, "cost": 0.001128}
{"exp": "LONG", "round": 16, "cr": 9241, "cc": 0, "ti": 186, "hit_rate": 0.9803, "cost": 0.001135}
{"exp": "LONG", "round": 17, "cr": 9241, "cc": 0, "ti": 198, "hit_rate": 0.979, "cost": 0.001152}
{"exp": "LONG", "round": 18, "cr": 9241, "cc": 0, "ti": 210, "hit_rate": 0.9778, "cost": 0.001159}
{"exp": "LONG", "round": 19, "cr": 9241, "cc": 0, "ti": 222, "hit_rate": 0.9765, "cost": 0.001176}
{"exp": "LONG", "round": 20, "cr": 9241, "cc": 0, "ti": 234, "hit_rate": 0.9753, "cost": 0.001183}
{"exp": "WARMUP", "phase": "warmup", "cr": 0, "cc": 9240, "ti": 8}
{"exp": "WARMUP", "phase": "正式1", "cr": 9240, "cc": 0, "ti": 9, "hit_rate": 0.999}
{"exp": "WARMUP", "phase": "正式2", "cr": 9240, "cc": 0, "ti": 9, "hit_rate": 0.999}
{"exp": "GAIN_LOCKED", "mode": "LOCKED", "rounds": 20, "hit_rate": 0.9372, "total_cost": 0.03207}
{"exp": "GAIN_DYNAMIC", "mode": "DYNAMIC", "rounds": 20, "hit_rate": 0.0, "total_cost": 0.23406}
18 changes: 18 additions & 0 deletions data/experiments/experiment_20260908_213818.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{"group": "1-更新频率", "config": "A_baseline", "desc": "不注入记忆(基线)", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "A_baseline-20260908_213818", "input_tokens": 17, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.000126}
{"group": "1-更新频率", "config": "A_baseline", "desc": "不注入记忆(基线)", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "A_baseline-20260908_213818", "input_tokens": 28, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.000159}
{"group": "1-更新频率", "config": "A_baseline", "desc": "不注入记忆(基线)", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "A_baseline-20260908_213818", "input_tokens": 40, "cache_creation": 0, "cache_read": 0, "output_tokens": 6, "hit_rate": 0.0, "cost_usd": 0.00021}
{"group": "1-更新频率", "config": "B_locked", "desc": "会话开始注入一次并锁死", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "B_locked-20260908_213818", "input_tokens": 954, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.002937}
{"group": "1-更新频率", "config": "B_locked", "desc": "会话开始注入一次并锁死", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "B_locked-20260908_213818", "input_tokens": 965, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.00297}
{"group": "1-更新频率", "config": "B_locked", "desc": "会话开始注入一次并锁死", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "B_locked-20260908_213818", "input_tokens": 977, "cache_creation": 0, "cache_read": 0, "output_tokens": 6, "hit_rate": 0.0, "cost_usd": 0.003021}
{"group": "3-粒度", "config": "G1_300", "desc": "单块~300token(低于阈值)", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "G1_300-20260908_213818", "input_tokens": 255, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.00084}
{"group": "3-粒度", "config": "G1_300", "desc": "单块~300token(低于阈值)", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "G1_300-20260908_213818", "input_tokens": 266, "cache_creation": 0, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.000873}
{"group": "3-粒度", "config": "G1_300", "desc": "单块~300token(低于阈值)", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "G1_300-20260908_213818", "input_tokens": 278, "cache_creation": 0, "cache_read": 0, "output_tokens": 6, "hit_rate": 0.0, "cost_usd": 0.000924}
{"group": "3-粒度", "config": "G2_4x512", "desc": "4条×512token 多断点", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "G2_4x512-20260908_213818", "input_tokens": 9, "cache_creation": 1627, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.006203}
{"group": "3-粒度", "config": "G2_4x512", "desc": "4条×512token 多断点", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "G2_4x512-20260908_213818", "input_tokens": 20, "cache_creation": 0, "cache_read": 1627, "output_tokens": 5, "hit_rate": 0.9879, "cost_usd": 0.000623}
{"group": "3-粒度", "config": "G2_4x512", "desc": "4条×512token 多断点", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "G2_4x512-20260908_213818", "input_tokens": 32, "cache_creation": 0, "cache_read": 1627, "output_tokens": 6, "hit_rate": 0.9807, "cost_usd": 0.000674}
{"group": "3-粒度", "config": "G3_2048", "desc": "单块2048token 大块", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "G3_2048-20260908_213818", "input_tokens": 9, "cache_creation": 1604, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.006117}
{"group": "3-粒度", "config": "G3_2048", "desc": "单块2048token 大块", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "G3_2048-20260908_213818", "input_tokens": 20, "cache_creation": 0, "cache_read": 1604, "output_tokens": 5, "hit_rate": 0.9877, "cost_usd": 0.000616}
{"group": "3-粒度", "config": "G3_2048", "desc": "单块2048token 大块", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "G3_2048-20260908_213818", "input_tokens": 32, "cache_creation": 0, "cache_read": 1604, "output_tokens": 6, "hit_rate": 0.9804, "cost_usd": 0.000667}
{"group": "3-粒度", "config": "G4_30frag", "desc": "30条细粒度(20-block窗口)", "round": 1, "model": "anthropic/claude-sonnet-4.6", "session_id": "G4_30frag-20260908_213818", "input_tokens": 9, "cache_creation": 2948, "cache_read": 0, "output_tokens": 5, "hit_rate": 0.0, "cost_usd": 0.011157}
{"group": "3-粒度", "config": "G4_30frag", "desc": "30条细粒度(20-block窗口)", "round": 2, "model": "anthropic/claude-sonnet-4.6", "session_id": "G4_30frag-20260908_213818", "input_tokens": 20, "cache_creation": 0, "cache_read": 2948, "output_tokens": 5, "hit_rate": 0.9933, "cost_usd": 0.001019}
{"group": "3-粒度", "config": "G4_30frag", "desc": "30条细粒度(20-block窗口)", "round": 3, "model": "anthropic/claude-sonnet-4.6", "session_id": "G4_30frag-20260908_213818", "input_tokens": 32, "cache_creation": 0, "cache_read": 2948, "output_tokens": 6, "hit_rate": 0.9893, "cost_usd": 0.00107}
Loading
Loading