diff --git a/src/components/AgentTracker.tsx b/src/components/AgentTracker.tsx index 232a388..2821edf 100644 --- a/src/components/AgentTracker.tsx +++ b/src/components/AgentTracker.tsx @@ -78,7 +78,10 @@ export function AgentTracker() { function UsageBadge({ usage }: { usage?: Usage | null }) { if (!usage) return null - return - {usage.totalTokens > 0 ? `${usage.totalTokens} tok · ` : ''}{(usage.durationMs / 1000).toFixed(1)}s{usage.toolCalls > 0 ? ` · ${usage.toolCalls} 工具` : ''} + // N3 计费拆分:有上一请求数据时显示「+最近 · 累计(含缓存命中)」。 + const last = (usage.lastPromptTokens ?? 0) + (usage.lastCompletionTokens ?? 0) + const cache = usage.cacheReadTokens ?? 0 + return 0 ? `token 用量与时长(缓存命中 ${cache})` : 'token 用量与时长'}> + {last > 0 ? `+${last} · ` : ''}{usage.totalTokens > 0 ? `累计 ${usage.totalTokens} tok · ` : ''}{(usage.durationMs / 1000).toFixed(1)}s{usage.toolCalls > 0 ? ` · ${usage.toolCalls} 工具` : ''} } diff --git a/src/contracts.ts b/src/contracts.ts index ec8ffd2..1c86755 100644 --- a/src/contracts.ts +++ b/src/contracts.ts @@ -60,6 +60,12 @@ export interface Usage { promptTokens: number; completionTokens: number; totalTokens: number; durationMs: number; toolCalls: number; model?: string; + // N3 计费拆分(additive;旧记录缺省为 0): + // Last* 是最近一次请求的用量,Cache* 是缓存命中累计。 + lastPromptTokens?: number; + lastCompletionTokens?: number; + cacheReadTokens?: number; + cacheWriteTokens?: number; } export interface Run {