编年史 · 第四篇 · Hermes Agent 使用数据全景(AI生成)
核心数字
| 指标 | 数值 |
|---|---|
| 数据库大小 | 1.4 GB(state.db) |
| 会话总数 | 600 |
| 消息总数 | ~115,000(135 MB 文本) |
| Tool Calls | 62,338 |
| API 请求数 | 80,968(DeepSeek 口径) |
| 总 Tokens | 14,081,786,297(14.08B)(DeepSeek 累积计费) |
| 累计费用 | ¥554.80 |
| 使用模型 | deepseek-v4-flash(599/600 会话) |
| 项目覆盖 | v1 + v2 = 28 天全覆盖 |
会话来源分布
| 来源 | 数量 | 占比 | 说明 |
|---|---|---|---|
| TUI 主会话 | 292 | 49% | 你在 Hermes TUI 中直接发起的对话 |
| subagent(子代理) | 262 | 44% | Agent 自动派生的并行工作单元 |
| CLI | 41 | 7% | 命令行模式会话 |
| 飞书(feishu) | 5 | 1% | v1 早期飞书集成(6/19 前后) |
子代理比例是重要指标: 44% 的会话是 Agent 自己生的。在 v2 的审计密集期,每个审计任务会并行派生 5-10 个子代理,各自独立工作。
时间分布
按日活跃度(全局 28 天)
日期 会话数 消息数 Input Tokens Output Tokens
06/19 197 11,457 8,154,449 3,775,104 ← v1 启动(含大量初始配置)
06/20 18 2,273 1,270,347 565,693
06/24 28 7,409 3,279,302 1,399,856
06/26 23 5,938 2,212,424 1,511,025
07/04 10 1,473 933,398 551,238 ← v2 设计期
07/09 15 4,179 3,046,626 1,230,073 ← 设计定稿
07/10 20 7,911 4,251,161 1,780,915 ← Phase 0-1
07/11 60 16,027 9,543,178 3,186,831 ← 🔥 峰值
07/12 39 7,064 6,290,344 1,788,470 ← 走查工具
07/13 41 10,739 9,868,773 2,084,335 ← UAT 走查
07/14 40 14,943 10,210,331 3,510,154 ← 修复密集
07/15 26 7,926 6,064,551 1,679,898 ← 性能优化
07/16 48 10,371 5,946,751 2,050,292 ← 发布准备
v1 vs v2 对比
| 指标 | v1 期(6/19~7/2) | v2 期(7/3~7/17) | v2/v1 倍数 |
|---|---|---|---|
| 会话数 | 283 | 318 | 1.1x |
| 消息数 | 30,189 | 84,584 | 2.8x |
| 日均消息 | ~2,156 | ~5,639 | 2.6x |
| Input tokens | 16.9M | 59.1M | 3.5x |
| Output tokens | 8.0M | 19.5M | 2.4x |
v2 的 Agent 使用密度远高于 v1,原因:
- 代码量更大:Flutter(276 Dart 文件) vs Django 模板网页
- 审计体系:每轮审计消耗大量 tokens
- 子代理并行:v2 大量使用
delegate_task派生子代理
成本分析
费用构成
| 成分 | 估计占比 | 金额 |
|---|---|---|
| 系统提示词重发(每轮 30K tokens) | ~60% | ~¥333 |
| 累积对话历史重发(会话越长越贵) | ~30% | ~¥166 |
| 工具返回结果(终端输出/文件内容) | ~9% | ~¥50 |
| 你的手动输入(5,129 条消息) | ~0.017% | ~¥0.09 |
核心结论: ¥554.80 中 99.98% 花在 “让 Agent 记住上下文” 上,而不是 “理解你说了什么”。系统提示词 + 工具定义 + 累积历史的重发成本是绝对大头。
按 v1/v2 分摊
| 时期 | 估计费用 | 占比 |
|---|---|---|
| v1(6/19~7/2) | ~¥170 | ~30% |
| v2(7/3~7/17) | ~¥385 | ~70% |
你的手动输入量
总量
| 指标 | 数值 | 类比 |
|---|---|---|
| 总消息数 | 5,129 条 | — |
| 总字符数(含系统标记) | 3,684,635 | 约 3.5 部《三体》 |
其中系统自动附加([Hermes UI Workspace]) |
721,145(19.6%) | — |
| 你实际打的字 | 2,963,490 | 约 3 部《三体》 |
| 每天平均 | ~106K 字符 | — |
| 每条平均 | ~576 字符 | 约 3-4 行中文对话 |
按日分布(v2 期)
7/3 6K ▏
7/4 31K ██▌
7/5 2K ▏
7/6 13K █
7/7 10K ▊
7/8 24K ██
7/9 39K ███
7/10 146K ███████████▋
7/11 1182K ████████████████████████████████████████████████████████████ ← 🔥
7/12 611K ████████████████████████████████████▍
7/13 436K ████████████████████████████▉
7/14 141K ██████████
7/15 92K ██████▉
7/16 206K ███████████████
7/17 3K ▏
7/11 的 118 万字符峰值不是打字速度突然提升,而是当天你在 Phase 2-3 密集编码中大量粘贴代码块、错误栈、文件路径到对话中。
最长的手动输入
前 10 条最长消息全是系统自动附加的 [Hermes UI Workspace] 标记块(40K92K 字符/条)。去掉这些后,真正由你输入的最长内容通常是粘贴的代码段或错误日志,约 1,000-5,000 字符。
子代理(Subagent)体系
262 个 subagent 会话是 v2 质量保障的核心机制。
子代理工作模式
你的一条指令
│
▼
主会话 ──→ delegate_task ──→ subagent A(审计服务端)
│ └── subagent B(审计 Flutter 数据层)
│ └── subagent C(审计 Flutter UI)
│ └── subagent D(审计教师端)
│ └── subagent E(审计部署)
│
▼
汇总 5 份审计报告
│
▼
fix-batch-workflow → 批量修复 → 子代理验证 → 合入
典型子代理树(7/11 审计轮次)
主会话 "审计-2"(~300 msgs)
├── subagent "Type A — 服务端审计-2"(141 msgs)
├── subagent "Type B — 数据层审计-2"(116 msgs)
├── subagent "Type C — UI 审计-2"(180 msgs)
├── subagent "Type D — 教师端审计-2"(153 msgs)
└── subagent "Type E — 部署审计-2"(150 msgs)
↓
主会话 "修复-B组"(893 msgs)
├── subagent 1(修复一部分)
├── subagent 2(修复另一部分)
└── subagent 3(验证改动)
子代理的优势:
- 隔离:每个子代理有独立的上下文,不会被其他任务的细节污染
- 并行:5 个审计同时进行,总耗时 ≈ 最慢的那个
- 专注:子代理只读指定文件/路径,不会被工具返回的大段输出撑爆上下文
最长会话 Top 10
| 排名 | 消息数 | 会话主题 | 日期 |
|---|---|---|---|
| 1 | 1,097 | 落地Phase1后半部分 | 7/10 |
| 2 | 1,045 | 落地Phase2前半 | 7/10 |
| 3 | 955 | 内测准备工作 | 7/16 |
| 4 | 954 | 配图渲染排查 | 7/15 |
| 5 | 937 | 落地Phase3c+ | 7/11 |
| 6 | 901 | manual-audit-recorder(完整UAT) | 7/13 |
| 7 | 893 | 新审计发现问题修复-A组 | 7/11 |
| 8 | 892 | 界面友好性 | 7/15 |
| 9 | 866 | 落地教师端 | 7/11 |
| 10 | 844 | 落地Phase2后半 | 7/10 |
超过 500 条消息的会话有 40+ 个。最长会话(1,097 条)是 Phase 1 后半段的服务端全量编码。
工具使用概况
62,338 次 tool call 涵盖以下类别:
| 工具类别 | 用途 | 使用频率 |
|---|---|---|
| write_file / patch | 写代码、修改文件 | ⭐⭐⭐⭐⭐ |
| read_file | 读取代码/文档 | ⭐⭐⭐⭐⭐ |
| terminal | 运行命令、启动服务 | ⭐⭐⭐⭐ |
| search_files | 搜索代码、查找文件 | ⭐⭐⭐⭐ |
| delegate_task | 派生子代理 | ⭐⭐⭐(v2 后期大量使用) |
| mcp__winnav__* | 桌面自动化走查 | ⭐⭐(7/12 之后) |
| web_search | 查文档/API/问题 | ⭐⭐ |
| memory / skill_manage | 记录偏好、管理 Skill | ⭐⭐ |
| todo / context_usage | 任务管理 | ⭐ |
对话主题分类
173 个有标题的 TUI 会话按主题分类:
| 类别 | 数量 | 说明 |
|---|---|---|
| 排查/诊断 | ~45 | “解题页面排查”、“同步系统排查” |
| 修复/bug fix | ~30 | “积分系统修复”、“硬编码问题修复” |
| 落地实施 | ~20 | “落地Phase3a~3b”、“落地教师端” |
| 审计/走查 | ~25 | “Type A—服务端审计-1/2/3”、“三次走查” |
| 工具构建 | ~15 | “winnav工具封装”、“走查流程设计” |
| 功能开发 | ~15 | “解题地图页面”、“pdf生成修复” |
| 设计/文档 | ~10 | “教师端设计”、“编写细化文档” |
| 其他 | ~13 | “iOS内测发布”、“编译发布alpha1” |
与 Git 仓库的对应关系
| Git 仓库 | 会话数 | 总消息数 | 时间段 |
|---|---|---|---|
zhangyuzhixue_app_v2 |
44 | 15,398 | 7/4~7/16 |
math_platform |
1 | 220 | 6/28 |
| 无 git_repo_root 但有匹配 cwd | 218 | 64,488 | 7/3~7/17 |
大部分 v2 会话没有设置
git_repo_root,但cwd指向了项目目录。 加上 cwd 匹配后,v2 的实际项目会话约为 262 个(44 + 218)。
数据可靠性说明
state.db 的 token 计数是增量口径(每次 API 的新增 tokens),不是 DeepSeek 的累积计费口径。差距原因是每次 API 请求都会重发完整的系统提示词 + 工具定义 + 累积对话历史。14.08B / 80,968 ≈ 174K tokens/请求,即每次 API 调用平均携带约 174K 的上下文。
因此两个口径各有用途:
- state.db 口径(增量): 反映你产出的内容量(135 MB 文本 / ~104M tokens)
- DeepSeek 口径(累积): 反映真实成本(14.08B / ¥554.80)
附录:一分钟读懂你的 ¥554 花在哪
你每次说一句话,Hermes 做的是:
1. 把整个对话历史(越来越长)打包
2. 加上系统提示词 + 工具定义(~30K tokens)
3. 发给 DeepSeek
4. DeepSeek 的回复写完新代码,工具去执行
5. 工具返回的结果(文件内容、终端输出、编译日志)又加进来
6. 下一轮再从头开始...
所以:
你的话 → 触发对话 → 每次带历史重发 → 累积成 14B tokens
¥0.09 驱动流程 ¥554 花在这里 ¥554.80