Quick answer: 多くのエージェントスタックは、コスト追跡を後付けでボルト留めします。モデル呼び出しをラップして別システムにトークンを書き込み、その別システムはやがて実態からずれていきます。DeepSeek Harness は逆の順序を取ります。セッションログが一次成果物であり、トークン使用量はその中に住んでいます。 セッションは追記専用のイベントログ セッションとは、型付き SessionEvent...

コスト記録としてのDeepSeek Harnessセッションログ

Updated August 16, 2026 · first published August 16, 2026

多くのエージェントスタックは、コスト追跡を後付けでボルト留めします。モデル呼び出しをラップして別システムにトークンを書き込み、その別システムはやがて実態からずれていきます。DeepSeek Harness は逆の順序を取ります。セッションログが一次成果物であり、トークン使用量はその中に住んでいます。

セッションは追記専用のイベントログ

セッションとは、型付き SessionEvent エントリの順序付き追記専用シーケンスです。各イベントは四つのフィールドを持ちます。

フィールド意味
typeイベントの種類(例:assistant/message
seqセッション内で単調増加するシーケンス番号
timeタイムスタンプ
data型固有のペイロード

サーフェスイベント(UI が表示するもの)はさらに二つのフィールドを加えます。派生元の生イベントを指す sourceEventSeqs と、surfaceOp です。この逆参照があるからこそ、コストの数値をそれを生んだ正確なイベントまで遡れます。

コストモデルが気にするイベント

ドキュメントの指針は明快です。モデルから見えるものはログに残る。モデルのコンテキストに入るものはすべてイベントを残します。つまりログは構成上完全であり、「誰も計測を忘れない限り完全」ではありません。

使用量は出力とともに運ばれる

トークン使用量はサイドチャネルに書かれるのではなく、それが属する出力とともに運ばれます。プロバイダが実際に課金した内容に最も近いので、使用量チャンク({ type: 'usage' }assistant/chunk)を優先し、チャンクが無い場合に assistant/message.usage へフォールバックしてください。このように読むコストモデルは、生成していないステップに数値を割り当てることが原理的にできません。

複製ではなく導出された履歴

モデルが見るメッセージ履歴は、イベントログから射影されます。第二の真実として横に保持されるわけではありません。コストの数値が実行と一致するシステムと、両者が乖離してどちらが正しいか誰にも言えないシステムとの差はここにあります。

「モデルから見えるものはログに残る」は、コストの再構成を可能にする唯一の規律です。これが無ければ、あらゆる帰属の数値は誤差幅の分からない推定にすぎません。

この上に何を作るか

  1. step/startstep/end を結合してステップスパンを作る。コストを報告する単位はこれです。
  2. 各スパンに request/context(プロバイダ、モデル、コンテキストウィンドウ)とチャンク使用量から求めた価格を付与する。
  3. ステップごとの tool/call のファンアウトを数える。ツールの分岐は、あるターンの費用が突然十倍になる典型的な理由です。
  4. TurnEndReason の分布を監視する。中断・打ち切りのターンは成果のない支払い済み作業であり、ログが無ければ最初に失われる指標です。

Related


Want this applied to your own LLM spend? FinOps LLM runs a free audit of your AI costs and shows where the savings are. Book free audit →

Back to research