news 2026/10/23 4:16:07

上下文在烧钱?用asm stats --tokens算清每个技能的token成本,找回AI代理注意力预算

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上下文在烧钱?用asm stats --tokens算清每个技能的token成本,找回AI代理注意力预算

【免费下载链接】asm

The universal skill manager for AI coding agents.

项目地址:https://gitcode.com/gh_mirrors/asm17/asm
点击查看免费下载

asm(agent-skill-manager)是面向 AI 编码代理的通用技能管理器,它的一条核心命令asm stats --tokens能帮你在几秒钟内算清:你安装的所有技能,每条消息都在悄悄消耗多少上下文 token。下面用一个「注意力预算报告」把这笔账算明白,并告诉你如何把高成本技能降级回收。

为什么技能会"烧掉"你的上下文

磁盘很便宜,上下文不便宜。问题出在技能的工作机制上:

  • Resident(常驻成本):每个已安装技能的 frontmatterdescription都会写进代理的系统提示词,每条消息都要支付,不管这个技能是否真的被触发。
  • Bodies(正文成本):完整的SKILL.md正文只在技能真正触发时才进入上下文。

两个数字量级可能相差 10 倍以上。把两者混为一谈,要么高估了"常开"预算,要么低估了触发成本。asm stats --tokens正是把这两个数字分开报账的工具,且所有 token 数都是估算值,输出时统一带~前缀提示"近似"。

估算逻辑很轻量:词数 + 空格数(见 token-count.ts),不依赖任何模型分词器,追求的是"安装前对上下文成本有个大致感知",而不是精确到某次调用。

最快上手:一条命令出预算报告

先安装 asm(npm 全局安装):

npm install -g agent-skill-manager

然后运行:

asm stats --tokens # resident vs body tokens,按工具和作用域分列 asm stats --tokens --json # 同一份数据给脚本和代理消费

报告完全基于本地文件系统计算,无网络请求、无账号、无遥测。

读懂"注意力预算"输出

一条命令,你会看到这样一份报告(示意):

Attention Budget ---------------------------------------- Resident = frontmatter descriptions, paid on every message. Bodies = full SKILL.md, paid only when a skill fires. Tool Skills Resident Bodies Claude Code 74 ~5k tokens ~281k tokens Codex 10 ~736 tokens ~76k tokens --------------------------------------------- Total 84 ~5.7k tokens ~357k tokens By Scope global 71 ~4.9k tokens ~300k tokens project 13 ~836 tokens ~57k tokens Heaviest resident descriptions claude-api ~1.2k tokens (claude, global) docx ~233 tokens (claude, global) ... Median resident cost: ~48 tokens Run asm audit residency for demotion advice

关注四个部分:

区块含义怎么用
按工具分列每个 provider 各占多少 resident / body找出"吃"上下文最多的工具
Total全部技能的常开成本合计你的真实"每消息固定开销"
Heaviest resident最贵的 10 条常驻 description直接锁定降级目标
Median中位数常驻成本判断整体水位是否健康

完整示例输出见 README.md 的 Attention budget 一节。

把预算接进脚本:--json 与 --machine

预算报告支持结构化输出,方便写进 CI 或代理流程:

  • asm stats --tokens --json:输出原始预算数据(含每个技能的residentTokens/bodyTokens),例如用-s global只看全局技能。
  • asm stats --tokens --machine:稳定的 v1 machine 信封格式,适合自动化消费。

一个实用套路:定期跑--json,当totalResidentTokens超过你的阈值(比如模型上下文窗口的 5%)时发出告警。

找到"不挣回成本"的技能并降级

报告最后会提示你运行asm audit residency——它把没有挣回常驻上下文的技能排个序,并为每个候选附上一条可直接执行的降级命令,只报告、不代劳:

asm audit residency asm audit residency --json

asm 的降级阶梯(详见 residency.ts):

层级asm 机制常驻成本
已安装(自动触发)provider 目录 /asm activatedescription 常驻
已保存(不触发)asm install --library、asm deactivate激活前为 0
已禁用(保留磁盘)asm disable(asm enable可恢复)0
仅引用(用时再读)asm get <skill>0,不保留任何副本

特别注意asm get <skill>:它只把技能正文打印到标准输出,不安装、不留常驻——"只为读一次"的技能没必要让它常驻。

小结:三步找回注意力预算

  1. 算账:asm stats --tokens看清每个工具、每个技能的 resident / body 成本;
  2. 锁定:从 "Heaviest resident descriptions" 挑出长期不触发却占着位置的描述;
  3. 降级:按asm audit residency的建议执行asm disable/asm deactivate/asm get,随时可逆。

实现细节可参考 stats-tokens.ts(预算计算与渲染)与 stats.ts(命令入口),两者共用同一套 token 定义,保证stats与audit residency两张报表口径一致。

【免费下载链接】asm

The universal skill manager for AI coding agents.

项目地址:https://gitcode.com/gh_mirrors/asm17/asm
点击查看免费下载
上一篇:10倍提升输入体验:AutoHotkey键盘响应速度优化指南
下一篇:generator-electron 快速入门教程:从零开始构建你的第一个桌面应用

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 4:12:20

JDK11 Windows64免安装版环境配置与多版本共存实践

简介&#xff1a;JDK11 Windows 64位压缩免安装包面向需要在Windows环境下快速搭建Java开发或运行环境的开发者&#xff0c;尤其适合个人学习、多版本JDK并存以及缺少系统安装权限的场景。压缩包共423个文件&#xff0c;约171.44MB&#xff0c;包含dll动态库、jmod模块、exe可执…

作者头像 李华
网站建设 2026/10/23 4:11:28

第二章 潜在应用场景拓展:大模型渗透万物的未来图景

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 4:07:57

AI之Books:《语言之舞:大语言模型应用实战全书》新书预告—我用68万字熬出38万字,只为让你少走弯路——<语言之舞>上市小作文

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华