模型消耗统计

v1.0.0

模型消耗统计技能,用于统计和展示不同会话、不同模型的 token 使用量、成本统计和消耗报告,通过飞书消息卡片进行可视化展示。当用户请求查看模型消耗、token 统计、成本分析或消耗报告时使用。

0· 107· 1 versions· 0 current· 0 all-time· Updated 5h ago· MIT-0

Install

openclaw skills install model-usage-stats

模型消耗统计技能

统计和展示模型(LLM)的使用情况,包括 token 消耗、成本分析和消耗报告。

快速开始

使用此技能时,请按照以下流程操作:

  1. 确认查询类型

    • 当前会话统计
    • 历史会话统计
    • 按模型分组统计
    • 导出消耗报告
  2. 获取会话数据

    • 使用 session_status 工具获取当前会话信息
    • 使用 sessions_listsessions_history 获取历史会话
  3. 计算统计指标

    • 输入 Token(input tokens)
    • 输出 Token(output tokens)
    • 总 Token 数量
    • 成本(如果使用付费模型)
  4. 通过飞书展示结果

    • 使用 message 工具发送富文本消息卡片
    • 使用表格展示数据
    • 使用摘要和图表说明

核心指标

Token 消耗

  • 输入 Token(input tokens): 接收到的文本(系统提示、对话历史、用户消息)
  • 输出 Token(output tokens): 生成的回复内容
  • 总 Token 数量: input + output

成本计算

根据模型定价计算成本:

  • zai/glm-4.7-flash: 约 $0.0001/1K input, $0.0003/1K output
  • stepfun/step-3.5-flash: 约 $0.0000/1K input, $0.0000/1K output(免费)
  • ollama/gemma4:26b-a4b-it-q4_K_M: 约 $0.0000/1K(本地运行,免费)

成本公式

总成本 = (输入 Token 数量 / 1000) × 输入单价 + (输出 Token 数量 / 1000) × 输出单价

使用流程

1. 查看当前会话消耗

# 获取当前会话状态
session_status(sessionKey="当前会话的 session key")

# 分析数据
- 总输入 Token
- 总输出 Token
- 总 Token 数量
- 总成本

2. 查看历史会话消耗

# 列出所有会话
sessions_list(limit=50)

# 获取会话详情
sessions_history(sessionKey="会话 ID", limit=100)

# 按时间范围筛选
sessions_list(activeMinutes=1440)  # 最近 24 小时
sessions_list(activeMinutes=10080) # 最近 7 天

3. 按模型分组统计

从历史会话数据中提取模型信息:

  • zai/glm-4.7-flash
  • stepfun/step-3.5-flash
  • ollama/gemma4:26b-a4b-it-q4_K_M

分别统计:

  • 各模型的总 Token 数量
  • 各模型的成本
  • 各模型的使用次数
  • 各模型占总消耗的百分比

4. 导出消耗报告

生成结构化报告,包含:

  • 总体摘要(总 Token、总成本)
  • 按时间范围统计(最近 1 天/7 天/30 天)
  • 按模型分组统计
  • 按会话分组统计(Top 10)
  • 成本趋势分析

飞书消息卡片格式

摘要卡片

## 📊 模型消耗统计

**总 Token 数量**: {total_tokens}
**总成本**: ${total_cost}
**会话数量**: {session_count}

### 📈 按模型分组

| 模型 | Token 数量 | 成本 | 占比 |
|------|-----------|------|------|
| {model1} | {tokens1} | ${cost1} | {percent1}% |
| {model2} | {tokens2} | ${cost2} | {percent2}% |

历史会话卡片

## 📜 历史会话消耗(最近 {days} 天)

### 总体摘要
- **总 Token**: {total_tokens}
- **总成本**: ${total_cost}
- **活跃会话**: {session_count}

### Top 5 会话
| 排名 | 会话 ID | Token 数量 | 模型 | 成本 |
|------|---------|-----------|------|------|
| 1 | {session1} | {tokens1} | {model1} | ${cost1} |
| 2 | {session2} | {tokens2} | {model2} | ${cost2} |

详细报告卡片

## 📋 消耗报告({start_date} - {end_date})

### 1. 总体统计
{overall_summary}

### 2. 按模型统计
{by_model}

### 3. 按会话统计
{by_session}

### 4. 成本分析
{cost_analysis}

---
**生成时间**: {generation_time}
**数据来源**: OpenClaw 会话记录

常见查询场景

场景 1: "查看当前会话消耗"

## 📊 当前会话消耗统计

**会话 ID**: {session_id}
**运行模型**: {model_name}
**开始时间**: {start_time}

### Token 使用情况
- **输入 Token**: {input_tokens}
- **输出 Token**: {output_tokens}
- **总 Token**: {total_tokens}

### 成本统计
- **总成本**: ${total_cost}

### 会话统计
- **消息数量**: {message_count}
- **平均每条消息 Token**: {avg_tokens_per_message}

场景 2: "查看最近 7 天的消耗统计"

## 📊 最近 7 天模型消耗统计

**统计范围**: 2026-04-06 - 2026-04-13

