
本期三条窗口内工程更新分别处理并发 Agent 的记忆身份边界、DSA/MLA KV 页面布局和 Gemma 4 MTP draft attention 后端适配。
c1d38eb 于北京时间 8 月 1 日 22:55:33 提交,标题是「support request-scoped actor peers」。它为 LangChain/LangGraph middleware 增加了从每次运行时上下文解析 actor peer 的入口,并把这个身份作用到 recall 和 capture 期间发出的 HTTP 请求。1session_id + peer_id 扩展为包含 actor_peer_id 的组合;因此两个 actor 在相同用户和 session 下工作时,捕获进度不会因为共用一把 key 而互相覆盖。recall 和 capture 都在 actor-peer scope 中执行,session 接口仍然按 user 作用域工作,不用 actor-peer header 给消息归属打标。1test_actor_peer.py、test_runtime_actor_peer.py 和 test_langchain_runtime_actor_peer.py 开始,构造两个 actor peer 访问同一用户,再分别检查 recall 请求、capture progress 和消息归属。若两个 peer 有独立历史,还要给它们解析出不同的 session ID;否则 actor 隔离并不能自动替代 session 隔离。1path= client;自定义 client 还必须声明并实现 request-scoped actor peer 支持。提交没有给出并发吞吐、召回质量或记忆污染率 benchmark,所以它证明的是隔离契约,不是 memory 服务性能提升。10427938 于北京时间 8 月 1 日 10:08:09 提交,标题是「add NL_X_NB_BSV_BSS format for CB」。核心变化不是提出新的 KV 压缩算法,而是为 DSA indexer cache 增加一种能被 cache blend 和多进程传输识别的物理布局:[NB, BS, 132] 的 uint8 页面,页面内部按 block 排列 value 与 scale。2NL_X_NB_BSV_BSS engine format,并在 vLLM detector 看到单层、三维、uint8 且最后一维为 132 时选择该格式。传输 kernel 不再把它当普通 MLA 页面:它按 block_size 计算 block 基址,把每个 token 的 value 区和 block 尾部的 scale 区分开复制;同时 blend 的 re-RoPE 路径增加 rope_base_offset,处理 MLA latent row 中旋转维度位于尾部的情况。换句话说,本次增量解决的是「缓存对象已经存在,但 cache connector 不知道怎样正确寻址和搬运」的问题。2test_blocked_scale_format.py、test_cb_mla_rope.py 和 KV format classification 测试。验证两类内容:一是 detector 是否只在 uint8、最后一维 132 的页面上选择新格式;二是 host/device 双向传输后 value 与 scale 的页内位置、MLA re-RoPE 的偏移和 blend 结果是否一致。2block_size;patch 对不满足约束的行宽和类型会直接报错。测试证明的是布局与 kernel 的正确性,没有给出模型、GPU、运行时、基线一致的 cache 命中率、显存节省或传输吞吐数字。因此不能把「支持 DSA 页面」写成「KV cache 变小」或「推理更快」。2131bd51 于北京时间 8 月 2 日 07:16:04 提交,标题是「Add trtllm_mha support for Gemma 4 MTP draft attention backend」。它把 trtllm_mha 接入 Frozen-KV MTP 的 draft attention 初始化路径,扩展的是 draft 侧的 attention backend 选择,不是 target 模型的通用 attention 替换。3speculative_draft_attention_backend 也纳入 trtllm_mha 判断。第二,Frozen-KV MTP 在 topk > 1 时,允许 triton 或 trtllm_mha,后者通过 TRTLLMHAAttnBackend(..., skip_prefill=True) 初始化。第三,CUDA graph 的 draft attention state 容量按 max_bs * topk 初始化,而不是只按 batch size 预留。这对应的是多候选 draft token 的工作集边界。3frozen_kv_mtp_worker_v2.py 的 backend 选择和 frozen_kv_mtp_cuda_graph_runner.py 的 state sizing 为入口,分别固定 topk=1 与 topk>1,检查 draft KV 绑定、CUDA graph capture 和 verify 前后的状态是否一致;再跑提交修改的 test_trtllm_mha.py,确认后端选择不会绕过既有 correctness case。3trtllm_mha,不能据此推出普通 decode、target attention 或其他 speculative 路径都得到同样收益。3| 状态边界 | 本期变化 | 证据等级 | 先做的动作 | 暂时不能推断 |
|---|---|---|---|---|
| 并发 Agent 身份 | OpenViking 将 actor peer 纳入 recall/capture 的请求级 scope 与捕获 key | 已合并 commit;含 unit/integration tests | 两个 actor 共享 user/session 时做隔离与归属测试 | 不能推断召回质量或并发吞吐提升 |
| DSA/MLA KV 页面 | LMCache 增加 blocked-scale engine format、页内 value/scale 寻址和 re-RoPE offset | 已合并 commit;含格式与 kernel tests | 做 detector、双向传输和 blend 正确性测试 | 不能推断显存节省或传输加速 |
| draft attention 工作集 | SGLang 为 Gemma 4 Frozen-KV MTP 增加 trtllm_mha,并按 max_bs * topk 初始化 graph state | 已合并 commit;含 backend correctness test | 分离 topk、capture、verify 状态做回归 | 不能推断 speculative decoding 端到端收益 |
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.