模型消耗统计技能
统计和展示模型(LLM)的使用情况,包括 token 消耗、成本分析和消耗报告。
快速开始
使用此技能时,请按照以下流程操作:
-
确认查询类型
- 当前会话统计
- 历史会话统计
- 按模型分组统计
- 导出消耗报告
-
获取会话数据
- 使用
session_status工具获取当前会话信息 - 使用
sessions_list和sessions_history获取历史会话
- 使用
-
计算统计指标
- 输入 Token(input tokens)
- 输出 Token(output tokens)
- 总 Token 数量
- 成本(如果使用付费模型)
-
通过飞书展示结果
- 使用
message工具发送富文本消息卡片 - 使用表格展示数据
- 使用摘要和图表说明
- 使用
核心指标
Token 消耗
- 输入 Token(input tokens): 接收到的文本(系统提示、对话历史、用户消息)
- 输出 Token(output tokens): 生成的回复内容
- 总 Token 数量: input + output
成本计算
根据模型定价计算成本:
zai/glm-4.7-flash: 约 $0.0001/1K input, $0.0003/1K outputstepfun/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-flashstepfun/step-3.5-flashollama/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 | 本地运行,免费 |
注意事项
- Token 计算准确性: 使用
session_status工具获取准确的 token 数据 - 成本估算: 根据实际使用的模型定价计算成本
- 数据范围: 明确查询的时间范围(最近 1 天/7 天/30 天/全部)
- 飞书格式: 使用富文本表格和格式化,确保展示清晰
- 隐私保护: 不泄露敏感信息,只展示统计数据
示例输出
## 📊 模型消耗统计(最近 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%
微信扫一扫