<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>上下文压缩 on 老朱的赛博工位</title><link>https://blog.zjkun.top/tags/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%8E%8B%E7%BC%A9/</link><description>Recent content in 上下文压缩 on 老朱的赛博工位</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 22 Oct 2026 00:55:00 +0800</lastBuildDate><atom:link href="https://blog.zjkun.top/tags/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%8E%8B%E7%BC%A9/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenClaw 定时任务与 Token 降本：关掉 heartbeat 后我省了一半</title><link>https://blog.zjkun.top/posts/openclaw-6-cron-cost/</link><pubDate>Thu, 22 Oct 2026 00:55:00 +0800</pubDate><guid>https://blog.zjkun.top/posts/openclaw-6-cron-cost/</guid><description>OpenClaw 怎么用好定时任务又不被 Token 账单反噬？我的真实方案：heartbeat 禁用换 cron 维护班、零模型外挂压缩、上下文膨胀连锁报错的修复，外加连续三班调度器漂移的排查记录。账本数字全公开。</description><content:encoded><![CDATA[<p>AI 助理很爽，账单很实在。这篇记录我 9 月底一轮&quot;降本改造&quot;的完整手法和数字，以及围绕定时任务踩过的坑。</p>
<h2 id="降本先算账钱烧在哪">降本先算账：钱烧在哪</h2>
<p>OpenClaw 的 token 消耗三大头：<strong>每次会话注入的上下文、对话历史随轮次膨胀、自动唤醒的后台模型调用</strong>。对应的三个手术，全在我机器上真实动过刀：</p>
<p><strong>手术一：注入文件瘦身。</strong> AGENTS/TOOLS/MEMORY 这些每次会话都背着跑。9/25 把 12.6KB 的 TOOLS.md 执行细节迁进专项档案后压到 3.7KB，开机注入总量从 ~42KB 降到 ~20KB，<strong>直接 -52%</strong>。手法就一句：常驻留指针，细节按需 read。</p>
<p><strong>手术二：heartbeat 永久禁用。</strong> OpenClaw 有心跳机制（默认每 30 分钟唤醒 agent 跑一轮 HEARTBEAT.md 清单）。听着贴心，账上不划算：一天 48 次后台模型调用，还跑在<strong>带全部历史的主会话</strong>里。我把 <code>heartbeat.every</code> 设 0m 关掉，职能拆给两个便宜替代：</p>
<ul>
<li><strong>cron 维护班</strong>：每天 23:56 提炼 daily 日志进 MEMORY.md、检查失败任务、标超期待办——设成<strong>静默模式</strong>（delivery none），干完不发消息，专治深夜打扰；</li>
<li><strong>空闲压缩外挂</strong>：<code>scripts/idle_compact.js</code> 挂 Windows 计划任务，规则：空闲 ≥30 分钟<strong>且</strong> transcript &gt;40KB 才压缩，否则直接 SKIP。<strong>纯脚本零模型调用</strong>，把&quot;定时唤醒模型&quot;的钱省成 0。</li>
</ul>
<p><strong>手术三：压缩参数收紧。</strong> compaction 的 <code>maxActiveTranscriptBytes</code> 从 600KB 降到 300KB，加 midTurnPrecheck、压缩后截断，<code>thinkingDefault=off</code>。</p>
<h2 id="不压缩的下场924-连锁报错">不压缩的下场：9/24 连锁报错</h2>
<p>降本前我也付过学费。一个老会话涨到 <strong>305 条消息</strong>后，自动压缩恢复不了当轮，每一轮都重报同一条 &ldquo;Auto-compaction could not recover this turn&rdquo;——我微信里看到的就是&quot;一直循环报错&quot;。修复：<code>agents.defaults.compaction</code> 加 <code>reserveTokensFloor=50000</code>，<code>openclaw config validate</code> 通过，旧会话 <code>/new</code> 开新线。教训：<strong>长会话主动压缩（<code>/compact</code> 或外挂脚本），别等它自己崩</strong>。</p>
<h2 id="cron-任务设计三条经验">cron 任务设计三条经验</h2>
<p>现在跑着的：QQ 邮箱检查（08:50/18:10，结果推微信）、每日记忆整理（23:56 静默）。外加三个停用岗位。设计里学到的：</p>
<ol>
<li><strong>cron 表达式表达不了&quot;8:50 和 18:10 两个时刻&quot;</strong>（分钟位相同才行），我拆成两个独立任务；</li>
<li><strong>Windows 语法陷阱</strong>：给任务的 prompt 里带了 <code>&amp;&amp;</code>/<code>2&gt;nul</code>/<code>type</code> 这些 cmd 语法，PowerShell 直接炸——给 AI 的指令也要按执行环境的方言写；</li>
<li><strong>推送失败有窗口期</strong>：微信主动消息需要近期互动窗口，晨检类任务要设计失败暂存、互动后补发。</li>
</ol>
<h2 id="最玄学的坑调度器漂移">最玄学的坑：调度器漂移</h2>
<p>维护班连续多班不准点，排查记录值得单独一段：10/19-10/21 连续三班没在 23:56 触发、改成早上 08:40 补跑，漂移模式是 <strong>lastRun + 24h</strong>；另一头 QQ 邮箱晨检还整 25 天在 <code>cron list</code> 里不可见。根因指向：<strong>夜间机器休眠/网关未运行</strong>（合盖不休眠设置见安装篇）、以及 <strong>10/16 网关重启直接打断过正在跑的 job</strong>（报 error）。后来复查 job 又全见、推送恢复——大概率某次网关状态问题，自愈。</p>
<p>结论不漂亮但真实：<strong>定时任务的可靠性上限，是你那台机器和网关进程的存活状态</strong>。Windows 常驻笔记本跑调度，电源设置和重启时机是要认真管的事。</p>
<h2 id="一份ai-药方的打假记录">一份&quot;AI 药方&quot;的打假记录</h2>
<p>最后讲个有趣的。为降本我拿过一份别的 AI 给的&quot;修正版配置清单&quot;，逐条对官方 docs 核完：<strong>一半是编的</strong>——<code>.env</code> 里四个&quot;环境变量&quot;全文档搜不到，推荐替换的模型名不存在，还让我开启一个早已内置的&quot;工具结果自动丢弃&quot;（OpenClaw 的 compaction 本来就有这机制）。照单执行就是在给配置埋雷。<strong>AI 给的配置建议，一律先对本机 docs 再上线</strong>，这句我写进了工作守则。</p>
<hr>
<p><strong>「OpenClaw 实战」系列</strong>（随我用随更）：① <a href="/posts/openclaw-1-install-windows/">Windows 安装上线篇</a> · ② <a href="/posts/openclaw-2-architecture/">架构扫盲</a> · ③ <a href="/posts/openclaw-3-console-tips/">控制台与日常使用</a> · ④ <a href="/posts/openclaw-4-model-provider/">模型接入</a> · ⑤ <a href="/posts/openclaw-5-memory-system/">记忆系统</a> · ⑥ <a href="/posts/openclaw-6-cron-cost/">定时任务与降本</a> · ⑦ <a href="/posts/openclaw-7-plugins-deps/">增加依赖</a></p>
]]></content:encoded></item></channel></rss>