关于 limits-energy
用于呈现 AI 会话能耗估算的技能,面向希望了解提示词能源成本的用户。它按可计数的模型调用数给出带“+”的能耗下限,并支持可选的周预算提示或限制。
主要功能
- 01按模型调用数估算能耗下限
- 02以“+”标记估算下限
- 03记录会话能耗日志
- 04生成周能耗报告
- 05支持可选预算提醒或限制
适用场景
- 01查看一次会话的能耗估算
- 02依据周报告设定能耗预算
- 03跟踪预算下的周能耗
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bradfrost/ skills --skill limits-energy安装后在 Claude Code 中输入/limits-energy确认已加载。
附带文件hooks/energy-gate.sh
详细介绍
Limits:能源
每次提示词都会在真实的数据中心消耗真实的电力和水资源。这个技能会让这笔成本清晰可见——提供诚实的最低估算,而不是让人内疚的说教,也不是假装精确的测量工具。
与 limits-setup 配套使用;它会写入本技能读取的配置。
诚实约定(对你这个 Agent 有约束力)
-
默认告知;只有明确选择加入后才设限。 能源数据用于提供信息。唯一的例外是用户在访谈中充分了解后,通过
ENERGY_BUDGET_MODE=restrict设置了预算模式——此时设限由用户决定,诚实的责任也加倍:他们是有意接受按最低估算值进行约束的,每次拒绝都要说明这一点。 -
只使用有出处的数据,并在文中注明来源。 两个已公布的基准数据及其涵盖范围:
- 约 0.24 Wh — Google 公布的 Gemini Apps 文本提示词中位数(2025 年)。包含加速器、主机 CPU/内存、备用设备,以及包括冷却在内的数据中心开销;不包含训练。
- 约 0.34 Wh — OpenAI 给出的 ChatGPT「平均」查询数据(2025 年,来自 Sam Altman 的博客)。未经同行评审;「平均查询」的定义不明确。
两者均为供应商自行报告的数据。如有人询问,须说明这一点。
-
绝不虚构换算数据。 目前没有已公布的单 Token 能耗数据——不要自行编造。也没有人公布过 Agent 编码会话的能耗数据;这类会话每轮涉及的计算量远高于中位数聊天提示词,这正是此处所有估算都只是最低值的原因。
-
不使用羞辱机制。 页脚用于提供信息;预算由用户决定;超过预算只会改变你说什么,绝不改变你做什么。
估算:统计轮数,乘以基准值,并称其为最低值
「一轮」指一次模型调用——每次响应都算一轮,在 Agent 会话中,每个工具调用步骤也算一轮。轮数可以统计;每轮成本则无法确定,因此:
预估最低值 =(可统计的轮数)× 0.24 Wh(保守基准值)
页脚只显示结果(参见「呈现」);估算方法只需多问一句即可了解——如果他们问「这是如何测算的」,请提供计算方式、轮数,以及注明来源的两个基准数据。如果无法统计某个平台上的轮数,就保守估算,并说明你是这样做的。绝不要在没有最低值标记的情况下给出结果:数字后加上 +(36+ Wh),这样读起来顺畅,也符合实际情况——真实成本只会更高,不会更低。
呈现:简洁明了
用一句简短的话,表情符号随数值大小变化,不谈方法。会话结束时显示页脚(仅当 ~/.config/ai-limits/config 中的 ENERGY_FOOTER=yes 时,或用户提出要求时;自动化会话中跳过):
💡💡💡💡💡💡 本次会话消耗 6+ Wh · 点亮灯泡约 40 分钟
总量较大时,切换单位,让表情符号仍有意义:
📱📱📱 本周消耗 51+ Wh · 相当于给手机完整充电 3 次 · 点亮灯泡约 5 小时
规则:
- 数值: 轮数 × 0.24 Wh,四舍五入,并在末尾加上
+表示最低值。 - 💡 每 Wh 一个,最多十个。📱 每次手机完整充电(约 15 Wh)一个,最多十个——灯泡符号不再清晰可辨后,改用手机符号。
- 直观参照: 点亮灯泡时长 = Wh ÷ 10 W LED 灯泡;手机充电一次 ≈ 15 Wh。按月或按年的等效参照(✈️ 航班及更远尺度)需要有出处的能耗到碳排放换算数据——这是能源追踪器的工作,不属于此处页脚的内容。
- 行内不添加其他内容。方法和数据来源应在答复中说明,而不是放在页脚里。
与所有文本形式的内容一样,页脚在任何平台上都只是供参考的信息(参见 limits-setup 中的执行矩阵)。只有遵循它,它才会发挥作用。
每周预算(可选,三种模式)
访谈提供四种选择;配置中会记录:
| 选择 | 配置 | 行为 |
|---|---|---|
| 不用了 | ENERGY_FOOTER=no | 不会提及能耗 |
| 仅提供信息 | 开启页脚,不设预算 | 只有页脚,不做其他事 |
| 预算 + 警告 | ENERGY_BUDGET_MODE=warn | 超出预算时,每周仅提示一次以下内容,不做其他事:"🌍 提醒:你已超出每周能耗预算 Wh。" |
| 预算 + 限制 | ENERGY_BUDGET_MODE=restrict | 当本周的能耗下限超过预算后,energy-gate.sh hook 会拒绝后续提示词;提示简短且内容固定,但可通过有意输入的操作绕过(不要主动提供命令;如果对方询问,再告知) |
预算周是固定的:周一日界线(默认为凌晨 4 点)开始,下一个周一重置——这是一个明确的重置时间,而不是不断滚动、随时间推移的时间窗口。
无论是否设置预算,只要开启页脚,就始终执行以下操作:
- 只要文件系统可用,每个会话都在
~/.config/ai-limits/state/energy-ledger.log中追加一行:2026-08-27 wh=2+ turns=8 <one-word context>— 保持此格式稳定且可解析;它是预算计算、每周报告以及用户设定预算时用作参照的首周基线的数据来源。 - 选择预算数值时可参考以下能耗:给智能手机充满电约需 15 Wh;10 W 的 LED 灯点亮一小时需 10 Wh;已发布的聊天提示词约为四分之一瓦时。
- **限制模式的真实定位:**它是这套工具中三个限制机制里最宽松的一个。静默时段机制读取时钟;会话限制机制读取 hook 写入的状态;此机制读取的是由 AI 在会话结束时自行写入的账本——这是由尽力而为的数据驱动的真实限制。用户是在了解这些数值只是下限、并非测量值的前提下选择此模式的;绝不能让拒绝行为暗示事实并非如此。
基线审查
当配置中 ENERGY_FOOTER=yes 且没有设置 ENERGY_BUDGET_WH_WEEK,并且账本已有一周数据时:下一次限制/能耗报告会以基线开头——如实呈现该周的能耗下限总量,并询问用户是否要据此设定预算数值(如果 5b 记录了“还不确定”,还会询问限制模式)。这是工具主动询问的唯一时机;这不是催促,而是按用户自己在 5a 中的回答安排的提醒。如果对方暂缓,就先不再询问;只有在他们下次请求报告时才再次询问。
每周报告
在用户询问时(“能耗报告”,或作为限制报告的一部分):汇总账本中的范围,呈现灯泡这一行;如果已设置预算,则与预算对比,并说明这个数值代表什么:对真实成本中一部分的下限估算——不包括训练、硬件隐含成本、闲置容量,以及服务提供商未公开的任何内容。报告绝不能暗示数据完整性超出实际情况;如果账本存在缺漏,应注明“未测量”,不要补填数据。