executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
manage-token-budget监控、上限控制并从智能体系统的上下文积累中恢复。涵盖每次循环的成本追踪、 上下文窗口审计、带执行策略的预算上限、接近限制时的紧急修剪,以及集成 渐进式披露以最小化路由时的 token 消耗。适用于运行长时间智能体循环 (心跳、轮询、自主工作流)、上下文窗口在循环间不可预测地增长、API 成本超出预期基线、设计需要从一开始就有成本护栏的新智能体工作流, 或成本事件发生后的事后分析时。
Independent GitHub snapshot · Automated classification · Original documentation governs
通过追踪每次循环的 token 使用量、审计上下文空间消耗、执行预算上限、在压力下修剪低价值上下文,以及在加载完整流程之前通过元数据路由,来控制智能体系统的成本和上下文占用。核心原则:上下文窗口中的每个 token 都应该赚得它的位置。为决策提供信息的 token 留下;占用空间但不影响输出的 token 被修剪。
社区案例:一个 37 小时的自主会话花费 13.74 美元,原因是 30 分钟的心跳间隔加上冗长的系统指令和不受控制的上下文积累。修复方案是将心跳改写为 4 小时间隔,切换到仅通知模式,并从循环中消除订阅浏览。此技能固化了防止此类事件的模式。
在每个执行边界记录 token 使用情况的智能体循环工具。
对于每次循环(心跳、轮询、任务执行),捕获:
将这些存储在结构化日志中(JSON lines、CSV 或数据库)——而非上下文窗口本身:
{"cycle": 47, "ts": "2026-03-12T14:30:00Z", "trigger": "heartbeat",
"input_tokens": 18420, "output_tokens": 2105, "cost_usd": 0.0891,
"cumulative_cost_usd": 3.42}
若系统没有工具,从 API 计费估算:
预期结果: 显示每次循环 token 数量和成本的日志,足够细粒度以识别哪些循环昂贵及原因。日志本身位于上下文窗口之外。
失败处理: 若无法获得精确 token 数量(某些 API 不返回使用元数据),使用计费仪表板推导平均值。即使是粗略追踪(每日成本 / 每日循环次数)也能揭示趋势。若完全无法追踪,进入第 2 步从上下文审计入手——你可以从上下文大小估算成本。
测量上下文窗口中消耗了什么,并按大小排名消耗者。
将上下文分解为其组成部分并测量每个:
生成上下文预算表:
Context Budget Audit:
+------------------------+--------+------+-----------------------------------+
| Component | Tokens | % | Notes |
+------------------------+--------+------+-----------------------------------+
| System prompt | 4,200 | 21% | Includes CLAUDE.md chain |
| Memory (auto-loaded) | 3,800 | 19% | MEMORY.md + 4 topic files |
| Tool schemas | 2,600 | 13% | 3 MCP servers, 47 tools |
| Active skill procedure | 1,900 | 9% | Full SKILL.md loaded |
| Conversation history | 5,100 | 25% | 12 prior turns |
| Current cycle content | 2,400 | 12% | Tool outputs from this cycle |
+------------------------+--------+------+-----------------------------------+
| TOTAL | 20,000 | 100% | Model limit: 200,000 |
| Remaining headroom |180,000 | | |
+------------------------+--------+------+-----------------------------------+
标记相对于其决策价值不成比例大的组件。当前任务从未引用的 4,000 token 记忆文件是纯开销。
预期结果: 排名表格,显示每个上下文消耗者、其大小和占窗口的百分比。至少一个组件将作为减少候选脱颖而出——最常见的是对话历史或冗长的工具输出。
失败处理: 若无法获得每个组件的精确 token 数量,使用字符数 / 4 作为英文文本的粗略近似。对于结构化数据(JSON、YAML),使用字符数 / 3。目标是相对排名,而非精确测量。
定义硬限制和软限制,并指定达到每个限制时会发生什么。
软限制(警告阈值):通常为硬限制的 60-75%。触发时:
硬限制(停止阈值):绝对最大支出或上下文大小。触发时:
每次循环上限:任何单次循环的最大 token 或成本。防止单个失控循环消耗整个预算:
在工作流配置中记录上限:
token_budget:
soft_limit_usd: 5.00 # warn and begin pruning
hard_limit_usd: 10.00 # halt and alert
per_cycle_cap_usd: 0.50 # max per individual cycle
soft_limit_pct: 70 # % of context window triggering pruning
hard_limit_pct: 90 # % of context window triggering halt
enforcement: strict # strict = halt on hard limit; advisory = log only
alert_channel: notification # how to notify the operator
预期结果: 在三个级别(软限制、硬限制、每次循环)有记录的预算上限,每个都有明确的执行操作。策略回答"达到限制时会发生什么?"在达到限制之前。
失败处理: 若设置精确美元限制为时过早(成本状况未知的新工作流),先仅设置上下文百分比限制(软限制 70%,硬限制 90%),在 24-48 小时的成本追踪数据后添加美元限制。在校准期间,建议模式(记录但不停止)是可接受的。
接近限制时,系统性地丢弃低价值上下文以保持在预算内。
修剪优先顺序(先丢弃最低价值的):
对每个修剪的项目,保留一行墓碑:
[PRUNED: 2,400 tokens of npm audit output from cycle 12 — 3 vulnerabilities found, all patched]
墓碑花费约 20 个 token,但保留了与决策相关的结论。
预期结果: 修剪后上下文窗口使用量降至软限制以下。每个修剪的项目都有保留其结论的墓碑。没有关键决策信息丢失——只有已做决策背后的证据。
失败处理: 若修剪到第 4 优先级后使用量仍超过软限制,工作流从根本上对当前循环频率来说上下文太重。向人工操作员升级:"在修剪后上下文使用量为 N%。选项:(a) 增加循环间隔,(b) 减少每次循环范围,(c) 拆分为子工作流,(d) 接受更高成本。"
在加载完整技能流程之前通过注册表元数据路由——在路由上花费 token,而非在阅读上。
该模式:
_registry.yml 读取技能的注册表条目(id、描述、领域、复杂度、标签)——大约 3-5 行,约 50 个 token对其他大型上下文有效载荷应用相同模式:
不使用渐进式披露:
加载 5 个候选技能 → 5 × 1,500 tokens = 7,500 tokens → 使用 1 个技能
使用渐进式披露:
通过 5 个注册表条目路由 → 5 × 50 tokens = 250 tokens
加载 1 个匹配技能 → 1 × 1,500 tokens = 1,500 tokens
总计:1,750 tokens(减少 77%)
预期结果: 技能加载遵循两阶段模式:通过元数据进行轻量级路由,然后仅在确认匹配后完整加载。相同模式应用于记忆、工具模式和文件内容(在适用时)。
失败处理: 若注册表元数据不足以路由(描述太模糊,标签缺失),改进注册表条目而非放弃渐进式披露。修复方案是更好的元数据,而非更多的上下文加载。
根据成本数据设置执行间隔,而非任意计划。
计算当前循环间隔的每小时成本:
cost_per_hour = avg_cost_per_cycle × cycles_per_hour与预算对比:
hours_until_hard_limit = (hard_limit - cumulative_cost) / cost_per_hour确定最小有效间隔:
应用间隔:
之前:30 分钟心跳,冗长处理
→ 每天 48 次循环 × $0.09/循环 = 每天 $4.32
之后:4 小时心跳,仅通知
→ 每天 6 次循环 × $0.04/循环 = 每天 $0.24
→ 减少 94% 成本
预期结果: 循环间隔由成本数据证明合理,并与被监控系统的刷新速率匹配。间隔-成本权衡已记录,以便未来调整有基准。
失败处理: 若系统需要低延迟响应且无法承受更长间隔,改为降低每次循环成本(更小的系统提示、更少的工具模式加载、摘要历史)。预算方程有两个杠杆:频率和每次循环成本。
确认所有控制都在工作,系统在预算内运行。
Budget Validation Report:
+-----------------------+----------+--------+
| Check | Expected | Actual |
+-----------------------+----------+--------+
| Per-cycle logging | Present | |
| Soft limit warning | Fires | |
| Hard limit halt | Halts | |
| Per-cycle cap | Truncates| |
| Progressive disclosure| Routes | |
| Daily cost projection | < $X.XX | |
+-----------------------+----------+--------+
预期结果: 五个控制(追踪、软限制、硬限制、每次循环上限、渐进式披露)全部验证工作正常。成本预测在预期预算内。
失败处理: 若控制未触发,检查执行机制是否接入了实际执行循环,而非只是记录在文档中。没有执行的配置只是计划,不是控制。若成本预测超出预算,返回第 6 步调整循环间隔或每次循环成本。
assess-context — 评估推理上下文的结构健康;补充第 2 步中的上下文窗口审计metal — 从代码库提取概念本质;渐进式披露模式适用于 metal 的探勘阶段chrysopoeia — 价值提取和死重量消除;在代码层面应用相同的每 token 价值思考manage-memory — 组织和修剪持久化记忆文件;直接减少上下文预算的记忆组件