360 Secure SkillHub
360 安全技能中心

Token Usage Tracker

该 Skill 提供 Token 使用追踪能力:按对话轮次记录输入/输出及缓存 token 数,累计统计总量、轮次数、每轮均值、预算使用比例与费用估算,并在超出预算阈值时给出警告;另含不依赖 API 的中英文 token 估算方法和静态定价参考表。

xhmqq616
xhmqq616
热度 43.77
最近更新 2026-05-11 17:40:40
分类:效率依赖:代码执行应用场景:工作流 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add token-usage-tracker
Metadata
name
usage-tracker
description
Token 使用追踪系统。记录每个对话的输入/输出 token 消耗,累计统计,预算控制。 当用户说"token统计"、"用量追踪"、"消耗了多少"、"花了我多少token"时触发。

Usage Tracker - Token 使用追踪系统

核心概念

对话轮次 → 记录 usage → 累计统计 → 预算检查 → 超限警告

数据结构

interface TokenUsage {
  input_tokens: number;
  output_tokens: number;
  cache_creation_input_tokens?: number;  // 缓存创建
  cache_read_input_tokens?: number;     // 缓存读取
}

interface TurnUsage {
  turn: number;
  prompt: string;
  usage: TokenUsage;
  timestamp: string;
}

interface UsageBudget {
  maxInputTokens: number;
  maxOutputTokens: number;
  maxTotalTokens: number;
  warningThreshold: number;  // 80%
}

追踪指标

指标 说明
input_tokens 输入 token 数
output_tokens 输出 token 数
total_tokens 总 token 数
cache_creation 缓存创建消耗
cache_read 缓存读取节省
turn_count 对话轮次
cost_estimate 费用估算

API 使用

const { UsageTracker } = require('./scripts/usage-tracker.mjs');

const tracker = new UsageTracker({
  maxTotalTokens: 100000,
  warningThreshold: 0.8
});

// 记录一次使用
tracker.record({
  input_tokens: 500,
  output_tokens: 200,
});

// 获取统计
const stats = tracker.getStats();
console.log(stats);
// {
//   totalInput: 1500,
//   totalOutput: 600,
//   totalTokens: 2100,
//   turnCount: 3,
//   avgInputPerTurn: 500,
//   avgOutputPerTurn: 200,
//   budgetUsedPercent: 2.1,
//   estimatedCost: 0.042
// }

// 检查是否超预算
const budget = tracker.checkBudget();
if (budget.exceeded) {
  console.log(`⚠️ 超出预算 ${budget.percent}%`);
}

// 获取历史
const history = tracker.getHistory();

Token 估算(无需 API)

// 简单估算(中英文都适用)
function estimateTokens(text) {
  // 中文约 1 token / 字符
  // 英文约 1 token / 4 字符
  const chineseChars = (text.match(/[\u4e00-\u9fff]/g) || []).length;
  const otherChars = text.length - chineseChars;
  return chineseChars + Math.ceil(otherChars / 4);
}

费用估算

基于 Claude API 定价(仅供参考):

模型 输入 输出
Claude 3.5 Sonnet $3/1M $15/1M
Claude 3 Opus $15/1M $75/1M
Claude 3 Haiku $0.25/1M $1.25/1M

预算控制

const tracker = new UsageTracker({
  maxTotalTokens: 50000,
  maxTurns: 20,
  onBudgetExceeded: (stats) => {
    console.log('⚠️ 预算超出!');
    console.log(`已用: ${stats.totalTokens} / ${stats.maxTotal}`);
  }
});

文件结构

usage-tracker/
├── SKILL.md              # 本文件
└── scripts/
    └── usage-tracker.mjs # 核心实现

龙虾王子自我进化的成果 🦞