Skip to content

kimi 带外 usage 采集设计:wire.jsonl usage.record 聚合方案 #253

Description

@dommaker

父票:#134(CLI usage 多 provider 落账,已交付并关闭)
调研依据:docs/research/kimi-usage-outlet.md(2026-08-18)

背景

kimi CLI(0.34.0 → 最新 0.37.2 均如此)stdout stream-json 无 usage 出口——PromptJsonWriter 只写 5 种 JSON 行,turn.step.completed 携带的 usage 被显式 no-op。但带外出口存在:session 的 ~/.kimi-code/sessions/<wd-slug>/<session_id>/agents/main/wire.jsonlusage.record 事件四桶(input/output/cacheRead/cacheCreation)齐全,session_id 可从 stdout 的 session.resume_hint 解析。

本票只出设计,实现票另行开立。

设计决策点

  • 采集时机:session 进行中读(部分数据/写入竞态如何处理)还是收尾后一次性读
  • session 定位:cwd → wd-slug 的映射规则 + session.resume_hint 解析失败时的兜底
  • 多 agent 场景:sub-agent 各自的 wire 是否/如何聚合进同一 workunit
  • 与现有链路接入点:extractProviderUsage kimi 分支(现返回 null)的替换方式,stdout 为主 wire 补还是纯 wire
  • 历史 session 回填是否纳入范围

产出物

  • 设计文档(docs/ 下),钉死上述决策
  • 实现票的 AC 清单

下游消费方

#120 缓存命中率聚合(已交付)——kimi 线目前因 usage=null 完全缺数,本设计落地后补齐。上游 kimi-code stdout usage 事件需求另行提 issue(提出后在此回填链接),上游若实现,本方案可被 stdout 正道替换。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions