Skip to content

AI Coding Token 效率分析:从大盘指标到自动优化

数据源:阿里云日志服务(SLS)+ AgentLoop 评估与经验挖掘

背景

AI Coding 普及之后,几乎每个团队都经历了同一条曲线:先是敞开供应、人人用爽了,然后账单上来了——近一周,一个部门的 AI Coding 就发起了上百万次 LLM 调用,消耗数千亿 token。额度收紧后,同样的活儿得用更少的 token 干完。

好消息是:这些浪费里,绝大部分不是"用得太多",而是"用得不对"——它们是结构性的、可识别的、可以被自动优化掉的。

本文讲三件事:

  1. 哪些地方在消耗 token
  2. AgentLoop 怎么把这些问题评估出来
  3. 哪些经验可以下沉到 Skill、CLI 和日常评估里

先看账本

近一周样本里,覆盖数百位用户、近三万个 session,总 token 数千亿级。其中 output token 只占总量约 0.35%。换句话说,大部分 token 没花在"模型写代码",而是花在把历史消息、工具结果、日志、错误和中间状态一轮轮带回模型。

还有一个容易误解的指标是 cache。全局 Cache Read 占 input 约 87%,看起来很好,但 cache 高不等于效率高。如果一个 session 每轮都带着几十万 token 的历史,只产出几百 token,cache 只是让这部分历史便宜一点,并没有解决上下文过大的问题。

所以我们不只看总 token,也看这些指标:

指标看什么
output / totaltoken 里有多少变成了实际产出
input 规模每次调用带了多大的上下文
cache_read / input历史上下文是否被复用
context 膨胀率session 内 input 是否越滚越大
Cost/Edit每次有效编辑背后花了多少 token
Observation 大小工具输出有没有变成后续 input 负担
重复调用是否在没有新证据的情况下原样重试

六类明确的浪费

1. 思考税——约 65% 的 token 没花在写代码上

把所有调用按产出大小分桶后,最显眼的是 50-200200-500 两档。这两档通常不是在生成完整代码,而是在做工具选择、短推理、参数组织和下一步决策。

Output 区间调用量级平均 Input总消耗占比投入产出
<50(纯工具路由)数万次~30k~2%极低
50-200(工具+短文)数十万次~150k~37%⚠️ 最大消耗
200-500(中等)数十万次~150k~28%⚠️ 第二大
500-2k(代码片段)十余万次~180k~22%中等
2k+(大段代码)数十万次~350k~11%✅ 产出最多

50-200200-500 合计消耗约 65% token。这里不能简单说"短输出都是浪费",但可以确认一件事:真正写代码并不贵,贵的是中间无数次"决定下一步做什么"——每一次都要把整段历史重新搬一遍。 我们把它叫"思考税"。

2. Session 拉长后,产出密度下降

session 步数和产出密度的关系很直接:

步数区间Session 数产出密度
6-15 步数千个1.14%
16-50 步数千个0.81%
51-200 步数千个0.46%
200+ 步上千个0.24%

6-15 步是比较好的区间。超过 50 步以后,context 膨胀开始明显影响效率;超过 200 步,很多 token 都在携带历史。我们看到过极端 session:近千步,从数万 input 膨胀到数千万 input。

这里不需要一刀切禁止长任务,但应该在 50 步左右提醒:是否需要阶段总结、保存当前结论、拆成新 session 继续。

3. 重复获取已有信息

在"信息复用"评估维度上,约 86% 的被评估用户不达标,平均浪费约 39%——是所有维度里最普遍的短板。在近千个真实会话里,超过半数出现了参数完全相同的重复工具调用。

典型表现:同一文件被反复全文读取(中间根本没改动);同一条命令原样跑好几遍当"思考草稿纸"。每重复一次,整段上下文就被重新计费一次。

4. 无边界大输出

大 Observation 会把一次工具调用的成本传到后面每一轮。A/B 实验里,未注入 guardrails 的 B 组多产生一次超 100 万字符 的大 find 输出;A 组 Observation 字符数少了近一半。

日志查询不加时间窗、Read 不加行号、列表不加 limit——这类"能拉全量就拉全量"的动作,是 context 膨胀最直接的推手。

5. 盲目探索与空转会话

零产出 session 占 12.4%,平均步数超过 110 步;有产出 session 平均约 60 步。很多零产出并不是快速问答,而是 agent 探索很久之后没有落地。另有约 27% 属于"温和膨胀型":步数多、产出密度全场最低,不触发告警却在持续"渐进式空转"——是最隐蔽的浪费。

