【免费下载链接】asm
The universal skill manager for AI coding agents.
asm(agent-skill-manager)是面向 AI 编码代理的通用技能管理器,它的一条核心命令asm stats --tokens能帮你在几秒钟内算清:你安装的所有技能,每条消息都在悄悄消耗多少上下文 token。下面用一个「注意力预算报告」把这笔账算明白,并告诉你如何把高成本技能降级回收。
为什么技能会"烧掉"你的上下文
磁盘很便宜,上下文不便宜。问题出在技能的工作机制上:
- Resident(常驻成本):每个已安装技能的 frontmatter
description都会写进代理的系统提示词,每条消息都要支付,不管这个技能是否真的被触发。 - 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 --jsonasm 的降级阶梯(详见 residency.ts):
| 层级 | asm 机制 | 常驻成本 |
|---|---|---|
| 已安装(自动触发) | provider 目录 /asm activate | description 常驻 |
| 已保存(不触发) | asm install --library、asm deactivate | 激活前为 0 |
| 已禁用(保留磁盘) | asm disable(asm enable可恢复) | 0 |
| 仅引用(用时再读) | asm get <skill> | 0,不保留任何副本 |
特别注意asm get <skill>:它只把技能正文打印到标准输出,不安装、不留常驻——"只为读一次"的技能没必要让它常驻。
小结:三步找回注意力预算
- 算账:
asm stats --tokens看清每个工具、每个技能的 resident / body 成本; - 锁定:从 "Heaviest resident descriptions" 挑出长期不触发却占着位置的描述;
- 降级:按
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.
相关推荐
AI智能体Token成本失控?loop-engineering的loop-cost预算估算与kill switch防烧钱机制详解
AI智能体Token成本失控?loop engineering的loop cost预算估算与kill switch防烧钱机制详解 运行AI智能体(Agent)循
人工智能AI AgentAgent 工作流Agent 编排代码智能体AI 技能MCP 服务CLIapfel --count-tokens 实战解析:零推理 Token 预算预检,守住 4096 Token 上下文窗口
apfel count tokens 实战解析:零推理 Token 预算预检,守住 4096 Token 上下文窗口 apfel 是运行在 Mac 上、基于 A
gsd-core 上下文预算管理:MCP 工具 Schema 的每轮 Token 成本与审计实践
gsd core 上下文预算管理:MCP 工具 Schema 的每轮 Token 成本与审计实践 本篇聚焦 gsd core(Git. Ship. Done C
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考