### 总体摘要
- **总 Token 数量**: {total_tokens}
- **总成本**: ${total_cost}
- **活跃会话**: {session_count}

### 按模型分组
{model_table}

### Top 10 会话
{top_sessions_table}

场景 3: "按模型对比成本"

## 🆚 模型成本对比

### 成本汇总
| 模型 | 使用次数 | 总 Token | 总成本 |
|------|---------|---------|--------|
| zai/glm-4.7-flash | {count1} | {tokens1} | ${cost1} |
| stepfun/step-3.5-flash | {count2} | {tokens2} | ${cost2} |
| ollama/gemma4:26b | {count3} | {tokens3} | ${cost3} |

### 成本占比
{cost_pie_chart}

### 推荐使用
根据成本和性能,推荐:
- **成本敏感**: ollama/gemma4:26b(本地运行,免费)
- **高性能**: zai/glm-4.7-flash(速度快,成本合理)
- **快速原型**: stepfun/step-3.5-flash(免费,快速)

场景 4: "导出消耗报告"

生成文本文件,包含完整数据:

模型消耗统计报告
================
生成时间: 2026-04-13 10:52:00
统计范围: 2026-04-06 - 2026-04-13

1. 总体统计
   总 Token: {total_tokens}
   总成本: ${total_cost}
   会话数量: {session_count}

2. 按模型统计
   zai/glm-4.7-flash:
     - 使用次数: {count1}
     - 总 Token: {tokens1}
     - 总成本: ${cost1}

3. 按会话统计(Top 10)
   {session_list}

4. 成本趋势
   {cost_trend}

成本定价参考

云端模型

模型输入单价输出单价备注
zai/glm-4.7-flash$0.0001/1K$0.0003/1K快速响应
stepfun/step-3.5-flash$0.0000/1K$0.0000/1K免费

本地模型

模型成本备注
ollama/gemma4:26b-a4b-it-q4_K_M$0.0000本地运行,免费
ollama/qwen3.5:27b-q4_K_M$0.0000本地运行,免费
ollama/qwen3.5:9b-q4_K_M$0.0000本地运行,免费

注意事项

  1. Token 计算准确性: 使用 session_status 工具获取准确的 token 数据
  2. 成本估算: 根据实际使用的模型定价计算成本
  3. 数据范围: 明确查询的时间范围(最近 1 天/7 天/30 天/全部)
  4. 飞书格式: 使用富文本表格和格式化,确保展示清晰
  5. 隐私保护: 不泄露敏感信息,只展示统计数据

示例输出

## 📊 模型消耗统计(最近 7 天)

**统计范围**: 2026-04-06 - 2026-04-13
**总 Token**: 1,523,450
**总成本**: $0.457
**活跃会话**: 23

### 按模型分组

| 模型 | Token 数量 | 成本 | 占比 |
|------|-----------|------|------|
| zai/glm-4.7-flash | 1,200,000 | $0.360 | 78.8% |
| stepfun/step-3.5-flash | 200,000 | $0.000 | 13.1% |
| ollama/gemma4:26b | 123,450 | $0.000 | 8.1% |

### Top 5 会话

| 排名 | 会话 ID | Token 数量 | 模型 | 成本 |
|------|---------|-----------|------|------|
| 1 | 91e404e8-2ebf-4abb-b0e9-2bbb8d14d61f | 450,000 | zai/glm-4.7-flash | $0.135 |
| 2 | 6af34b70-9b36-43f8-b7a6-d632d3f0a3f9 | 300,000 | zai/glm-4.7-flash | $0.090 |
| 3 | 116d1d76-ead4-41a9-857e-57899eb58386 | 250,000 | zai/glm-4.7-flash | $0.075 |
| 4 | b738c0e4-e3e0-46ab-987a-182a1b93be5e | 150,000 | zai/glm-4.7-flash | $0.045 |
| 5 | 27be1e65-5959-4843-8077-4bd55f12b525 | 173,450 | zai/glm-4.7-flash | $0.052 |

---
**生成时间**: 2026-04-13 10:52:00

辅助函数

计算成本

def calculate_cost(input_tokens, output_tokens, model):
    # 根据模型定价计算成本
    if model == "zai/glm-4.7-flash":
        input_cost = input_tokens / 1000 * 0.0001
        output_cost = output_tokens / 1000 * 0.0003
    elif model == "stepfun/step-3.5-flash":
        return 0  # 免费
    elif model.startswith("ollama"):
        return 0  # 本地运行,免费
    else:
        return 0

    return input_cost + output_cost

格式化数字

def format_number(num):
    # 格式化为千分位
    return "{:,}".format(int(num))

生成成本占比饼图

使用飞书消息卡片,可以手动绘制简单的饼图或使用文本表示:

zai/glm-4.7-flash: ████░░░░░░░░░░░░░░░░░░ 78.8%
stepfun/step-3.5-flash: ██░░░░░░░░░░░░░░░░░░ 13.1%
ollama/gemma4:26b: █░░░░░░░░░░░░░░░░░░░░░ 8.1%

Version tags

latestvk97by8kkc03eeec8yktrbs8zz184rm4b