信号表现
Read/Edit 比率低低效用户 Edit 比率仅 0.8%-1.2%
连续探索大量 Read -> ReadGrep -> Grep 链式调用,各数万次
首轮重复读文件部分用户每个 session 首轮读取超过 10 个文件
超长探索数十个 session 超过 350 步

处理方式不是让 agent "再努力找找",而是接管到固定 workflow:

任务类型更合适的 workflow
代码修改搜索定位 → 局部读取 → 最小编辑 → 最小验证
测试修复失败摘要 → 单测复现 → 单点修复 → 全量验证
日志/指标排障时间窗 → 过滤条件 → 小样本 → 证据字段 → 结论
项目理解先召回 Skill / CLAUDE.md / 项目摘要,再补少量局部读取

6. 不规划导致效率差 3 倍

重度使用规划工具(TodoWrite / memory / Skill)的用户,平均约 0.5M token/次有效修改;几乎不规划的用户约 1.5M——效率差约 3 倍。规划让 agent"先有清单、再动手",少走大量回头路。

AgentLoop 怎么解决

AgentLoop 把"发现浪费 → 归因 → 沉淀正确做法 → 注入运行时"做成了一条自动化流水线,由三个能力组成闭环:

①  指标大盘          ②  LLM-as-Judge 评估        ③  GT-free 经验挖掘 + 运行时注入
(看见浪费在哪)  →   (归因:为什么、谁能改)  →  (把"对的做法"自动变成可注入的经验)
        ↑                                                              │
        └───────────────────  新一周的真实轨迹  ←──────────────────────┘

指标大盘:让浪费可见、可量化

基于 SLS 日志,自动算出每个 Agent、每个模型、每个用户、每个会话的效率画像——思考税占比、cache 命中、上下文膨胀倍数、产出密度、Cost/Edit 等。回答"哪里有浪费、量级多大"。

LLM-as-Judge 评估:把"哪里浪费"升级成"为什么、谁能改"

指标看不到会话内部的因果。AgentLoop 的评估能力用 LLM 当评委,对采样会话逐条、逐维打分:

  • 23 个评估维度,覆盖 Agent 执行、用户交互、平台系统三类责任主体
  • 强制证据:每一个评分都必须回连到轨迹里的具体 tool call / observation / 输出,不许凭空脑补
  • 自动归纳高频反模式,并把优化动作按"该谁改"分好类——用户该补什么、平台该加什么护栏、Agent 该改什么行为

评估结果不是只给一个分数。它要回答:问题主要来自哪里,是信息复用差、输出太大、卡住循环、prompt 模糊,还是任务本身不适合 agent。

GT-free 经验挖掘:自动沉淀正确做法

这是最核心的一环。不需要标准答案、不需要人工标注,只从真实轨迹中自动挖掘高效行为模式:

原始 trace
 → Stage1  可逆事实解析(保留全部证据)
 → Stage2  单条轨迹结构化(规则先行,LLM 补语义)
 → Stage3  跨轨迹聚合(支持度、反例、失败机制)→ 8 类候选经验
 → Stage4  翻译成原子经验 + 严格质量闸门 → 注入运行时

几个关键卖点:

  • GT-free,真正零标注:只拿真实轨迹当证据,不需要标准答案、不需要人工写好的范例
  • 8 类原子经验,按"影响哪个决策点"切分:流程、选工具、工具合约、参数、证据、回答、修复、反模式。颗粒度细,可单独检索、单独组合、单独回测
  • 严格质量闸门:必须可执行、有适用边界、有证据、知道什么时候不能用。泛泛而谈的"建议检查一下"一律拦在门外——往 agent 里塞低质量经验本身就会增加 token
  • 增量可审计:经验池每次变化都有 add/update/delete 记录,不会越跑越乱
  • 越跑越便宜:稳定领域知识沉淀进 Pack,下一轮更多东西用规则就能识别,LLM 调用越来越少

Guardrails A/B 实验

我们做过一次同样本 A/B。A 组读取挖掘出的 engineering-task-execution-guardrails,B 组不读 Skill。两组分析同一个任务、同一份数据。

口径A(用了经验) vs B(没用)节省
raw input + output tokensA 约 97 万 vs B 约 127 万−23.4%
Observation 字符数A 约 120 万 vs B 约 220 万−43.9%

两组都找到了同一个正确答案,综合质量评分打平。差距完全来自行为:B 组甩出了超百万字符的 find 输出;A 组在 Skill 约束下,工具输出明显更收敛。

