首页 › trending › 别卷Prompt了,海外在卷KV缓存命中率

别卷Prompt了,海外在卷KV缓存命中率

导语:国内教程还在教“提示词模板七件套”的时候,海外Agent圈已经吵完了一场更大的架:Agent做不好,不是模型笨,是你把上下文喂错了。这场争论从Karpathy一条推文开始,被Manus、Anthropic、Cognition三篇帖子推向高潮,最后落地成一个扎心的结论——打开计费面板看“缓存命中率”,比改一百句Prompt都管用。本文带你复盘这场热议的来龙去脉、拆出可以直接抄的工程军规,并告诉你国内API怎么吃到同样的折扣红利。

一、这场架是怎么吵起来的

导火索(2025年6月):Andrej Karpathy(前OpenAI创始成员、前特斯拉AI总监)在X上发帖,明确表态“+1 for context engineering over prompt engineering"——他认为“提示词工程”这个词已经装不下现代Agent的开发内容了,真正的工作是为每一次LLM调用精心组装上下文:放哪些信息、放多少、以什么格式、放在哪个位置。这条推文在海外圈疯转,“Context Engineering(上下文工程)”从此成了独立工种。

第一篇重锤(2025年6月):Cognition AI(Devin的开发商)发布博客《Don't Build Multi-Agents》,核心观点只有两条原则:

  1. Share full context(共享完整上下文):多个子Agent各拿一块残缺上下文并行干活,产出的东西拼起来必然互相打架;
  2. Actions carry implicit decisions(每个动作背后都是隐含决策):两个Agent对同一份代码做出不同的隐含决策,合并时就是灾难。

结论很反直觉:先老老实实写单线程线性Agent,别学LangGraph搭多智能体编排。

第二篇重锤(2025年7月):Manus团队(Yichao "Peak" Ji 执笔)发布《Context Engineering for AI Agents: Lessons from Building Manus》,登上Hacker News当日热榜。这篇才是把话题从“理念”打落到“账单”的关键——它直接宣称:KV缓存命中率是生产级长上下文Agent最重要的单一指标。据其博客披露,Manus通过自建基础设施,把Agent运行阶段的命中率做到了90%以上。

第三篇背书(2025年9月):Anthropic官方工程博客发布《Effective context engineering for AI agents》,把“上下文工程”正式纳入官方话语体系,给出压缩(compaction)、结构化笔记、子Agent隔离三种上下文管理手段。至此,这场讨论从推特口水战升级为行业方法论。

二、把话题推向沸点的实证:Context Rot

光有工程经验还不够,Chroma研究团队2025年7月发布《Context Rot》实验报告补上了数据这一环:他们用多种“大海捞针”变体任务(包括标准NIAH、KV检索、词形变化检索等)测试了18个模型(覆盖GPT-4o、Claude、Gemini、Qwen等主流长上下文模型),核心发现是:

这份报告直接打脸了“长上下文模型一出,RAG和上下文管理都要死”的乐观派:窗口再大,塞垃圾进去就出垃圾。上下文工程不是权宜之计,是长期必修课。

三、可以抄的六条军规(来自Manus实践)

这部分的含金量最高,每条都能直接落到你的Agent代码里:

军规1:把“缓存命中率”写进监控大盘第一行

原理很简单:大模型推理的注意力计算中,前缀相同部分的KV缓存可以直接复用。Anthropic官方定价中,缓存命中的输入token按约0.1倍计价(写入时约1.25倍,之后读取只要1/10);Gemini 2.5系列开启隐式缓存后,命中部分约2.5折(具体折扣以官方价格页为准)。国内方面,DeepSeek API早已上线前缀缓存自动折扣,命中部分大幅降价;据Moonshot AI披露,Kimi K2在模型设计阶段就刻意做了前缀缓存友好优化。同一段系统提示,命中和没命中,账单差出一个数量级。

军规2:前缀稳定压倒一切——Keep It Stable

Manus的原话是设计提示词时遵循一个口号:"Keep it stable"。缓存按前缀逐token匹配,哪怕只差1个token,从那里开始全部作废。检查你的代码里有没有这些杀手:

正确姿势:可变内容全部推到上下文最尾部,头部保持字节级稳定。

军规3:append-only,禁止改写历史

Agent循环里最容易犯的错:为了“省token”回头改写旧的工具调用结果、或者把上一步的观测值“更新”成新值。每一次改写都会让该位置之后的所有缓存失效。Manus的做法是日志式追加:历史动作和观测只增不改,哪怕中间有错误也原样保留。

flowchart TB
    U["用户指令"] --> A["Agent主循环"]
    A --> P["拼装上下文"]
    P --> S["稳定前缀层:系统提示+工具schema+示例"]
    P --> D["动态尾部层:历史消息+最新观测"]
    S --> C{"前缀与上次一致?"}
    C -->|一致| H["缓存命中:约0.1倍计价"]
    C -->|不一致| M["缓存失效:全价写入"]
    H --> L["调用LLM"]
    M --> L
    L --> O["产出新观测"]
    O --> AP["append-only追加,不改旧内容"]
    AP --> LEN{"上下文超限?"}
    LEN -->|是| CP["压缩旧段+关键状态写入todo.md"]
    LEN -->|否| A
    CP --> A

军规4:Mask工具,而不是Remove工具

