2026-09-15
XPU CI 追加 deselect,摘除 llama3.2 工具调用用例
不建议精读源码(本 PR 无源码),但值得花 1 分钟了解“CI 豁免如何被记录”的反面案例:本次跳过既没写失败原因、也没留恢复条件,是典型的可维护性折损。建议关注三点:(1)由 Intel 侧补一个 tracking issue,写清 llama3.2 在 XPU 上的具体失败模式与预期恢复条件;(2)考虑把多处 `--deselect` 抽成 job 级别的变量或 quarantine 列表,便于批量回滚与审计;(3)对 `optional: true` 的作业建立定期 review 机制,避免 deselect 列表无限增长。
reasoning 结束判定统一由语法派生,删除多模型 override
值得精读,尤其推荐 parser / structured-output 方向的 owner 逐段读 `ParserEngine.is_reasoning_end` 的新实现与两条新测试。三个最值得关注的设计决策:一是把「无标记尾部」语义显式提为 config 字段而不是继续散落在模型分支里;二是用「从初始状态出发的 `THINK_START` 迁移是否进入 REASONING」来区分惰性 `<think>` 与真正打开 reasoning,这一条同时支撑了 thinking off 的行为修正;三是用 `turn_boundary_tokens` 而非更长的手写分支来限定回合。阅读时请一并记住作者自曝的三处未解决项(`extract_content_ids` 分歧、未声明边界的 latch、gemma4 惰性 `<|tool_response>`),若后续要动这些模型的 `continue_final_message` 或多轮工具调用,应优先补上边界声明与针对性用例。
DSv4.1 工具调用启用 XGrammar schema 约束并保留旧版回退
值得精读,但重点不在代码量。源码只有 13 行,真正的价值是三点设计模式:用 `getattr(module, name, None)` 做跨版本能力探测以规避 ImportError、把 grammar 构造委托给上游 builtin 时显式覆盖 `reasoning="disabled"` 以维持 serving 的推理边界契约、以及用 `skipif(hasattr(...))` + `monkeypatch` 双写测试同时锁定新路径与回退路径。建议读者额外关注:(1) 后续 XGrammar bump PR 是否把 ≥ 0.2.7 落到依赖与镜像;(2) 是否补一条带真实权重的 tool-calling eval,验证 strict 约束不会引发重采样或误截断;(3) 回退分支的删除时机与对应测试清理。
修复 Gemma4 解析器静默丢弃裸 tool_call
值得精读。该 PR 展示了 FSM 解析器应对模型非规范输出的一种最小干预模式:单个终端 + 单条转移即可修复整类静默丢失问题,且依赖 lexer 最长匹配优先级保证零回归。建议关注两点:一是 `TOOL_PREAMBLE -> TOOL_NAME` 转移与 #53657 逃逸舱口的协同设计,二是测试对"畸形+规范混合序列"的覆盖方式,这种场景最容易暴露 FSM 状态泄漏。