本篇(Resident KV Claims)提出 KV-cache 的 conformance contract 概念——当被接受的 resident claim 不可行时,运行时必须执行显式合约动作而非静默驱逐。以下 7 篇工作从不同维度解决 KV-cache 复用问题,但都停留在"策略/机制"层而非"合约/语义"层:
| 论文 | 核心维度 | 与本篇的关系 |
|---|---|---|
| Continuum (2511.02230) | 单请求 TTL 时长决策 | retention primitive,正是合约要抽象的下层 |
| KVFlow (2507.07400) | 工作流拓扑驱动驱逐优先级 | eviction policy,决定谁被驱逐但不定义驱逐的语义后果 |
| Concur (2601.22705) | agent 级准入控制防止 thrashing | 准入层:减少冲突发生频率,但不定义冲突时的合约响应 |
| SAGA (2605.00528) | 分布式 workflow-atomic 调度 + WA-LRU | eviction + routing + fairness,仍是 block-level event,不区分 claim harm vs ordinary eviction |
| PBKV (2605.06472) | GNN 预测驱动分层淘汰 | 预测型 cache management,退化至生命周期策略而非合约语义 |
| DualPath (2602.21548) | 聚合存储带宽的 dual-path 加载 | 硬件数据通路层,解决 I/O 瓶颈而非 cache ownership |
| PrfaaS (2604.15039) | 跨 DC prefill offload + 调度 | 系统拓扑层,解决 KV 传输可行性而非驻留保护 |
结构性观察:这些工作在系统栈中的位置从 Concur 的"准入门"到 KVFlow/SAGA/PBKV 的"驱逐策略"到 DualPath/PrfaaS 的"数据通路",构成 KV-cache 管理的完整纵深。本篇声称自己位于一个正交维度——不是"做什么"(策略),而是"做了之后必须怎样"(合约语义)。
所有 7 篇相关工作输出的都是某种 action decision(保留多久、驱逐谁、准入几个、从哪加载)。本篇输出的是 action obligation:当 accepted claim 的 predicate 被违反时,运行时必须从 13 种 contract outcomes 中选择一种显式响应 [2605.24259]。这是类型系统与 policy function 的区别——policy 可以被替换而 contract 定义 observability 层。
Continuum 的 TTL 过期 [2511.02230] 和 KVFlow 的 STE 驱逐 [2507.07400] 都将 block 被回收视为单一事件类型。本篇的 claim-harm 语义将同一物理事件(block loss)分为四种不同含义:无 claim 时的 ordinary eviction、demotion 后的 policy relaxation、expiry 后的 scheduled release、accepted claim 未 release 时的 true harm [2605.24259]。这为运行时提供了因果推理能力——不是"发生了什么"而是"发生的事意味着什么"。
Concur 和 Continuum 都隐式假设"控制新 KV 的写入即可保护已有 KV" [2601.22705]。本篇通过 vLLM 实验直接证伪这一假设:write no-admit 控制的是 future reusable admission(第三资源),而 active live allocation(第二资源)仍从共享 pool 分配 blocks 并可驱逐 residents [2605.24259]。这个三资源分解(resident reusable KV / active live KV / future reusable admission)是之前所有工作未做的语义区分。
相比 Continuum 的 8.18× 延迟改善 [2511.02230]、SAGA 的 1.64× TCT [2605.00528]、Concur 的 4.09× 吞吐 [2601.22705],本篇 无 serving 性能数字。其贡献完全在 conformance 语义层——证明 hard protection 改变失败模式(从 silent resident loss 到 visible active refusal),但不声称改善 throughput/latency [2605.24259]。
PBKV 用 GraphSAGE 预测未来 agent 调用来决定驱逐优先级 [2605.06472],但预测无论多精确,仍无法定义"预测保留的缓存被违反时系统应做什么"。Resident claims 可作为 PBKV 评分驱动淘汰之上的 enforcement layer——prediction 决定哪些 blocks 有高价值,claims 合约定义这些高价值 blocks 被侵犯的 observability 和 response 路径。
本篇明确承认 hard protection "改变失败模式而非消除约束" [2605.24259]。但这引出更深层问题:如果唯一的显式响应是 active_request_refused,那么在高并发 agentic workload 下合约只会导致大量请求被拒绝,系统 throughput 崩塌。相比之下 Concur 的 AIMD 控制器动态调节准入窗口实现 4.09× throughput [2601.22705],Continuum 的 TTL 平衡了保留收益与占用成本 [2511.02230]。合约定义了 observability 但不提供 actionable resolution strategy——它是问题的"报警器"而非"灭火器"。
所有实验使用 135M 参数模型、80-block KV pool 的 toy 配置 [2605.24259]。在生产级模型(70B+)和 HBM(80GB+)上,resident/active 容量边界的行为可能根本不同——large model 的 KV 占用使得每个请求消耗大量 blocks,feasibility boundary 被更频繁触发且 arbiter 决策空间更复杂。SAGA 在 64-GPU 集群跑 Llama-3-70B [2605.00528],DualPath 在 1152-GPU 上跑 DeepSeek-660B [2602.21548]——scale gap 是数量级的。
合约定义了 13 种 outcome(evict/refuse/defer/offload/route/relax 等)[2605.24259],但只实现了一种(hard protected-resident exclusion → active refusal)。从"可定义"到"可实现"存在巨大工程鸿沟——offload 需要类似 DualPath 的双路径加载架构 [2602.21548],route-elsewhere 需要类似 PrfaaS 的跨集群调度 [2604.15039],defer 需要类似 Continuum 的 TTL + queueing model [2511.02230]。每种 outcome 路径的可实现性取决于整个系统栈的支撑,合约本身只是接口声明。
六种 protection mode × 多种 claim 生命周期状态(submitted/accepted/materialized/demoted/expired/harmed/refused)在多租户场景下产生组合爆炸。当数百个 agent 同时持有不同 protection mode 的 claims 时,arbiter 的决策复杂度可能使 per-scheduling-tick latency 不可接受。SAGA 的 coordinator cycle 已是 12.3ms [2605.00528],如果还要做 claim-scoped lifecycle tracking,overhead 可能显著增长。
合约声称可以作为 TTL/priority/AIMD 策略之上的抽象层,但未展示与任何一个策略的集成运行。如果 Continuum 的 TTL 过期导致 KV 释放,这在合约语义中是 "expiry"(不构成 harm)还是 "demotion"?边界不清的情况下合约可能产生 false negative(应该报告 harm 但因为 policy 提前 release 了 claim 而不报告)。
如果把 KV-cache 管理栈类比为网络协议栈:
| 层级 | 类比 | 代表工作 |
|---|---|---|
| 准入控制 | 拥塞窗口 | Concur (AIMD) |
| 驱逐策略 | 路由算法 | KVFlow (STE), SAGA (WA-LRU), PBKV (GNN-score) |
| TTL/retention | TCP keepalive | Continuum (cost-benefit TTL) |
| 数据通路 | 物理链路 | DualPath (dual-path loading), PrfaaS (cross-DC) |
| 合约/语义 | TCP 标准(RFC 793) | Resident KV Claims |
本篇试图成为 KV-cache reuse 的 RFC——不是一个新的 implementation,而是 implementation 应遵守的 conformance spec。这解释了为什么它没有性能数字:RFC 不比 throughput,RFC 定义 correctness。
合约的实际价值取决于运行时是否愿意实现 claim lifecycle tracking。当前 vLLM/SGLang/TRT-LLM 的 KV 管理都是 block-level,没有 claim scope 的概念。这意味着:
Concur 和 SAGA 的哲学是"少即是多"——通过限制并发或保留 cache 来避免冲突发生 [2601.22705] [2605.00528]。本篇的哲学是"冲突不可避免,但必须 observable"——不防止 infeasibility 而是让 infeasibility 可见。这两种哲学不矛盾但强调不同:前者是运维视角(让系统跑得好),后者是合规视角(让系统行为可审计)。在 multi-tenant SLO-driven 场景下后者可能更有价值——provider 需要向 tenant 证明"你的 prefix 被杀是因为 capacity 不够,不是因为 bug"。
将 Concur 的 AIMD 信号从 (usage, hit_rate) 扩展为 (usage, hit_rate, claim_harm_rate)。当 claim harm 频率超过阈值时触发 multiplicative decrease——这比纯 hit rate 更精确,因为 claim harm 只统计"被承诺保护的 KV 的损失"而非所有 cache miss [2601.22705] [2605.24259]。
PBKV 的 K-step 预测 [2605.06472] 输出概率分布,可以自然映射到 claim 的 protection mode 选择:高确信度预测 → hard_protected claim;中确信度 → soft_priority;低确信度 → best_effort。这为 PBKV 的 Lipschitz 退化保证增加了合约语义——不仅"预测错了退化优雅",而且"退化路径 observable"。
PrfaaS 的跨 DC KV 传输 [2604.15039] 和 DualPath 的双路径加载 [2602.21548] 引入了 KV 的物理位置多样性。当一个 resident claim 对应的 KV 被 offload 到远端存储或跨 DC 转移,claim 的 feasibility boundary 需要扩展为 multi-tier:GPU HBM claim → host DRAM claim → remote storage claim,每层有不同的 materialization latency 和 protection semantics。
SAGA 的 Agent Execution Graph [2605.00528] 定义了跨 tool-call 的 session 连续性。将 claim 绑定到 AEG 的 session 而非单个 KV block,可以定义 workflow-level claim:"这个 agent 的整个 prefix chain 在接下来 K 步内 protected"。Session-affinity routing [2605.00528] 提供了物理保障,claim 提供了语义可观测性。
本篇的 conformance suite (L1-L7 levels) [2605.24259] 可以扩展为 KV-cache serving 的标准化 benchmark——不测 throughput 而测"failure mode correctness"。每个 serving engine 报告自己在 13 种 contract outcomes 中实现了哪些,用户根据自己的 workload 特征选择"我需要 offload outcome 还是 refuse outcome"。这为 KVFlow、Continuum、Concur 等策略的比较提供了合约维度而非纯性能维度的评价轴。