直觉做法是“当前用不到的工具就从schema里删掉,省token又防误用”。但删工具会让后续所有工具定义的位置前移,缓存直接全灭。Manus的方案:工具列表永远保持静态,改用状态机控制工具的启用/禁用,在解码阶段用logits masking屏蔽当前不该调的工具名——模型“看得见但点不动”。对用第三方API、拿不到logits的开发者,折中方案是在系统提示里用强约束描述当前阶段允许的动作。

军规5:文件系统就是最好的上下文——todo.md复读机

上下文窗口装不下整个任务时,把结构化状态落盘到文件(如todo.md),每次循环开始时重新读入关键部分。更妙的是Manus提到的"recitation(复述)"技巧:让Agent周期性地把目标和进度重写进todo.md——这一动作相当于强迫模型“复读”自己的任务,显式对冲“迷失在几百轮工具调用里”的目标漂移。英文有句谚语"fatigue makes cowards of us all",Agent也一样。

军规6:保留错误,别做“完美日志”

很多人清理上下文时把失败的尝试删掉只留成功路径。Manus的观察相反:保留wrong turns(错误尝试)能让模型在后续更新自己的信念,避免反复跳进同一个坑。真正该清理的是垃圾——那些撞了API限流可以重试的原始错误体、可以换更高效工具实现的冗长动作,才是修剪对象。

另有一个反面警告:少样本陷阱(few-shot rut)。上下文里成功案例的模式重复太多次,模型会过度模仿——见过一次Cron表达式的示例后,哪怕当前任务不需要定时,它也可能硬塞一个调度器进方案。多样性比整齐更重要。

四、社区观点交锋实录

阵营 代表 核心论点
支持派 Karpathy、Anthropic、Manus、Cognition Agent失败大多是上下文组织问题而非模型智力问题;缓存是唯一能同时降本和提速的杠杆
怀疑派 HN评论区主流质疑声 "Context engineering就是prompt engineering换了马甲,又造新词卖课"
乐观派 部分长上下文信仰者 模型窗口继续扩大、注意力机制进化后,这些trick终将过时——但被Context Rot实验数据打脸
务实派 大量中小开发团队 别管叫什么名字,打开计费面板看缓存命中率从30%到90%的账单差异,答案自然有

HN上还有一个高赞的中间立场值得玩味:“这是提示词工程的超集而不是替代”——提示词工程解决“单次调用怎么问”,上下文工程解决“几十轮循环里每次调用喂什么”,二者叠加才是完整的Agent开发。对每天跑数百万token的团队,这场“造词之争”的最终裁判是财务报表。

五、对中国技术从业者的启示

  1. 这是典型的认知差+方法差:国内内容平台搜“Agent开发”,前排还是“提示词模板”“角色扮演咒语”;海外已经进入“缓存感知架构设计”阶段。这个时间差意味着你照本文改一遍现有项目,就可能直接省下一半API开销。
  2. 国内API同样吃这个红利:DeepSeek的前缀缓存折扣、Kimi K2的缓存友好设计、GLM等国产模型的API缓存能力,原理与Anthropic完全一致——前缀稳定、append-only这些军规原样适用,不需要任何特殊适配。
  3. 避开国内教程的三个惯性坑:系统提示里拼当前日期(缓存杀手)、用LangGraph硬上多Agent(Cognition公开反对的方案)、每轮清理历史“省token”(越省越贵)。
  4. 视角差价值:这轮讨论里HN评论区对“新词营销”的警惕同样值得学习——海外社区不是照单全收,而是用实验(Context Rot)和账单(命中率)逼着概念落地。

六、信息差总结

你以为的 别人已经在做的
优化Agent=改提示词 优化Agent=管理上下文+盯缓存命中率
长上下文模型越大越好 窗口越大越贵,Context Rot证明还会退化
多Agent并行=先进架构 单线程线性Agent+共享完整上下文更稳
删掉不用的工具=省token 静态工具表+logits masking,删一次毁一次缓存
清理历史错误=上下文干净 保留wrong turns帮模型修正信念
缓存是API厂商的事 缓存命中率是应用层的第一个架构决策

七、行动指南(今天就能做)

  1. 审计:打开你现在Agent项目的系统提示,把所有时间戳/随机ID/动态URL移到消息尾部,头5分钟就能完成;
  2. 测量:在API响应里找到 cache_read_input_tokens / 缓存命中字段(Anthropic、DeepSeek返回里都有),加进你的日志,先看清现状;
  3. 改造:把Agent循环改成append-only,历史观测禁止原地修改;
  4. 落盘:给长任务加一个todo.md,每5轮让Agent复述一次目标和进度;
  5. 对比:跑同一批任务,对比改造前后的账单和命中率,把数字发到团队群里——这比任何布道都有效。

参考来源

  1. Manus博客《Context Engineering for AI Agents: Lessons from Building Manus》 — https://manus.im/blog (站内搜索标题可直达,曾登HN热榜)
  2. Anthropic工程博客《Effective context engineering for AI agents》 — https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
  3. Cognition AI《Don't Build Multi-Agents》 — https://cognition.ai/blog/dont-build-multi-agents
  4. Chroma研究《Context Rot: How Increasing Input Tokens Impacts LLM Performance》 — https://research.trychroma.com/context-rot
  5. Karpathy关于context engineering的原推 — https://x.com/karpathy (2025年6月,可按时间检索)

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入