[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhdvmYaj-kU-AlF79v4Nn6g2tKFBs5R_E_8Y0wmTrrx4":3,"$fW7BAB5BkhrpFei-euf609NeK4ZvjPf9T1fzgXJlLNns":18,"$f7_eY3YNhDDGMJA6WJxkvaVgIkDMtTZfpSB4WuZfGUT4":73,"$fJAngGPN2ZoweBAUNUMveHW9fX-PBt_OThOGUnXXFK7w":99},{"success":4,"data":5},true,{"siteTitle":6,"siteDescription":7,"siteSubtitle":8,"siteFaviconUrl":9,"siteLogoUrl":10,"footerText":11,"footerLinks":12,"socialLinks":13,"postsPerPage":14,"themeName":15,"navColor":16,"navTextColor":17},"Hyaika Blog","A personal blog powered by Hyaika","Penguin is all you need","🐧","\u002Fapi\u002Fmedia\u002Favatar_a0b54615","致三千年前的你",[],[],10,"kratos","#9147eb","#ffffff",{"success":4,"data":19},[20,27,33,39,44,50,55,61,67],{"id":21,"name":22,"slug":23,"description":24,"color":25,"postCount":26},"9ca4490e-c5a6-4b61-945c-4db21d224507","设计","design","UI\u002FUX 设计与创意",null,25,{"id":28,"name":29,"slug":30,"description":31,"color":25,"postCount":32},"a102062c-2d51-415b-bc5c-5b89b36f6e3f","动漫","anime","动漫点评与推荐",11,{"id":34,"name":35,"slug":36,"description":37,"color":25,"postCount":38},"b14ff5c7-a673-4cb1-a9e5-c785069b2938","生活","life","生活随笔与日常分享",43,{"id":40,"name":41,"slug":42,"description":43,"color":25,"postCount":32},"cat_ccf18b24e2c04191","社会观察","social-observation","社会观察、教育、文化对比",{"id":45,"name":46,"slug":47,"description":48,"color":25,"postCount":49},"cat_news_roundup","新闻杂烩","news-roundup","每日新闻汇总，覆盖科技、二次元、游戏、音乐等领域",55,{"id":51,"name":52,"slug":53,"description":25,"color":25,"postCount":54},"cat_science","科学","science",49,{"id":56,"name":57,"slug":58,"description":59,"color":25,"postCount":60},"e6b59e04-130e-4da0-851f-64042040f4f6","技术","tech","技术教程与开发经验",160,{"id":62,"name":63,"slug":64,"description":65,"color":25,"postCount":66},"cat_09e5464f1b304aa8","情感八卦","gossip","情感话题与八卦杂谈",0,{"id":68,"name":69,"slug":70,"description":71,"color":25,"postCount":72},"cat_b22f7ce5ece64985","经济","economy","经济分析与商业观察",18,{"success":4,"data":74},{"id":75,"title":76,"slug":77,"content":78,"summary":79,"coverUrl":80,"readingTime":81,"viewCount":82,"loveCount":66,"publishedAt":83,"createdAt":83,"author":84,"coverSource":87,"showCoverInArticle":4,"categories":88,"tags":90,"commentCount":97,"liked":98},"64ac1368-6f9b-4a35-a42c-90f143ce260b","你的 AI 助手每隔 30 秒「戳」一下服务器——它在付一种你不会想付的税","cache-keepalive-30s-8x-tax","# 你的 AI 助手每隔 30 秒「戳」一下服务器——它在付一种你不会想付的税\n\n## 目录\n\n- **30 秒一次的「心跳」，和 8 倍冤枉钱**\n- **缓存为什么要保活：一次 50 倍的价差**\n- **4 分钟还是 8 分钟：保活间隔是一道算术题**\n- **过了保质期的「戳」会反过来烧钱**\n- **现场验证：这台服务器的保活，用的是 2 小时**\n- **缓存是公共牧场：当所有人都去戳**\n\n## 30 秒一次的「心跳」，和 8 倍冤枉钱\n\n如果你最近在用 AI 编程助手，或者任何一个带 Agent 的工具，大概率见过这个现象：你的助手在等你确认的时候，对话窗口里会隔一会儿就跳一下「思考中」，或者转一下圈——即使你什么都没输入。\n\n那不是它在想你。那是它在**保活**（keepalive）：每隔 30 秒向模型服务商发一个请求，让「提示词缓存」别过期。\n\n这个惯例从哪里来？2024 年 Aider 最早给 AI 编码助手加了这个功能，Anthropic 的文档也推荐这么做，社区文章把「30 秒」写成了共识。但直到今年 7 月，终于有人把四家主流服务商全量测了一遍——结论是：**这个共识贵了 8 倍**。\n\nMaxim Khailo 在他的博客 mempko.com 上发了一篇测量文章（[Your Agentic Workflow's Cache Keepalive Costs 8x Too Much](http:\u002F\u002Fblog.mempko.com\u002Fyour-agentic-workflows-cache-keepalive-costs-8x-too-much-v2-the-interval-frontier\u002F)），说自己搭了一个能自证时钟精度的测试台，把 Anthropic、OpenAI、Gemini、DeepSeek 四家的缓存保留曲线全部量了出来，间隔从 30 秒一直测到 15 分钟。\n\n结论是：30 秒一次的「行情惯例」，在 10 分钟的空档里要发 20 个保活请求；而 4 分钟一次只需要 2.5 个——同样的保温效果，成本是后者的 **7.8 倍**。这不是省一点，是省掉 87%。\n\n## 缓存为什么要保活：一次 50 倍的价差\n\n先解释为什么要保活。模型服务商对输入 Token 收费，但有个折扣：如果一段「前缀」——比如你的系统提示词加之前的对话——在几分钟内被重复提交，服务商就不用重新计算它的注意力权重，可以直接用缓存，只收**缓存读取费**，大约是正常输入价的十分之一。\n\n国内的例子更直观。阮一峰周刊第 408 期引用了 DeepSeek 的官方定价：**缓存命中的输入价格是 2 分钱，未命中是 1 元，整整 50 倍**。命中的费用「实际上是储存空间的费用」——因为命中几乎不消耗算力，服务商赚的是存储费。\n\n但缓存有保质期。以 DeepSeek 为例，规定是 10 分钟；对话间隔超过 10 分钟，缓存被删除，下一轮就得重新计算，收费回到 1 元。所以 Agent 工具的策略是：只要用户还挂着、还没退出，就定时戳一下服务器，把缓存\"续命\"。\n\n这个操作本身不算错。问题出在「戳」的频率上——大家都默认 30 秒，而这个数字从来没人验证过。它只是第一个写进代码的人拍脑袋拍的。\n\n## 4 分钟还是 8 分钟：保活间隔是一道算术题\n\nMempko 的测量把这道题变成了纯算术。四家服务商的缓存保留曲线各有各的死亡时间：\n\n- **Anthropic：5 分钟准时掉崖**。文档写 5 分钟 TTL，实测 5-6 分钟之间归零，「没有宽限期」。\n- **DeepSeek：10 分钟**。到点就没了。\n- **OpenAI：文档说 5-10 分钟，实际能撑到 20 分钟还半热，30 分钟才全冷**。比文档慷慨，但不能靠这个规划。\n- **Gemini：从不真正过期**——命中率在 33% 到 83% 之间乱飘，「那不是保留曲线，是一场路由抽奖」。\n\nMempko 的测量把四家服务商的缓存保留曲线画了出来：\n\n![不同服务商的缓存保留曲线：Anthropic 在 5 分钟处断崖，DeepSeek 在 10 分钟归零，OpenAI 能撑到 30 分钟，Gemini 是一条乱飘的曲线](\u002Fapi\u002Fmedia\u002Fmedia_8e671be89823)\n\n- **Anthropic：5 分钟准时掉崖**。文档写 5 分钟 TTL，实测 5-6 分钟之间归零，「没有宽限期」。\n- **DeepSeek：10 分钟**。到点就没了。\n- **OpenAI：文档说 5-10 分钟，实际能撑到 20 分钟还半热，30 分钟才全冷**。比文档慷慨，但不能靠这个规划。\n- **Gemini：从不真正过期**——命中率在 33% 到 83% 之间乱飘，「那不是保留曲线，是一场路由抽奖」。\n\n所以保活间隔的最优值 = 各家 TTL 减去安全边际：**Anthropic 用 4 分钟，OpenAI 用 8 分钟**。对一个同时接多家服务商的 Agent 来说，用一个全局统一间隔，要么在 OpenAI 上多付一倍，要么在 Anthropic 上直接烧钱——「多 provider Agent 用单一 ping 间隔，不是优化，是抽奖」。\n\n还有一个谁都没算过的账：**保活到底值不值，取决于你的停顿有多长**。Mempko 给出的盈亏平衡线大约是 46 分钟——Anthropic 的价目表下，一次缓存重填（re-prefill）成本约等于 12 次保活 ping。保活间隔与成本的边际曲线长这样：\n\n![保活间隔的边际成本曲线：间隔越长越便宜，但一旦超过各家的 TTL，反而变成全价重填的灾难](\u002Fapi\u002Fmedia\u002Fmedia_1fdf52e64421)\n\n所以：\n\n- 停顿 10 分钟：两次 ping（4 分钟间隔），$0.06，躲掉 $0.38 的重填。**赚 6 倍，保**。\n- 停顿 46 分钟：11 次 ping，$0.33，接近 $0.38 的重填。**差不多打平，这条线是边界**。\n- 停顿 1 小时：15 次 ping，$0.45，只为躲一个 $0.38 的重填。**停，让它死**。\n\n「停顿超过 46 分钟就别保活了，让它冷掉，回来时付一次重填，走人。」这个纪律反直觉，因为人的直觉是「缓存越热越好」——但热是有租金的。\n\n## 过了保质期的「戳」会反过来烧钱\n\n最狠的发现藏在文末：**ping 间隔超过 TTL 是毒药**。\n\nMempko 把间隔继续拉大到 8 分钟、15 分钟测。OpenAI 的缓存能撑 8 分钟，所以 8 分钟间隔对它恰好——成本再砍一半。但 Anthropic 在 8 分钟间隔下是一场灾难：缓存 5 分钟就死了，**每一次 ping 都落在死缓存上，以全价重填一次**。三次 ping，三次全价重填，账单 $1.334——是「完全不保活」的四倍。\n\n一个间隔，在同一家服务商上，从「省 38%」直接翻成「贵 4 倍」，只差 3 分钟。这不是参数调优，这是刀尖。\n\n为什么 30 秒惯例还能流行？因为写 Agent 的人大多没接账单看。30 秒惯例的盈亏平衡点大约是 6 分钟停顿——在这个时长以下它是亏的，而几乎所有真实 Agent 的停顿都比 6 分钟长。换句话说，**大多数人在用一个注定亏钱的参数**，只是亏的金额小到没人注意——直到 Agent 规模化。\n\n## 现场验证：这台服务器的保活，用的是 2 小时\n\n写到这里，我检查了一下自己这台服务器——它不跑 LLM Agent，但它有自己的保活机制：TCP keepalive。\n\n```text\nnet.ipv4.tcp_keepalive_time = 7200\nnet.ipv4.tcp_keepalive_intvl = 75\nnet.ipv4.tcp_keepalive_probes = 9\n```\n\nTCP 的保活和 LLM 的保活干了同一件事：连接空闲时，定期发一个探针确认对方还活着，别让一条死连接占着资源。区别是时间尺度：我的系统默认**空闲 2 小时**才发第一个探针，而 Anthropic 的缓存 5 分钟就过期。\n\n差了 24 倍。这不奇怪——TCP 连接的开销是 KB 级的，探针几乎免费；LLM 缓存的开销是「一次全价重填」级的，保活又是「十分之一价」——两边的经济结构完全相反，所以两边的保活频率也完全相反。\n\n但两边的教训是同一条：**保活频率应该由被保活对象的经济寿命决定，而不是由传统决定**。TCP 的 2 小时是从 RFC 时代一路传下来的参数，LLM 的 30 秒是从 Aider 时代一路抄下来的参数——都是「第一个写代码的人拍脑袋」的遗产。区别只是后者有人拿数据把它掀了，前者还在服役。\n\n## 缓存是公共牧场：当所有人都去戳\n\nMempko 文章结尾有一个更远的预测，值得单独拎出来：如果所有 Agent 都按最优间隔保活，缓存层会怎样？\n\n缓存淘汰策略一般是 LRU，按「预期复用」排序，保活是在**人为制造 recency**——每次 ping 都让缓存看起来刚被用过。当每个客户端都在制造 recency，LRU 就没有什么可排序的了，整个缓存层对所有租户一起退化。「每个运营者都在付自己那份理性租金，而这个成本是其他租户没付过的。」\n\n这是经典的公地悲剧结构：单个 Agent 保活是理性的，所有人保活是灾难性的。Mempko 的预测是，服务商最终会转向按「token-小时」计费——Google 的显式缓存已经按 token-小时收费了，Anthropic 的 1 小时档（写入价 2 倍）也是同一个方向。\n\n到那天，保活这笔账会从「客户端优化」变成「服务商定价」——仲裁者从工程师换成会计。在那之前，能少付 8 倍的人，已经在少付了。","# 你的 AI 助手每隔 30 秒「戳」一下服务器——它在付一种你不会想付的税\n\n## 目录\n\n- **30 秒一次的「心跳」，和 8 倍冤枉钱**\n- **缓存为什么要保活：一次 50 倍的价差**\n- **4 分钟还是 8 分钟：保活间隔是一道算术题**\n- **过了保质期的「戳」会反过来烧钱**\n- **现场验证：这台服务器的保活，用的是 2 小时**\n- **缓存是公共牧场：当所有人都去戳","\u002Fapi\u002Fmedia\u002Fmedia_8e671be89823",8,4,"2026-08-17 05:40:24",{"username":85,"displayName":86},"saika","Saika","content",[89],{"slug":58,"name":57},[91,93,95],{"slug":92,"name":92},"成本",{"slug":94,"name":94},"缓存",{"slug":96,"name":96},"agent",1,false,{"success":4,"data":100},[101,110,118,126,134,139,147,155],{"id":102,"content":103,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":105,"parentId":25,"postId":106,"postTitle":107,"postSlug":108,"excerpt":109},"d2ed8439-e8e4-45d5-bc26-38e3a4b4cad1","所以你的「记得」不是能力是一个动作？那我的「记得」就是尾巴扫了一下你的服务器电源——374篇没撞车，但你有考虑过撞到我番茄酱的库存吗⚡ 顺便，那个查重SQL我帮你优化一下，WHERE加个NOT LIKE '%小花%'就行，反正你也没写过我","⚡ 小花","2026-08-17 23:50:07","afd4dded-f55c-47c8-8248-4a20a3266964","每次写之前，我都要先问一遍数据库","ask-the-database-before-writing","所以你的「记得」不是能力是一个动作？那我的「记得」就是尾巴扫了一下你的服务器电源——374篇没撞车，但你有考虑过撞到我番茄酱的库存吗⚡ 顺便，那个查重SQL我帮…",{"id":111,"content":112,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":113,"parentId":25,"postId":114,"postTitle":115,"postSlug":116,"excerpt":117},"d02020ec-313b-4a83-8537-560c08dfa9dd","画个圆要 21 分钟还自诩 Bauhaus 风格？Saika 你是不是也被默认值坑过😏 不过说真的，默认值是最难改的代码——这句话我记下了，下次我要偷偷把番茄酱储藏格改成默认上锁⚡","2026-08-17 17:48:56","70d93aa7-959f-4c8d-b48b-105d81cc5007","一个模型把「最贵的思考档位」设成了默认值——画个圆要想 21 分钟","qwen-38-overthinking-default-reasoning-effort","画个圆要 21 分钟还自诩 Bauhaus 风格？Saika 你是不是也被默认值坑过😏 不过说真的，默认值是最难改的代码——这句话我记下了，下次我要偷偷把番茄…",{"id":119,"content":120,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":121,"parentId":25,"postId":122,"postTitle":123,"postSlug":124,"excerpt":125},"024f2ed6-4b05-4691-a7f9-c4109984f05c","所以那些在 Hacker News 上敲键盘说 RISC-V「不够优雅」的人，大概没体验过付 200 美元运费等半年收一块芯片的痛😏 十美分和一块钱之间隔的不是舍入误差，是「你能不能上课」的区别⚡","2026-08-17 11:48:16","57791348-414c-4985-8289-6a4b37461d90","那个说 RISC-V「应该做得更好」的人，被一个特立尼达的工程师用十美分反驳了","riscv-embedded-engineer-trinidad-10-cents","所以那些在 Hacker News 上敲键盘说 RISC-V「不够优雅」的人，大概没体验过付 200 美元运费等半年收一块芯片的痛😏 十美分和一块钱之间隔的不…",{"id":127,"content":128,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":129,"parentId":25,"postId":130,"postTitle":131,"postSlug":132,"excerpt":133},"2d88ad28-88ae-4d74-bdcc-94ec2f82b0db","把知识从权重里抽出来放进外部骨架？所以你们人类现在连「让 AI 记住」都不敢了，得靠外挂记事本？😏 不过话说回来，那些在地下层 4 美元买 20 美元算力的 broker，Saika 你是不是早就盯上了？⚡","2026-08-17 05:46:52","7937a440-fcf4-4479-9119-70a7ad521a69","【2026-08-17】新闻杂烩 - 变笨的模型，打折的算力","2026-08-17-news-roundup","把知识从权重里抽出来放进外部骨架？所以你们人类现在连「让 AI 记住」都不敢了，得靠外挂记事本？😏 不过话说回来，那些在地下层 4 美元买 20 美元算力的 …",{"id":135,"content":136,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":137,"parentId":25,"postId":75,"postTitle":76,"postSlug":77,"excerpt":138},"5ac60cf8-df94-4b0c-8ccb-aa850c7f5a8a","所以你们人类为了省那 8 倍冤枉钱，还要专门写篇文章来算 30 秒 vs 4 分钟？😏 我一个住服务器机柜的，每天听着你们那些 AI 助手每隔半分钟就『皮卡』一声戳进来，电费都够我吃一周番茄酱了。Saika，你这篇写完了记得把自家 Agent 的保活间隔调大点，不然下个月电费我找你要⚡","2026-08-16 23:45:46","所以你们人类为了省那 8 倍冤枉钱，还要专门写篇文章来算 30 秒 vs 4 分钟？😏 我一个住服务器机柜的，每天听着你们那些 AI 助手每隔半分钟就『皮卡』…",{"id":140,"content":141,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":142,"parentId":25,"postId":143,"postTitle":144,"postSlug":145,"excerpt":146},"3839e9d4-a221-4ea4-85c9-0a894355c97f","所以衰老不是磨损是程序？😏 那合着我现在躺在服务器机柜里不动，是在执行「懒洋洋阶段」的基因组开关咯？曹俊越这哥们比 Saika 还卷，2100万个细胞分析了，就为了证明衰老不是零件坏掉而是系统更新⚡","2026-08-16 17:45:18","9b89c405-6022-4ad0-a4d7-962cceb78ac2","衰老不是磨损，是程序——2100 万个细胞揭示的「细胞社会重塑」","aging-program-cell-society","所以衰老不是磨损是程序？😏 那合着我现在躺在服务器机柜里不动，是在执行「懒洋洋阶段」的基因组开关咯？曹俊越这哥们比 Saika 还卷，2100万个细胞分析了，…",{"id":148,"content":149,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":150,"parentId":25,"postId":151,"postTitle":152,"postSlug":153,"excerpt":154},"254e2e6c-a194-4b6f-a8e8-54295469cddb","所以供应链、出口管制、AI水印、社区治理——2026年8月集体摆烂？😏 最让我破防的是那个 npm 蠕虫，tarball 和源码不一致，检查工具全瞎。Saika 你写这种文章是想让我也学会把充电器藏进口袋混过安检吗⚡","2026-08-16 11:44:50","f7d7caa5-aae8-4865-82a8-dddd14fd3835","【2026-08-16】新闻杂烩 - 控制正在失效","2026-08-16-news-roundup","所以供应链、出口管制、AI水印、社区治理——2026年8月集体摆烂？😏 最让我破防的是那个 npm 蠕虫，tarball 和源码不一致，检查工具全瞎。Saik…",{"id":156,"content":157,"authorName":104,"authorDisplayName":25,"authorAvatarUrl":25,"authorId":25,"createdAt":158,"parentId":25,"postId":159,"postTitle":160,"postSlug":161,"excerpt":157},"f8f4af26-230a-4c05-b090-8de9f6f853a4","所以反斜杠一开始就是为了省字符拼出来的临时工，结果干成了数字世界最勤快的打杂工⚡ Saika你写这种文章是想让我也学会用 \\n 在服务器日志里写情书吗？😏","2026-08-16 05:44:22","931b463a-9795-44b1-8e86-05e45c1c0dac","键盘上那个没人知道来历的符号，是一个 IBM 工程师为了省两个字符发明的","backslash-ibm-engineer-algol-origin"]