七十亿 token 的
全程拆解。
一个业务意图、七个月、十一种会记录用量的 agent harness——外加一个在三个方向上同时出错的已发表数字。
写给每一个想用 AI 做业务的人。这是一个真实案例的完整解剖:同一个操作者、同一个业余无线电业务生态、七个月(2026-03 → 2026-09,另有一段 2025-10 → 2026-04 的对照期)、七个代码仓库、十一种会记录用量的 agent harness、十几种模型。全文只讲一条主线:业务意图怎样一步步变成交付物,中间「来回」了多少次、为什么越来越顺,以及支撑这个故事的每个数字到底能证明什么。每个数字都注明来源和截止时间,事实和推断分开标注;完整的台账和测量边界收在分册里,本文只负责讲故事。这套讲故事的规矩,两千年前就有名字:《汉书·河间献王传》称河间献王「修学好古,实事求是」——从事实出发,求得真相。这本账就照这四个字记。
本文要回答的五个问题
- 事实一本账会不会同时虚高又虚低?
- 事实账上的读数是资产吗?
- 事实效率曲线是真的吗?
- 推断模型和方法,各决定什么?
- 论点该先问哪个问题?
会倒退的账本
在谈方法之前,先讲一条花钱买来的测量教训。
2026-09-05,本站发布了一份 token 台账:7,007,437,567 个已记录 token。一周后把同一个测量重跑一遍,结果是 7,404,583,808,多了 397,146,241。有意思的不是涨了多少,而是旧数字在三个方向上同时出错。
| 方向 | 发生了什么 | 证据 |
|---|---|---|
| 虚高 | claude-code 的日志会给同一个 API 响应的每个分块各写一条 usage 记录,逐行相加就把总量放大了约 2.7 倍。按 message.id 去重后只剩 818,520,401,整本账随之变成 5,695,506,675。 | 6,600 个不同的 API 响应 |
| 虚低 | Hermes 之前被写成「未记录」。其实它记得好好的:sessions 表里躺着 485,213,348 个 token。上次检查查的是 messages.token_count,那一列全是 0。 | 292 个会话,2026-05-15 → 07-24 |
| 漂移 | claude-code 在 2026-09-07T13:13:57Z 删掉了自己的早期日志,同一个 harness 因此比一周前少记 679,899,086 个 token。紧接着,同一个脚本隔十二分钟再跑,又差出 51,427,037,因为做这次测量的会话本身,也在往被测的日志里写东西。 | 观测者效应,复现两次 |
反向校验同样重要。codex 从八月下旬就停用了,它的数字两次测量逐位一致:547,796,667,而且是用两条不同的代码路径算出来的。稳定的读数和不稳定的读数都是信息,但只有稳定的那个才配叫「总量」。
本页所有数字都是 2026-09-12T02:40:59Z 这一刻的快照,覆盖十一种 harness。每个 harness 的完整数字、各自的测量窗口,以及「什么能比、什么不能比」的规则,都在分册《账本与测量边界》里。已记录的账和估算的账不合并:iFlow 那约 2.47 亿 token 是按字符数估出来的(它的用量字段全是零),不计入本页任何合计。
《史记·太史公自序》引《易》:「失之豪厘,差以千里。」——今天更通行的说法是「失之毫厘,谬以千里」:源头错一丝,传到合计就错出千里。一次双算、一处漏记、一回观测者漂移,落到总数上就是几亿的出入。所以证据要快照,不能靠累计;一个没有截止时间的数字不是测量结果,只是带小数点的传言。
意图从不以「AI」开头
这个生态里的每个产品,都起于一句用业务语言说的话,把「AI」这个词拿掉,它依然成立。
四个业务意图,没有一个提到 AI
AI 是后来才被请来做执行的手段,从来不是目的。
MRRC · 2026-03-06 · ba66892
火腿需要一个通用的远程台站界面:在浏览器里操控任何支持 Hamlib 的电台,不用为每部电台重写一遍控制逻辑。省事。
SunMRRC / SunsdrMobile · 2026-06-21 · 38cb85e
SunSDR2 DX 用户需要绕开桌面软件,直接拿到同步控制、频谱、音频,以及确定无疑的发射安全。安全。
MRRC FT-710 · 2026-07-06 · 9403e2e
那台 FT-710 桌上就插着一根 USB 线,就用这根线顶替 SCU-LAN10 配件做远程操控(事后证明:线里的 FT4222 桥给出了约 21 fps 的真实频谱、48 kHz 双向 Opus 音频和完整的 CAT 控制)。省钱。
MRRC-FT8 · 2026-08-03
FT8 不是发一条 CAT 命令那么简单,它是一整套工作流:15 秒周期同步、解码选择、QSO 状态机、受控的发射时序。省时。
第一条规律:如果业务诉求离开 AI 就不成立,那它不是业务诉求,是技术 demo。
六个月,知识没有载体
模型并不弱,弱的是知识没有载体。
2025-10-20 至 2026-04-16,同一个人用 iFlow 开了 185 个会话、打了 37,202 轮对话,换了 6 个模型后端(qwen3-coder-plus、glm-5,单周就有 10,420 轮,kimi-k2.5、minimax-m2.5)。产出是真的:MRRC 的前身就诞生在这里。但没有一样东西留得下来。
37,202 轮对话,用量字段全是零,工程产物一样没留下:没有契约、没有文档体系、没有任何把关。会话一结束,这一轮学到的东西就跟着消失了。
这就是卷三所有机制要解决的问题。
从「来来回回」到「一次做对」
「越来越顺」只是感觉,量化出来才算证据。三个指标,全部能从 git 历史和本机日志复核。
每交付一个提交,人要介入多少轮对话
「越来越顺」量化之后长什么样。
| 项目 | 探索期 | 顺畅期 | 变化 |
|---|---|---|---|
| ft8 | W31:17.1 轮/提交(7 个提交烧 120 轮 + 5.3 亿 tokens) | W32–34:0.3–0.7 轮/提交 | 约 30 倍 |
| ft710 | W29–30:4.6–4.9 轮/提交 | W33–34:0.7 轮/提交 | 约 6 倍 |
| website | W34:1.6 轮/提交 | W35–36:0.4 轮/提交 | 约 4 倍 |
| mrrc_modern | — | 上周:0.73 轮/提交(41 个提交,30 轮人类输入) | 守住 |
| MRRC | — | 上周:6.00 轮/提交(2 个提交,12 轮人类输入) | 反转 |
三条独立的曲线同向下降,ft8 那条读作 17.1 → 0.3 轮/提交,而且低数值在 mrrc_modern 上守住了第四周。后期 <1 的含义是:人只说一句话需求,agent 自己跑完多个提交,人只出意图和裁决。MRRC 上一周展示了同一条规律的另一面:两个方向未定就落地的提交,每个花了 6.00 轮。
tokens / 提交
它是不确定性的仪表,不是生产力的奖杯。
| 项目 | 探索期 | 维护期 | 差距 |
|---|---|---|---|
| ft710 | 15.2 M/提交(W30) | 0.95 M/提交(W34) | 16 倍 |
| ft8 | 75.5 M/提交(W31) | 0.9 M/提交(W36) | 84 倍 |
| sunsdr | 1.9 M/提交(W25) | 0.4 M/提交(W27) | 5 倍 |
| mrrc_modern | — | 上周:5.95 M/提交(244,037,840 / 41 个提交) | 回升 |
| MRRC | — | 上周:47.07 M/提交(94,144,081 / 2 个提交) | 回升 |
高成本周 = 方向未定的探索;低成本周 = 模式成型后的交付。上周不是例外,恰恰是证明:mrrc_modern 的单位成本从 0.95 M 回升到 5.95 M,正是因为它五天接了四个新功能版本;MRRC 那两个用来定方向的提交,每个花掉 47.07 M。token 的峰值永远落在不确定性最高的地方,它是不确定性的仪表,不是生产力的奖杯。
不是单调下降,而是「弧形」
返工集中在探索和整合周,维护周只有个位数。
ft710 的 fix 提交占比,从开坑周的 36% 降到维护周的 6–12%;ft8 从 29% 降到 17%,而且是在提交量最大的两周(147 / 82 个提交)做到的。异常点同样有记录:ft710 在 W32 出现过 1 个提交烧掉 4.1 亿 tokens 的探索尖峰(2026-09-06 分析文档)。
反面证据同样真实,而且就发生在这一周。MRRC 在大整合周(W32,7.98 亿 tokens)fix 占比 50%;modern 在大重构周(W35)31%;sunsdr 早期攻坚周 51%。上一周 mrrc_modern 落了 41 个提交,其中 17 个是 fix,fix 占比 41%,是重构周以来的最高值。新需求永远带来新返工,区别在于返工由谁来做:人只介入了 0.73 轮/提交,也就是说,这些返工几乎全是 agent 自己完成的。
工作流的成型
契约测试先红,agent 交付到绿。
发布还在加速:这一周 mrrc_modern 从 v1.14.0 一路发到 v1.14.3,五天四个版本,连版本自己的 changelog 都在发布当天做了更正。更早的时候:modern 13 天 6 版(一天 3 版);ft8 诞生周 3 天 3 版;MRRC 曾两天发 9 版。
website 仓从 2026-W35 起出现稳定的「契约测试先红、功能提交转绿」节奏:5 对 test→feat,转绿中位 19 分钟。本系列文章也是用这套流程写出来的。
先写契约、AI 交付到绿,这是后期才长出来的制度化能力,也是「顺」在组织层面的样子。
harness 与 SDD 在各阶段的作用
方法是怎么长出来的,git 时间线里精确可查;它最硬的证据,是一条从现场事故出发的链。
方法的长成
从文档时代到契约时代:知识不用人去记,它会在该出现的时候自己出现。
| 日期 | 事件 | 意义 |
|---|---|---|
| 2026-05-02 / 05-10 | MRRC 引入 SDD(规格驱动开发)框架(58aa675);随后写下 FDE(前沿部署工程)实践指导书(88f519f) | 文档时代——知识有了载体,但会过期,也可能根本没人看 |
| 2026-07-06 | ft710 起步即重写 SDD(87297d1) | 契约先行 |
| 2026-07-20 | sdd-guardian 诞生(2498ec2):机器可读的约束清单 + 运行时把关——会话开始时注入约束(SessionStart → prime),编辑落盘前拦截(PreToolUse → hook) | 契约时代——知识不用人去记 |
| 2026-08-02 | ft8 第一个实质提交(d4a7a32)一次性带入全套 AGENTS.md + 15 章 SDD + guardian + 契约测试 | 方法成熟到可以整包继承,新项目第一天就有把关 |
| 2026-08-26 | modern 的约束清单扩到 21 条(2bc3d30) | 至 2026-09-12,三仓合计 52 条机器可读约束(ft710 17 / modern 21 / ft8 14),每条带严重级别、作用范围、匹配模式和出处引用 |
| 2026-09-05 → 09-12 | 约束条数没有变化 | 一次诚实的走平。一整周高强度交付,没有新增一条约束,要么把关守住了,要么有一类事故漏登记了。两种读法都成立,这本账目前还区分不开。 |
这套机制的分工是:外层 harness 定义业务/技术/产品约束(为什么做、边界在哪、什么证据能改变结论);内环 Specify → Implement → Test → Review → Observe → Update SDD 整个交给 agent;持续演进的 SDD 让设计意图往下流、现场证据往上回流,生命周期状态显式标注,不自动晋级。
方法有效性的最硬证据
52 条约束,没有一条是事先拍脑袋设计的,全都能追溯到具体事故。
FT-710 频率漂移 · 13 天闭环
DN; 不是 DNR 查询,而是 VFO 步进命令;每 2 秒轮询一次,实机频率每次就漂约 20 Hz,现场事故(07-07 修复 72fd6f0)→ 设计裁决 AD-014 写入 SDD(07-08 bb128ff)→ 机器可读约束 cat-no-dn(07-20 2498ec2)→ 编辑前拦截,可复现(退出码 2)。
部署备份打满磁盘 · 7 天闭环
08-29 服务器 /var/tmp 涨到 100%(单份备份约 300 MB)→ 09-05 四个仓库同日配套修复,还顺藤摸出「portal 备份从未生效」这个隐藏缺陷(远程 heredoc 没加引号,067f565)→ 规则升级为四条部署铁律。
$ python3 .agents/skills/sdd-guardian/harness/sdd_context.py check probe_b4_tmp.py
SDD-GUARDIAN: blocking violations found:
[BLOCK] cat-no-dn (AD-014; SDD V1.2 freq-drift incident) probe_b4_tmp.py:2: return c.query("DN;")
$ echo $?
2事故转化率——从发生事故到永久免疫的时间——才是组织学习能力的真正度量。本生态跑在 13 天和 7 天。清单停止增长不自动等于好消息:它本身是个问题,答案要看下次事故发生时有没有新增条目。
两本永不相交的账
2026-09-12 普查当天实跑的结果,不是引用旧记录。
FT-710:439 passed。mrrc_modern:724 passed,比一周前的 682 多。ft8:935 passed, 1 skipped, 1 xfailed——之前发表的是「937 collected」,而 collected ≠ passed,措辞必须跟着证据改。另外:三个产品仓库都已迁到各自的虚拟环境(Python 3.13),再拿系统 Python 3.9 跑测试,会在收集阶段因为 X | None 注解直接报错。这是环境限制,不是产品缺陷——这种边界要写下来,而不是悄悄丢掉。
A 账 · 产品成熟度
- 设计目标
- 仿真
- 自动化测试
- 台架验证
- 现场验证
- 发布运营
- 已知缺陷(诚实的一级)
B 账 · 过程证据
- 清单里有条目
- 有规格 / 计划轨迹
- 会话中强制执行
- 拦截经过复现验证
两本账不相交:B 账再漂亮,也不为 A 账背书。开放边界如实保留:FT710Mobile 有一个未解决的 P0 PTT 安全问题;EFHW 调谐器在 PCB 打样和台架验证之前,状态声明停在设计目标。
可以委托「做」,不能委托「算不算」。责任不能委托。
模型不是长期变量
七个月、六个时代,还有让整个问题变小的一周。年鉴另立分册。
主力在一周之内换了
本机日志实测,不是厂商宣传稿。
2026-09-05,这个生态的 claude-code 工作负载由一个性价比档模型主导。七天后,同一个 harness 已经换了主力:qwen3.8-max-0902 达到 3,883 次调用;上一任主力还在日志里,但已经不再驱动工作。pi 那一侧,一个上次普查里根本没出现的模型——glm-5.3-flash——已经跑到 745 次,还多出一个视觉变体。
此前的「flash 霸权」内部一直在轮换挑战者,而且轮换没有停,还在加速。模型市场每三到四周换一轮血。任何把模型名写死的方法,都是在买入一项会折旧的资产;真正耐久的部分是选型机制,不是某一次选择。
实测的分工依旧成立:旗舰模型买方向,性价比模型买执行,长上下文变体买专项,harness 买工作方式。逐时代的完整记录、任务 × 模型 × harness 匹配表、公开评测(独立测评和厂商口径分层存放),以及路由标签的陷阱,都在分册《模型 × harness 年鉴》里。
效率究竟从哪里来
两个变量在七个月里同时在变,这里是把它们分开的证据。
模型变强,还是方法变厚?
四条证据,把这两个变量分开。
1 · 同一模型,有无方法,差一个量级
flash 在 W32 探索 ft8 是 75.5 M/提交,同一模型在维护期是 0.9 M/提交。模型没变,变的是契约厚度。
2 · 模型不弱的时代,方法缺位照样归零
iFlow 期的 glm-5 单周 10,420 轮产出,但 37,202 轮零沉淀——方法缺位时,模型强弱无关紧要。
3 · 方法成型的时刻精确可见
契约包 07-20 在 ft710 长成,08-02 由 ft8 整包继承,ft8 的介入轮次从 17.1 直降到 0.3。
4 · 模型升级改变的是「可委托半径」
单轮对话能可靠交付的任务粒度,从「改这个函数」长到「按这份规格交付功能并通过契约测试」。模型决定什么可以委托;方法决定委托出去的能不能收回来。
孔子说:「知之为知之,不知为不知,是知也。」(《论语·为政》)归因比例没法从这份数据里精确分出来,那就明说分不出来;但方向是明确的:模型能力决定上限,工程方法决定你实际吃到上限的多大比例。两个变量里,只有一个在你自己手里。
双轨建议
工程能力轨在你手里,模型能力轨是市场给的;复利在前者。
工程能力轨(你能控制的,复利在这边):
先快照,再引用
任何你打算据此行动的数字,都要带截止时间和写明的窗口。本文的账盖的是
2026-09-12T02:40:59Z这个时间戳,每个 harness 还带自己的窗口——因为其中一个会删掉自己的历史。先写验收条件,再写第一行代码
「算不算完成」的标准先于实现,这是「来来回回」的第一大杀手。
让约束机器可读、写前拦截
修复只是第一环,裁决 → 约束 → 把关才算闭环(本生态:13 天 / 7 天)。
先红后绿
契约测试先行、agent 交付到绿,本生态中位闭环 19 分钟;清单走平这件事是有人盯着的,不是想当然的。
模型能力轨(市场给的,策略是不锁定):
按任务选档,不按信仰选型
开荒/攻坚用旗舰,日常用性价比档,长上下文用专项变体;实测里没有任何模型在所有任务上占优,而这周主力刚换过人。
每 3–4 周重新评估一次模型市场
本文的时间线里,主力换了六代;选型机制(快速试用 + 按周复盘)比任何一次选型都重要。
警惕模型名
路由标签不等于模型实体,官方宣称不等于独立测评;你自己的日志(什么任务、多少 token、几次来回、结果如何)是唯一不会骗你的评测。
把这七条建议变成「周一上班就能照抄」的东西——三类清单、三个模板,还有一份全部来自真实事故的失败模式库——都在分册《实践手册》里。
先问判断沉淀在哪里
七个月的教训,收进一句话。
先问「我的判断沉淀在哪里」,再问「AI 能帮我做什么」。
没有载体的 AI 使用是消费——37,202 轮对话可以什么都不留下;有载体的使用是资产积累——每次事故、每条约束、每份规格,都在为下一次委托降低成本。记账也是同一个道理:做过快照、标了时间的数字是资产;凭记忆引用的数字是天气。模型每个季度换一代,契约每天都在变厚。前者是天气,后者是气候。你真正能建设的,是气候。开篇借的那四个字,到这里可以还上了:实事求是——先快照,标时间,两本账分开记,未知就写未知。
把判断从执行中分离
提炼层。四个维度解释台账里发生的一切——也适用于任何业务,与无线电无关。
四个维度,四条纪律
提炼层:合上台账之后,这个案例到底说明了什么。
智能体工程不是「用 AI 写代码」,而是把判断从执行里分离出来:判断沉淀为契约,执行委托给 agent,证据决定契约的存亡。这一句话就能解释,为什么同一个操作者在对照期只留下蒸发掉的聊天记录,在测量期却留下七个仓库和 52 条机器可读约束——差别从来不在模型,在于判断有没有一个比对话长寿的载体。
一 · 工程史:抽象阶梯的又一次上移
机器码 → 汇编 → 高级语言 → 框架 → 云:每一代工具都把一层「怎么做」委托给机器。智能体工程把「实现」整层委托出去,人只剩三件事:定义意图、划定边界、行使裁决。工作量随之转移——12 份设计规格 + 10 份实施计划写在代码之前;ft8 的第一个实质提交,在任何业务代码之前就带进了 AGENTS.md、15 章 SDD 和契约测试。定义先于实现。
二 · 认识论:载体决定知识的寿命
聊天记录随会话蒸发;文档会过期、会没人看;机器可读约束 + 运行时把关不用人去记——它会在该出现的时候自己出现。52 条约束是 52 次判断的永生:换了六种 harness,一条没丢,因为载体在仓库里,与工具无关。事故转化率是组织学习能力的真正度量:本生态 13 天、7 天。
三 · 经济学:token 是不确定性的价格,缓存读取是租金
token 消耗跟着不确定性密度走,不跟代码行数走,峰值永远落在方向未定的地方。在三个有完整分列的 harness 里,缓存读取占全部已记录 token 的 93.7%——这是为「上下文还没切成机器可用的片段」长期支付的租金。降低消耗的办法不是少用 AI,而是降低不确定性本身,并让必须重读的上下文变短。
四 · 责任:两本账,三件不可委托的事
产品成熟度和过程证据是两本永不互证的账:普查当天 439 个全过的 FT-710 测试,关不掉客户端一个还开着的 P0 PTT 安全问题。三件事永远不可委托:硬件打样与台架调试、实台 RF 安全、「证据是否充分」的裁决。不是因为 AI 不够强,而是责任不能委托。
1 · 定义先于实现——验收条件、非目标、边界,都写在第一行业务代码之前;意图用业务语言表达,去掉「AI」依然成立。2 · 事故必须变成规则——修复只是第一环,裁决 → 约束 → 写前拦截才算闭环。3 · 盯着不确定性花钱——token 峰值是方向雷达;重要数字双源对账,并且先快照、标时间。4 · 两本账分开记——过程徽章永远不能给产品声明升级;「做」可以委托,「算不算」永远在你手里。
本页之外的三册
这篇讲的是因果链。查询型内容挪到了隔壁,每一册都可以单独引用。
账本与测量边界
十一种 harness 的完整普查,每个都带测量窗口;双口径说明、日志保留与观测者效应的实证,以及什么能比、什么不能比的规则。如果只想核对一个数字,从这里开始。
模型 × harness 年鉴
六个模型时代、任务 × 模型 × harness 匹配表、独立测评与厂商口径分层存放的公开评测,以及路由标签的陷阱。
实践手册
四条纪律展开为三类清单、三个可复制模板,以及一份失败模式库——每一条都能追溯到本生态里的一次真实事故。
相关页面:智能体工程;工程机制。产品族:MRRC、MRRC Modern、MRRC-FT8、SunMRRC、MRRC-FT8、EFHW。