
Prompt缓存成本优化实战用Magic Context廉价Historian模型为长会话省下大半Token账单【免费下载链接】magic-contextUnbounded context. Memory that manages itself. One session, for life. The hippocampus for coding agents, part of CortexKit.项目地址: https://gitcode.com/gh_mirrors/mag/magic-context使用Magic Context做 Prompt 缓存成本优化是长期运行编程 Agent 会话时最实在的省钱手段它把上下文压缩交给廉价的 Historian 模型在后台悄悄完成同时用缓存感知的折叠策略保证 Prompt 缓存尽量不被打破。对于跑了几千条消息的长会话这意味着账单上的大头——重复计费的历史上下文——被持续压缩而缓存命中率不再被无谓的破坏拖累。长会话为什么越聊越贵 编程 Agent 的计费逻辑决定了长会话天然昂贵前缀越长每次请求越贵每一轮对话都会把全部历史重新发给模型历史从几千涨到几万 token 后账单随之线性膨胀缓存破坏cache bust是隐形刺客只要历史前缀的字节发生变化Prompt 缓存就失效整段历史按新输入重新计价。项目诊断文档开篇就点破了这一点——一次缓存破坏只会体现在账单上没有任何报错见 docs/architecture/diagnostics.md压缩时机不对等于白省很多方案在会话中途强行截断历史结果既丢信息又恰好打破缓存省下的输入费还补不了一次缓存失效的代价。Magic Context 的思路是把管理上下文这件事从主 Agent 手里剥离交给一个专门的后台子系统并且刻意让它的每一步都尽量不碰缓存。省钱引擎一廉价 Historian 负责压缩主力模型只管写代码Magic Context 内置一个Historian历史学家它在隐藏的后台会话中运行把陈旧的原始对话压缩成带重要性评分的舱室compartment摘要供后续轮次代替原始消息出场。官方 README 对此有一句直白的设计说明摘要不需要你主力模型的编码能力所以 Historian 可以跑在廉价甚至完全本地的模型上而主 Agent 保持顶级模型。见 README.md 的 Historian compartmentalization 一节成本账非常好算工作传统做法Magic Context 做法压缩几万 token 历史占用主力模型调用交给几分之一价格的廉价模型压缩发生的位置打断当前会话、占用前台窗口隐藏会话后台异步压缩结果一次性全文摘要四级渐进摘要 重要性衰减Historian 的完整机制触发预算、受保护尾部边界、四级摘要 p1–p4、按重要性衰减渲染都写在 docs/architecture/historian.md 里触发判定逻辑位于 compartment-trigger.tsRust 端对应实现在 crates/mc-module/src/historian.rs。省钱引擎二缓存感知折叠只在反正要断的时候断比换便宜模型更关键的是不让历史变更打破 Prompt 缓存。Magic Context 的提示词采用m[0]/m[1]头部布局稳定的系统块放最前历史摘要放合成消息里新增内容只往后追加。由此带来三条省钱的纪律发布不破坏缓存Historian 产出新舱室后不会立刻改写提示词前缀而是标记一次延迟历史刷新等下一次本来就要断缓存的折叠HARD fold时再一起落地见 docs/architecture/historian.md 的 Publish 一节后台维护零破坏Dreamer 的夜间记忆整理、文档维护等写入永远不会强制一次 Prompt 缓存破坏统一搭下一次自然重建的车见 docs/architecture/dreamer.md;每次破坏可追责每轮 pass 的缓存决策都记录在transform_decisions表中Dashboard 可把每次 cache bust 归因到具体原因仓库还提供只读的cache-bust-sentinel脚本持续监测会话、区分账面上的破坏和疑似 bug 的破坏见 docs/architecture/diagnostics.md。换句话说省 Token 不只是少发内容更是别把已缓存的前缀弄脏。三步把廉价 Historian 配起来配置入口是magic-context.jsonc用户级~/.config/cortexkit/magic-context.jsonc项目级项目/.cortexkit/magic-context.jsonc完整字段说明见 CONFIGURATION.md 与 assets/magic-context.schema.json。第 1 步运行安装向导自动探测你的宿主OpenCode / Pi / OMP并推荐模型组合。向导会顺手帮你把宿主内置压缩关掉——因为宿主压缩会干扰它的缓存感知策略、造成双重压缩。第 2 步为 Historian 指定廉价模型和回退链。配置键按宿主分组historian.opencode.model、historian.pi.model及各自的fallback_modelshistorian.maxTokens控制单舱输出上限historian.two_pass可加一道去噪编辑。这几项都属于下次 Historian 运行即生效的热更新键改完无需重启宿主。第 3 步可选多仓库差异化配价。用profiles可以为工作仓库和个人仓库分别指定不同的 Historian 模型集工作仓库用更便宜的模型个人仓库保留默认机制见 CONFIGURATION.md 的 Per-repository model profiles。真实数据Token 到底花在了哪里 项目团队对自己跑了一台机 14 天的 Historian/Dreamer 调用做了完整核算3,040 次调用、约 14.8 亿 token详见 docs/reports/dreamer-token-usage.md两个结论对省钱直接有用79.7% 的 token 是缓存读取cache-read——只要缓存不破坏长前缀的重复发送本身远比想象中便宜反过来破坏缓存的代价也远大于直觉压缩类任务verify、map 等消耗了约 69% 的 token 量且最贵的部分来自反复重放不断膨胀的前缀而不是初始提示词过长——这正好对应上文第 2 步里用小模型 收紧输入的处理方式。另一份按 pass 的成本剖析docs/reports/ckmc-per-pass-cost.md则证明在 7500 条消息的超大会话上Magic Context 的单轮处理中位数约 1.2 秒、常规增量 pass 的缓存失效率极低压缩收益远大于管理开销。验证你的省账是否生效会话内输入/ctx-status查看当前缓存感知决策与错误提示用 Dashboard 或transform_decisions审计每次 cache bust 的归因把未知破坏清零归因方法见 docs/architecture/diagnostics.md定期对比账单里的 cache-read 占比占比越高说明前缀越稳定省钱策略越有效。小结Historian 用廉价模型压缩工作从主力模型卸载主 Agent 全程用顶级模型写代码缓存感知折叠历史变更搭本来就要断的车避免为压缩而白白付一次缓存失效破坏可归因每次 cache bust 都有记录省账与否一目了然。长会话不必再是账单黑洞——让廉价的 Historian 管记忆让贵的模型专心干活。【免费下载链接】magic-contextUnbounded context. Memory that manages itself. One session, for life. The hippocampus for coding agents, part of CortexKit.项目地址: https://gitcode.com/gh_mirrors/mag/magic-context创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考