老哥,我们主要在大规模使用kiro CLI。 但是我看了一下确实现在kiro CLI是不写q-client.log的。所以这次的fix还是统计不到。
另外,那里统计的是kiro credits。还不是token。所以可能还没发有效兑换到咱们统一的统计体系里来。 这确实是kiro这个agent自身的问题,他没有有效的返回实际花费的token,没有日志。 业界比如 这个项目 weswes0/kiro-usage-tracker , 采用的是估算的办法。 我觉得还比较合理。 您看可否采用。 最近确实因为kiro订阅比较好买, 但是没法参与到统计比较遗憾
老哥,我刚才测了一下你的commit,发现我给你那个项目也有问题。 我直接提了个新PR你瞅瞅:
https://github.com/vibe-cafe/vibe-usage/pull/25
核心发现:正式版 Kiro CLI 的会话其实存在
~/.kiro/sessions/cli/*.jsonl
(一个 {version, kind, data} 事件流),根本不写 data.sqlite3 的 conversations_v2。我在真机上查过——conversations_v2/conversations 都是 0 行,
~/.kiro_sessions/
目录也不存在。所以 858336b(
https://github.com/vibe-cafe/vibe-usage/commit/858336b
)那条 CLI 路径和 2d4edcc(
https://github.com/vibe-cafe/vibe-usage/commit/2d4edcc
)的 credit 回退,在这类安装上都读不到东西。
这个 PR 把那个原生事件流做成 Kiro 的第一数据源(你原来的路径全部保留做回退),从文本按 chars/4 估 in/out/thinking/cache。有个坑我处理了:thinking 块的加密 signature 必须从 token 计数里排除——真机上它相当于约 148 万 token 的噪音,不排除会让 output 虚高 100% 以上;输出改用 assistant 文本估,比数 chunk 更准(而且这个格式里压根没有 time_between_chunks)。
数字我做了交叉验证:两份独立实现对账,还真抓到过一个 JSON.stringify 把结构开销算进去、导致输入虚高 6 倍的 bug;修完输入侧对齐到 99.5%。
有两个"每轮重发"项留给你定夺:①签名进 cache;②系统提示+工具 schema 每轮重发但不写日志,我用了个每轮常量 KIRO_CLI_SYSTEM_OVERHEAD_TOKENS(默认 20000,设 0 就只数日志内文本)。这块你觉得怎么处理都行。
设计说明我写了中英双版放在 docs/(
kiro-cli-token-estimation.zh.md
/
.md
,还有对应 HTML),把格式、估算、验证过程都讲清楚了。测试 7/7 过。辛苦 review~
明白,我去看下