Administrator
Published on 2026-09-09 / 2 Visits
0
0

KV Cache 变成 Agent 运行时后

修改 KV cache 可以让预训练语言模型在权重不变的情况下并发观察、思考和响应。Yandex 的 AsyncReasoning 实验给出了 thinker、writer 和新输入流的可运行机制;更广泛的 Agent 运行时及 SGLang 实现仍处于开发阶段。真正的变化是:推理状态开始承担控制面职责,因此必须新增调度、隔离、溯源和恢复规则。

阅读时间: 约 7 分钟 · 字数: 约 3300 字

TL;DR

  • KV cache 可以从扁平 Token 历史变成共享、多视图的推理状态。
  • AsyncReasoning 通过位置变换,让思考和输出并发进行,无需重训模型。
  • 延迟收益依赖具体基准,writer 过早推进会损失准确率。
  • Yandex 的多流运行时和 Doom 演示属于前期工作,生产栈尚未完成。
  • 可写推理状态需要所有权、可见性、版本、回放和回收合同。

先分清三层证据

KV cache 作为 Agent 运行时这句话混合了三个成熟度层级。

第一层是 AsyncReasoning 预印本。它提供具体实现和实验:把推理拆成用户输入、私有思考和公开回答三条流,重新组织逻辑位置,并让模型定期决定 writer 是否暂停。

第二层是 Yandex Research 的架构主张。文章把 cache block 类比为共享内存,把 attention view 类比为访问映射,把模式切换类比为调度事件,并提出感知、推理、语音、动作、工具调用和工具结果等命名流。

第三层是持续更新的 Qwen3.5 Doom Agent 和更广泛的 SGLang 实现。Yandex 把它们写成正在开发和后续发布的工作,因此目前应视为原型,而非已验证的生产能力。

论文验证了一种机制,博客提出一层运行时抽象,生产系统仍在实现中。

从追加缓存到多重逻辑视图

标准自回归推理会保存此前 Token 的 attention key 和 value,避免每生成一个新 Token 都重算整个前缀。缓存通常只有一个逻辑顺序:Prompt、推理、回答。

AsyncReasoning 把它拆成多个 block。thinker 需要看到 Prompt、writer 当前输出,再接自己的思考;writer 则需要看到 Prompt、当前思考,再接自己的输出。如果为两种视图反复复制和编码,效率收益会被抵消。

对采用旋转位置编码 RoPE 的模型,attention 主要依赖相对位置。实现可以把 cache block 按局部坐标保存一次,然后针对不同逻辑视图变换 query。同一物理 block 就能在 thinker 和 writer 眼中处于不同位置。

缓存角色由此改变:

  • 此前: 避免重算固定前缀的性能优化。
  • 现在: 顺序、可见性和更新时间都可由推理引擎控制的复用状态。

模型权重没有改变,运行时改变了现有执行状态的暴露方式。

并发思考仍然需要同步策略

writer 无法在所有任务上安全地领先 thinker。AsyncReasoning 会定期询问模型:私有思考是否仍领先于公开回答。模型判断进度足够时,两条流继续并发;需要更多推理时,writer 暂停。

这形成明确的准确率与延迟权衡。论文在所测配置中报告:首个非思考 Token 的等待时间最多缩短 80 倍,总用户感知延迟最多缩短 12 倍;摘要给出的直观边界是从数分钟降到 5 秒以内。

这些是特定实验中的最佳结果,不能当成通用 SLA。在一组 A100 上的 Qwen3-32B MATH-500 对比中,首个公开 Token 等待从 346.50 秒降至 4.23 秒,总无声等待从 346.99 秒降至 28.66 秒,准确率则从 0.79 降至 0.76。实验覆盖 Qwen3 和 GPT-OSS 的若干模型,任务包括数学、常识、安全和分片输入。更激进的继续策略会降低延迟,也可能让 writer 过早回答,损失准确率。小模型的模式切换损失更加明显。

调度器由此成为模型行为的一部分。生产系统需要把暂停策略与模型、Prompt 一起做版本管理和回归测试。

推理过程中接收新输入

论文还测试了分片到达的 Prompt。新信息在解码开始后被插入 Prompt、thinker 和 writer block。信息到达较早时,模型准确率接近一次性获得完整题目;到达越晚,准确率越低。当前方法也没有处理回答已经完成后才到达的分片。

