Skip to content
Open
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
9 changes: 9 additions & 0 deletions pkg/agent/pipeline_llm.go
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,15 @@ func (p *Pipeline) CallLLM(
llmResponseFields["prompt_tokens"] = exec.response.Usage.PromptTokens
llmResponseFields["completion_tokens"] = exec.response.Usage.CompletionTokens
llmResponseFields["total_tokens"] = exec.response.Usage.TotalTokens
if exec.response.Usage.PromptCacheHitTokens != nil {
llmResponseFields["prompt_cache_hit_tokens"] = *exec.response.Usage.PromptCacheHitTokens
}
if exec.response.Usage.PromptCacheMissTokens != nil {
llmResponseFields["prompt_cache_miss_tokens"] = *exec.response.Usage.PromptCacheMissTokens
}
if exec.response.Usage.PromptTokensDetails != nil {
llmResponseFields["cached_tokens"] = exec.response.Usage.PromptTokensDetails.CachedTokens
}
}
logger.DebugCF("agent", "LLM response", llmResponseFields)

Expand Down
13 changes: 13 additions & 0 deletions pkg/providers/protocoltypes/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,19 @@ type UsageInfo struct {
PromptTokens int `json:"prompt_tokens"`
CompletionTokens int `json:"completion_tokens"`
TotalTokens int `json:"total_tokens"`

// Cache metadata (optional). DeepSeek reports prompt_cache_hit_tokens /
// prompt_cache_miss_tokens; OpenAI-compatible endpoints may report
// prompt_tokens_details.cached_tokens. Pointers distinguish "not reported"
// (nil) from a real zero.
PromptCacheHitTokens *int `json:"prompt_cache_hit_tokens"`
PromptCacheMissTokens *int `json:"prompt_cache_miss_tokens"`
PromptTokensDetails *PromptTokensDetails `json:"prompt_tokens_details"`
}

// PromptTokensDetails carries OpenAI-style prompt token breakdowns.
type PromptTokensDetails struct {
CachedTokens int `json:"cached_tokens"`
}

// CacheControl marks a content block for LLM-side prefix caching.
Expand Down