一句实话:在这个样本上,经验没有让答案更正确(两组都做对了)。它的价值是——用一样好的结论,花明显更少的 token 和工具输出。而这,恰恰就是 token 紧缺时代我们最需要的东西。

部门级 LLM Judge 也给了相近方向:在更大样本里,可避免浪费约 27%。优先动作包括输出截断、高消耗失败熔断、Observation 解读增强、非 LLM 轮询和轻量模型路由建议。

优化手段按责任边界拆分

优化手段最好按责任边界拆开。否则很容易把所有问题都推给"用户要会用",或者都推给"模型要更便宜"。实际情况是,不同浪费源要落到不同层去处理。

层级手段主要处理的问题
系统层大输出硬截断,输出字段化Bash、WebFetch、日志查询返回过大
系统层非 LLM 轮询/等待工具等待和 polling 每次携带完整 context
系统层轻量模型路由建议简单工具选择、空轮询使用重模型
运行时层长度/膨胀/重试告警长 session、编辑重试、单 turn 工具爆炸
运行时层高消耗失败熔断高消耗但持续失败、零产出探索
工具层默认带 limit、时间窗、行范围大 observation、无边界搜索、全量读取
工具层Observation 解读增强把错误、空结果误当事实
经验层注入工程任务执行 Skill搜索读取无边界、验证顺序混乱
经验层active experience recall按任务阶段精准召回,不是全量注入
团队层推广 CLAUDE.md、prompt 模板、轻量规划重复 context building、追问过多
评估层日常 LLM Judge + 指标画像不知道浪费来自哪里

这里有几件事要分清楚:

  1. AgentLoop 不一定直接执行所有优化。比如模型路由、非 LLM 轮询、工具硬截断,往往要平台或 runtime 配合。AgentLoop 更适合先把证据和收益算出来,再把策略交给对应系统落地。
  2. Skill 和 workflow 不是为了让 agent 多做步骤,而是让它少绕路。一个好的 Skill 应该告诉 agent:什么时候查、查到什么就停、失败后只改哪个变量、最后怎么验证。
  3. 优化不能只看 token 是否下降。每次策略上线后,都要同时看成功率、质量分、Observation 大小和最终回答证据链。省 token 但任务失败,不能算有效优化。

落地路径

1. 日常评估

每天或每周抽样真实 session,按 23 维 rubric 看 passrate、浪费机制和高风险 case。同时跟踪 output 分桶、session 步数、Cost/Edit、cache 健康度、大 observation、重复调用等。评估结果按团队、Agent 类型、任务类型分开看。自动化流量和人工使用不要混在一起,否则个人画像会被污染。

2. 运行时提醒

一些规则可以直接前移:

触发条件动作
session 超过 50 步提醒阶段总结或拆分
高消耗且持续失败熔断,总结卡点,请求确认
observation 过大先截断或摘要
同参工具重复调用要求说明新增证据
同文件 edit 过多先做错误归因
单 turn 工具调用过多转批处理或人工确认

3. 经验沉淀

AgentLoop 继续从真实 trace 里挖稳定 workflow。通过 active gate 的经验进入 Skill 或 recall projection;表现好的保留,导致退化的 archive。坚持一个原则:经验要短、要有适用条件、要有停止条件。

4. 反馈到端侧

团队侧看大盘和周报;个人侧最好用 CLI 直接拿到自己的建议。用户看到的不是一堆原始指标,而是类似这样的建议:

  • 最近 7 天有 18% 的 session 超过 50 步,建议复杂任务中做阶段总结
  • 有 6 次大 Observation 来自无边界搜索,建议先 rg 定位再按行号读取
  • 测试失败后出现无修改重复验证,建议先读失败摘要再 patch
  • Cost/Edit 高于团队中位数,主要原因是零产出 session 和重复读取

这样评估结果才会回到日常使用,而不是停在平台报表里。

小结

Token 优化的核心认知:Token 消耗本质上是信息交换的代价。 优化 token 不是"少说话",而是问对的问题、给对的上下文、走对的路径、把走通的路径固化下来不再花 token 重新"发现"。

必要成本包括复杂代码理解、跨文件修改、最终验证。可以下降的成本主要来自工具路由、上下文膨胀、冷启动、大 observation、自动探索、重复读取、盲目重试和过度委派。

AgentLoop 要做的事情也比较明确:把账算清楚,把浪费机制评出来,把稳定 workflow 挖出来,再通过 Skill、CLI 和运行时提醒放回开发者日常流程。先做到这些,再谈更细的模型路由和平台治理,顺序会更稳。


在线体验

前往 Token 效率分析 Playground 查看实时指标大盘、评估器和评估结果洞察。