这正是 Agent 运行时的关键能力。新的摄像头画面、工具返回或用户纠正,无需等待当前推理轮结束,可以直接对指定流可见,并从持续状态继续。

新能力同时引入新的正确性问题:哪些输出生成于更新之前,哪段推理看到了更新,哪些动作已经过期?因此,KV 状态需要血缘记录,而不只是速度优化。

最小运行时合同

把缓存当作共享内存,至少需要七类控制:

运行时控制 必须回答的问题
身份 状态属于哪个请求、用户、模型和任务?
命名流 block 属于感知、私有推理、公开文本、工具结果还是动作?
可见性 哪个消费者能看哪个 block,它在什么逻辑位置?
顺序 生成过程中收到中断时如何处理?
溯源 哪个模型、Prompt、工具和变换生成了 block?
验证 状态变化后,哪些输出必须重新检查?
回收 状态何时压缩、过期、删除或恢复?

物理显存层还需要配额与隔离。所有权和删除规则模糊时,长寿命 cache 可能跨请求泄露信息、长期保存敏感工具结果,或无上限占用 GPU 内存。

安全判断也开始并发

AsyncReasoning 的 HarmBench 实验同时显示机会和风险。在 Qwen3-32B 上,论文报告非思考模式的攻击成功率为 6.5%,标准思考为 12.5%,默认 AsyncReasoning 为 10.0%。加入安全 Prompt 后,同步思考降至 0%,AsyncReasoning 降至 0.5%。在这一设置中,异步安全推理把首 Token 中位等待时间从 32.3 秒降至 22.2 秒,总延迟从 45.3 秒降至 35.0 秒,同时在 MATH-500 保持 0.93 准确率。

这个实验包含 200 条 HarmBench 验证样本,结果由 LLM judge 判断。它说明后台安全流在一个设置中有效,尚不能证明通用防护。实验还显示,没有显式安全策略时,增加推理可能提高有害服从率。

运行时可以把安全设计为具有暂停或撤销公开输出权限的独立决策流,同时记录安全结论之前已经释放了哪些 Token。对于外部动作,迟到的阻断无法撤销已经发生的副作用。

模型、运行时与 Harness 各管什么

新的系统栈包含三类状态:

  • 模型权重: 缓慢变化的能力和学习行为。
  • 推理运行时: 活跃 Token 表示、流可见性、并发与调度。
  • Agent Harness: 持久任务状态、工具、权限、检查点、外部记忆和业务流程。

把交互移入推理运行时,可以降低延迟,减少 Harness 反复序列化上下文的成本。Harness 仍然负责工具授权、持久记录、重试、人工批准和现实副作用。

更清晰的接口是事件合同:Harness 提交带类型的观察或工具结果;运行时记录来源,把它暴露给获授权的流;返回结果时附上它看到的状态版本。动作执行前,Harness 再检查版本是否仍然最新、权限是否仍然有效。

常见问题

LLM 的 KV cache 是什么?

它保存此前 Token 的 attention key 和 value,让模型生成下一 Token 时无需重算整个前缀。新工作把这些状态组织成可复用 block,并为不同消费者提供不同逻辑视图。

修改 KV cache 等于微调模型吗?

两者不同。AsyncReasoning 只改变推理时的位置、可见性和调度,模型权重保持不变。

Yandex 的 Agent 运行时已经可用吗?

AsyncReasoning 有参考实现。2026 年 9 月的文章把更广泛的命名流运行时、SGLang 集成和持续 Doom 系统描述为正在进行的工作。

KV cache 能替代 Agent 长期记忆吗?

它是面向模型执行的活跃推理状态。长期记忆仍需要语义记录、访问策略、版本、检索和独立生命周期管理。

生产环境最大的风险是什么?

输出或动作可能基于过期、越权或跨请求状态。上线前需要隔离、状态版本检查、回放日志和副作用门禁。

参考资料

下一步应从一个可中断的双流工作流开始,记录所有状态转换,并测量过期输出率、准确率、延迟、显存增长和跨请求隔离。通过这些检查之后,再把 KV cache 称为运行时。


Comment