
loop-engineering 循环预算跟踪实战用 loop-budget.md 把 Token 消耗装进笼子【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址: https://gitcode.com/gh_mirrors/lo/loop-engineering本篇指南围绕仓库中的示例文档 stories/loop-budget-example.md 展开系统讲解 AI 编码循环Loop的 Token 预算治理从搭建loop-budget.md日额度表、按周期记录每次运行的消耗与告警到通过loop-budgetskill 的 80%/90%/100% 阈值自动降频、触发 Kill Switch再到 L3 无人值守场景下由budget-negotiatorskill 向人类申请额度。读完你将掌握一套可直接落地的预算跟踪与自节流工作流并理解其背后的源码级机制。为什么循环需要预算跟踪这张表Loop 工程的核心是让 Agent 按调度反复运行Triage、实现、验证、汇报。每一次运行都在消耗 Token而高频率循环如 5 分钟一跑的 PR Babysitter、15 分钟一跑的 CI Sweeper在无人值守时会线性放大成本。仓库在 docs/operating-loops.md 中给出了一组量级参考Cadence 是线性乘数5 分钟 vs 1 天 每天 288 次运行每次子 Agent 都是完整的模型 工具往返大仓库上下文 完整 CI 日志会让单次 Triage 变得昂贵。因此预算跟踪不是记账而是运行控制系统它决定一个循环今天还能跑几次、还能花多少 Token、还能不能派生子 Agent。示例文档stories/loop-budget-example.md就是一张周度预算运行报表展示了这一系统的落地形态。第一步搭好预算文件骨架示例文档的开头明确说明它遵循 templates/loop-budget.md.template 生成。该模板定义了预算文件的三个核心区块是一切跟踪的起点1. 日额度表Daily limits| Loop | Max runs/day | Max tokens/day | Max sub-agent spawns/run | |------|--------------|----------------|--------------------------| | Daily Triage | 2 | 100k | 0 (L1) / 2 (L2) | | PR Babysitter | 288 | 2M | 3 | | CI Sweeper | 96 | 1M | 3 | | Dependency Sweeper | 4 | 500k | 3 | | Post-Merge Cleanup | 1 | 200k | 2 |三个维度各有意义Max runs/day把调度频率换算成配额上限防止高频循环失控Max tokens/day当日总预算是 80%/90%/100% 阈值判断的直接依据Max sub-agent spawns/run单次运行派生子 Agent 的上限loop-budgetskill 会在每次运行前读取并绝不超限执行。2. 超支预案On budget exceed1. Pause all schedulers (scheduler_delete or disable automations) 2. Append event to loop-run-log.md 3. Notify human (Slack / issue / STATE.md High Priority)这是预算触顶后的标准操作顺序先停调度器止血再写运行日志留痕最后升级到人类。3. Kill Switch应急熔断- Command or issue label: loop-pause-all - Resume only after human clears the flag in STATE.mdKill Switch 是独立于预算阈值的最高优先级信号只要loop-pause-all被设置所有循环在下次运行开始时直接退出且只能由人类在 templates/STATE.md.template 中清除标记后恢复。这与 docs/safety.md 中人类关卡Human Gates一节的立场一致——Agent 永远不能自我解除熔断。仓库自用的 loop-budget.mdDogfood 文件就是这套模板的实盘版本其中还额外加入了Estimate spend区块npx cobusgreyling/loop-cost --pattern daily-triage --level L1第二步写一份周期预算运行报表示例文档的主体是一张**当前周期示例周**的运行统计表这是预算跟踪的核心输出物LoopRunsTokens (est.)Sub-agents spawnedBudget UsedDaily Triage5212k0 (L1)21% of daily capChangelog Drafter371k214% of daily capPost-Merge Cleanup241k320% of daily cap逐列解读其背后的数据链路Runs / Tokens (est.)来自每次运行追加到loop-run-log.md的 JSON 记录。示例中 Daily Triage 单次约 42k Token212k ÷ 5与 docs/operating-loops.md 中每次轻量 Triage 约 50k Token的估算量级吻合Sub-agents spawned记录子 Agent 派生情况0 (L1) 表示该循环当前处于 L1 报告模式不派生执行者Budget Used占日额度百分比是用掉了每日上限的百分之多少的快照直接喂给loop-budgetskill 的阈值判断。报表下方紧跟四个固定区块构成完整的跟踪闭环Alerts This Period周期告警2026-06-08: Daily Triage hit 85% of token budget for the day → cadence automatically slowed to 2h for the rest of the window (via scheduler adjustment in the loop prompt).这条告警展示了**自动降频self-throttle**的实盘形态当日额度用到 85%介于 80% 与 90% 之间时循环在自身提示词里把调度周期从默认节奏降为 2 小时一跑从而把剩余窗口的消耗压下来。注意它不是等 100% 才动手——预算治理要在触顶前留出缓冲。Kill Switch Usage熔断记录None this period.显式记录本周期未触发熔断让审计者一眼确认安全状态而不是靠猜。Recommendations建议Increase Daily Triage token cap slightly if L2 assisted fixes are enabled (more verifier work).Changelog Drafter is extremely cheap relative to value — consider running it more frequently during release weeks.Keep Post-Merge off-peak only.预算报表的价值在下一步动作当 L2 辅助修复开启后验证器Verifier工作增多会推高单次成本因此建议微调额度当某个循环极便宜但价值高Changelog Drafter 单次仅约 24k Token则建议在发布周提高频率低价值循环Post-Merge Cleanup则建议只在非峰值时段运行。更新纪律示例文档末尾给出了最重要的运维约定Update this file (or a living version in your project root) whenever you adjust budgets in LOOP.md or the scheduler. The loop itself can append a line when it self-throttles.即改预算 改文件。任何对 LOOP.md 或调度器的额度调整都要同步回这张表且循环在自我降频时也要主动追加一行到 Alerts 区块——这正是loop-budgetskill 规则中On self-throttle, append a line to loop-budget.md under Alerts This Period的出处。第三步让 skill 在每个循环的起止点执行预算门控报表是结果门控才是机制。预算的实时执行由 skills/loop-budget/SKILL.md 承载它在每一次循环迭代的开始和结束都会运行。运行开始预算检查与分级响应1. 读取 loop-budget.md 获取每日上限与 kill-switch 标记 2. 读取 loop-run-log.md 最近 24h 的记录 3. 汇总当前 pattern 今日的 tokens_estimate 累计值 4. 若支出 ≥ 80% 日额度 → 进入 report-only 模式不派生子 Agent、不自动修复 5. 若支出 ≥ 90% 且 STATE.md 中仍有 High Priority 事项 → 让位给 budget-negotiator skill若已安装否则若支出 ≥ 100% 或设置了 loop-pause-all → 立即退出并在 STATE.md 写一行说明 6. 若 watchlist/state 无待办事项 → 在 5k Token 内退出不派生子 Agent这套阈值阶梯是整个预算体系的心脏值得逐级拆解阈值行为目的≥ 80%降为 report-only禁子 Agent、禁自动修复提前刹车保住修复弹药留给真正高优先级的事≥ 90% 有 High Priority移交budget-negotiator谈判不沉默失败而是带着 ROI 证据申请额度≥ 90% 无 High Priority走标准退出序列低价值工作不值得花额度≥ 100% 或loop-pause-all立即退出硬性熔断绝不透支最后一条空清单早退exit in 5k tokens尤其重要高频率循环CI Sweeper、PR Babysitter在无事可做时必须立即早退这是它们能维持高频而不烧穿预算的前提也是 docs/operating-loops.md 中Empty watchlist → exit in 5k tokens最佳实践的 skill 级落地。运行结束结构化写日志每次运行结束时skill 强制向loop-run-log.md追加一条 JSON{ run_id: ISO8601, pattern: pattern-id, duration_s: number, items_found: number, actions_taken: number, escalations: number, tokens_estimate: number, outcome: no-op | report-only | fix-proposed | escalated }字段定义见 templates/loop-run-log.md.templatetokens_estimate是预算汇总的唯一数据源outcome枚举no-op/report-only/fix-proposed/escalated让周报可以按结果分类统计模板还要求修剪 30 天前的旧条目防止日志无限膨胀。仓库自身的 loop-run-log.md 就是真实样本——Daily Triage 每天追加一条记录包含readiness_score、workflow_run等附加字段其中 2026-08-31 起连续多天出现escalations上升、outcome: escalated的记录正是预算内无法完成、持续升级到人类的实盘写照也验证了这套日志格式可以支撑周期报表的自动生成。第四步用 loop-cost 在调度前估算预算预算文件里的数字不是拍脑袋定的。仓库提供了loop-cost工具源码见 tools/loop-cost/src/cli.ts在调度之前先估算单次运行的成本npx cobusgreyling/loop-cost --pattern daily-triage --level L1 npx cobusgreyling/loop-cost --pattern ci-sweeper --cadence 15m --level L2 npx cobusgreyling/loop-cost --pattern ci-sweeper --level L2 --orchestration maker-checkerCLI 参数参数说明-p, --pattern id模式 ID默认daily-triage-c, --cadence spec覆盖调度周期如15m、1d、5m-15m-l, --level L1\|L2\|L3就绪级别默认L1估算的底层数据来自机器可读的模式注册表 patterns/registry.yaml每个模式都带一组cost字段字段含义示例daily-triagetokens_noop空跑无事可做时的 Token5000tokens_report仅报告模式的 Token50000tokens_action执行修复动作的 Token200000suggested_daily_cap建议的每日上限100000early_exit_required是否强制要求空清单早退false这些数值解释了示例报表里的量级Daily Triage 一次report-only运行约 42k~52k Token正好落在tokens_report区间而suggested_daily_cap: 100000意味着报表中21% of daily cap的算法是21200 ÷ 100000级别的量。预算表里的Max tokens/day建议直接取自或对齐这些建议值再按项目实际计划调整docs/operating-loops.md 也提供了手工估算公式轻量 Triage 约 50k、带 implementer verifier 约 200k。第五步超支后的高级路径——budget-negotiator 谈判协议当循环已经 ≥90% 支出、但 STATE.md 里还压着 High Priority 事项时标准行为是退出并等人类处理。但 L3 无人值守循环装了 skills/budget-negotiator/SKILL.md 后会走一条更高级的路径不是沉默失败而是基于 ROI 起草预算扩容申请。谈判协议的四步算 ROI读loop-run-log.md汇总今日actions_taken、outcome成功数与tokens_estimate读STATE.md评估剩余待办严重性起草理由若剩余是 High PriorityCI 红了、P0 缺陷、安全漏洞写明当前支出 vs 限额、今日已完成动作数与成功结果、剩余关键问题、以及对loop-budget.md具体字段的精确申请如 Requesting 50k tokens for the Validate/Audit (CI) max tokens/day升级给人类把请求追加到STATE.md的 High Priority 区并打上[BUDGET NEGOTIATION]标签然后置为WAITING_FOR_BUDGET状态安全挂起恢复后续运行读到loop-budget.md确认人类已调高额度才能继续派生子 Agent。示例申请格式[BUDGET NEGOTIATION] I have burned 95k/100k tokens for the Daily Triage loop today. However, I have successfully executed 4 actions with a fix-proposed outcome. There is 1 critical CI failure remaining on the main branch. I request a temporary bump of Daily Triage max tokens/day by 50k to resolve it.这套协议有几条硬性护栏全部与 docs/safety.md 的人类关卡原则一致只在小范围开口单次最多申请20% 或 50k Token每天最多谈判一次绝不自我加码Agent 严格禁止自行调高loop-budget.md中的额度必须由人类显式编辑尊重拒绝若人类删掉[BUDGET NEGOTIATION]标签而未调额循环退回 report-only且当天不再追问优先级仅当loop-budget将硬退出≥90%且存在 High Priority 剩余时才激活否则走标准退出。从源码结构看budget-negotiator的模板文件 templates/SKILL.md.budget-negotiator 被明确要求与 skills 源文件保持字节级一致说明谈判协议与模板是同一套治理体系的互为镜像。Kill Switch 与安全护栏预算的底线设计预算治理的底线是人说了算。仓库在 docs/safety.md 中明确预算扩容是人类关卡L3 循环通过budget-negotiator申请额外额度时Agent 不能自加额度人类必须显式批准并编辑loop-budget.mdKill Switch 是最高优先级loop-pause-all标签或命令一旦存在一切循环让路熔断恢复纪律只有人类在STATE.md清除标记后才恢复运行。示例文档中Kill Switch Usage: None this period之所以值得记录正是因为 Kill Switch 与预算阈值构成双保险阈值管慢慢花熔断管立刻停。何时该降频、暂停甚至杀掉一个循环预算报表不仅是周报还是运维决策的输入。结合 docs/operating-loops.md当报表出现以下信号时应采取行动该降频Slow DownToken 预算周中已用 80%Triage 误报率 30%同一事项 48 小时内升级 ≥2 次大版本发布周——暂停自动修复循环降为 report-only。该暂停Pause生产事故进行中循环可能与热修复抢资源破坏性 Schema 迁移进行中关键审查人 OOO 且开着 auto-merge。该杀掉Kill连续出现 docs/failure-modes.md 中的 S2 失败连续两周成本 价值团队静默了所有通知该模式已被事件驱动方案如纯 CI Action取代。Kill 检查清单scheduler_delete/ 停用 Automation / 移除 Action → 归档状态文件并标注status: retired→ 可选地在stories/写复盘。小结从一张表到一套治理体系回到起点——stories/loop-budget-example.md看起来只是一张周报但把它放回仓库的完整链路里它其实是三层治理的交汇点静态配额层loop-budget.md模板见 templates/loop-budget.md.template定义日额度、超支预案与 Kill Switch动态执行层skills/loop-budget/SKILL.md 在每次运行起止点执行 80%/90%/100% 阈值门控与空清单早退结束点写结构化日志到loop-run-log.md升级兜底层L3 场景下 skills/budget-negotiator/SKILL.md 负责带着 ROI 证据向人类谈判Kill Switch 则提供最终熔断。配套的 tools/loop-cost 在调度前估算成本patterns/registry.yaml 提供tokens_noop/tokens_report/tokens_action/suggested_daily_cap等机器可读的成本基准docs/operating-loops.md 与 docs/safety.md 则给出降频/暂停/熔断的运维纪律。把预算跟踪当成运行控制系统来设计循环才能在跑得勤和花得少之间取得平衡——而这张周报就是让这一切可见、可审计、可复盘的那块仪表盘。【免费下载链接】loop-engineeringPractical patterns, starters CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.项目地址: https://gitcode.com/gh_mirrors/lo/loop-engineering创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考