From 92ff042a65cd837a7187a321dba11651b591c98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=9C=E6=98=9F?= Date: Wed, 11 Mar 2026 21:38:42 +0800 Subject: [PATCH 1/2] feat(tools): add get_token_usage to agent --- src/copaw/agents/tools/get_token_usage.py | 29 +++++++++++------------ 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/copaw/agents/tools/get_token_usage.py b/src/copaw/agents/tools/get_token_usage.py index 1c37574f5..bfe7ebe08 100644 --- a/src/copaw/agents/tools/get_token_usage.py +++ b/src/copaw/agents/tools/get_token_usage.py @@ -47,37 +47,36 @@ async def get_token_usage( lines.append(f"Token usage ({start} ~ {end}, {', '.join(filter_desc)}):") lines.append("") total_tokens = ( - summary["total_prompt_tokens"] + summary["total_completion_tokens"] + summary.total_prompt_tokens + summary.total_completion_tokens ) lines.append(f"- Total tokens: {total_tokens:,}") - lines.append(f"- Prompt tokens: {summary['total_prompt_tokens']:,}") + lines.append(f"- Prompt tokens: {summary.total_prompt_tokens:,}") lines.append( - f"- Completion tokens: {summary['total_completion_tokens']:,}", + f"- Completion tokens: {summary.total_completion_tokens:,}", ) - lines.append(f"- Total calls: {summary['total_calls']:,}") + lines.append(f"- Total calls: {summary.total_calls:,}") lines.append("") - if summary["by_model"]: + if summary.by_model: lines.append("By model:") - for model, stats in summary["by_model"].items(): - tokens = stats["prompt_tokens"] + stats["completion_tokens"] + for model, stats in summary.by_model.items(): + tokens = stats.prompt_tokens + stats.completion_tokens lines.append( f" - {model}: {tokens:,} tokens " - f"({stats['call_count']} calls)", + f"({stats.call_count} calls)", ) lines.append("") - if summary["by_date"] and len(summary["by_date"]) <= 14: + if summary.by_date and len(summary.by_date) <= 14: lines.append("By date:") - for dt, stats in list(summary["by_date"].items())[-7:]: - tokens = stats["prompt_tokens"] + stats["completion_tokens"] + for dt, stats in list(summary.by_date.items())[-7:]: + tokens = stats.prompt_tokens + stats.completion_tokens lines.append( - f" - {dt}: {tokens:,} tokens " - f"({stats['call_count']} calls)", + f" - {dt}: {tokens:,} tokens " f"({stats.call_count} calls)", ) - elif summary["by_date"]: + elif summary.by_date: lines.append( - f"By date: {len(summary['by_date'])} days with usage " + f"By date: {len(summary.by_date)} days with usage " "(see console for details)", ) From ac7af9df45cd47d06f8231391d1b256e517181b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=9C=E6=98=9F?= Date: Wed, 11 Mar 2026 22:27:11 +0800 Subject: [PATCH 2/2] fix(get_token_usage): correct formatting of token usage output --- src/copaw/agents/tools/get_token_usage.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/copaw/agents/tools/get_token_usage.py b/src/copaw/agents/tools/get_token_usage.py index bfe7ebe08..8724023c5 100644 --- a/src/copaw/agents/tools/get_token_usage.py +++ b/src/copaw/agents/tools/get_token_usage.py @@ -62,8 +62,7 @@ async def get_token_usage( for model, stats in summary.by_model.items(): tokens = stats.prompt_tokens + stats.completion_tokens lines.append( - f" - {model}: {tokens:,} tokens " - f"({stats.call_count} calls)", + f" - {model}: {tokens:,} tokens ({stats.call_count} calls)", ) lines.append("") @@ -72,7 +71,7 @@ async def get_token_usage( for dt, stats in list(summary.by_date.items())[-7:]: tokens = stats.prompt_tokens + stats.completion_tokens lines.append( - f" - {dt}: {tokens:,} tokens " f"({stats.call_count} calls)", + f" - {dt}: {tokens:,} tokens ({stats.call_count} calls)", ) elif summary.by_date: lines.append(