Prhub

vllm-project/vllm · 标签视图

标签列表

聚合结果

tool-calling 相关 PR

2026-09-16
缺陷修复 重要性 7.70 洞察度 7.00

修复 parser 基类 reasoning 结束与回合边界的 token 扫描,GLM 声明边界 token

值得精读,尤其是 `ParserEngine.extract_content_ids` 从「反向取最后一个 marker」改为「先定位回合边界、再正向取首个结束符」这一段——它同时修正了内容丢弃与多轮误判两类 bug,是理解 vLLM declarative parser 状态机的关键切入点。建议重点关注三处设计决策:一是把多结束符语义集中到基类、模型侧仅声明 `turn_boundary_tokens`;二是用 `wait_for_reasoning`(并回退到 `initial_state`)作为「是否需要裁剪」的唯一判据,取代子类 override;三是 gaby 给出的「reasoning-end 优先、tool marker 兜底」优先级排序。落地后建议为 ling3 等 GLM 派生 parser 补充同类边界测试,并考虑增加一条真实 chat template 的端到端用例,降低基类改动带来的隐性回归风险。

缺陷修复 重要性 6.58 洞察度 5.00

MCP 会话清理回调仅注册一次,修复重复清理与关闭后调用

值得精读,尤其是 `AsyncExitStack` 回调注册时机与去重模式:将遍历全部会话的清理回调从循环内移到循环外、用布尔标志控制注册一次,是处理"多次初始化、单次清理"任务的简洁范例。配套测试的参数化矩阵(空/单/未使用/首/末/全部)与部分初始化失败用例也值得借鉴。对使用 Responses API + MCP 工具的团队,建议合入后关注 MCP 服务端日志中清理请求是否恢复正常频率。

2026-09-15
基础设施 重要性 2.65 洞察度 1.00

XPU CI 追加 deselect,摘除 llama3.2 工具调用用例

不建议精读源码(本 PR 无源码),但值得花 1 分钟了解“CI 豁免如何被记录”的反面案例:本次跳过既没写失败原因、也没留恢复条件,是典型的可维护性折损。建议关注三点:(1)由 Intel 侧补一个 tracking issue,写清 llama3.2 在 XPU 上的具体失败模式与预期恢复条件;(2)考虑把多处 `--deselect` 抽成 job 级别的变量或 quarantine 列表,便于批量回滚与审计;(3)对 `optional: true` 的作业建立定期 review 机制,避免 deselect 列表无限增长。

重构 重要性 7.82 洞察度 7.00

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` 或多轮工具调用,应优先补上边界声明与针对性用例。

功能 重要性 6.70 洞察度 6.00

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) 回退分支的删除时机与对应测试清理。

缺陷修复 重要性 6.73 洞察度 6.00

修复 Gemma4 解析器静默丢弃裸 tool_call

值得精读。该 PR 展示了 FSM 解析器应对模型非规范输出的一种最小干预模式:单个终端 + 单条转移即可修复整类静默丢失问题,且依赖 lexer 最长匹配优先级保证零回归。建议关注两点:一是 `TOOL_PREAMBLE -> TOOL_NAME` 转移与 #53657 逃逸舱口的协同设计,二是测试对"畸形+规范混合序列"的覆盖方式,这种场景最容易暴露 FSM 状态泄漏。

2026-09-12

#56392 [Frontend] create unified Cohere parser

原始 PR · 作者 walterbm · 合并时间 2026-09-12 16:04

重构 重要性 9.18 洞察度 6.00

统一 Cohere 解析器,旧 parser 降级为 shim 修复特殊 token 泄漏

建议精读,价值在于三点:一是 `DelegatingParser` 统一入口 + 薄 shim 的迁移手法,可复用于其他模型家族;二是 `convert_schema_to_structural_tags` 对 xgrammar `triggered_tags` 的构造方式,是结构化输出与工具调用约束生成的关键;三是 `tests/parser/cohere/utils.py` 的 `MockCohereTokenizer` 与 `token_deltas` 设计,把多字节字符拆分的 U+FFFD 缓冲、多 token chunk 流式行为都纳入测试,值得在其它 parser 测试中借鉴。

2026-09-11
缺陷修复 重要性 5.67 洞察度 4.00

修正 browser.find 动作类型,修复 Responses 双路径校验崩溃

建议精读,但阅读重点不在 2 行字面量修改,而在两处结构性信号:一是「同一语义在流式与非流式两条路径重复实现」的风险,可考虑后续把 browser action 的构造抽成共用的工厂函数,让 action 类型与字段映射只定义一次;二是新增测试的断言强度不对称(非流式只断言 pattern、流式断言 url),若继续迭代 browser.* 系列,建议补齐非流式路径的 url/cursor 字段断言并考虑加一个最小的 Responses 端点级测试,用真实 SDK 反序列化输出以验证契约。对只关心修复本身的人,看 `harmony.py::_parse_browser_tool_call` 与 `streaming_events.py::emit_browser_tool_events` 两处改动即可。