# PR #26760 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Drop dead ScheduleBatch return_routed_experts/return_indexer_topk fields
- 合并时间：2026-05-30 14:16
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/26760

---

# 执行摘要

- 一句话：删除 ScheduleBatch 死亡字段
- 推荐动作：建议快速合并。这是典型的死代码清理变更，逻辑清晰且经过 CI 验证。

# 功能与动机

PR body 指出：这两个 `ScheduleBatch` dataclass 字段在 `init_new` 中通过 `any(req...)` 计算，但从未在 batch 级别被读取。实际的捕获路径由全局 server 参数 + 每个请求的 `req` 标志控制，因此 batch 粒度的聚合字段自引入以来就是无效的。

# 实现拆解

1. **删除字段定义**：在 `python/sglang/srt/managers/schedule_batch.py` 的 `ScheduleBatch` 类中移除 `return_routed_experts: bool = False` 和 `return_indexer_topk: bool = False` 两行。
2. **删除初始化逻辑**：在 `init_new` 方法中移除对这两个字段的赋值语句（`return_routed_experts=any(req.return_routed_experts for req in reqs)` 等）。
3. **移动测试文件**：将 `test/registered/8-gpu-models/test_return_indexer_topk.py` 移动到 `test/registered/rl/test_return_indexer_topk.py`，与其他 RL 相关测试（如 `test_return_routed_experts.py`）放在一起。

关键文件：
- `python/sglang/srt/managers/schedule_batch.py`（模块 调度器；类别 source；类型 core-logic）: 核心变更文件：删除了两个无用的字段定义和初始化逻辑，精简 ScheduleBatch 数据类。
- `test/registered/rl/test_return_indexer_topk.py`（模块 测试；类别 test；类型 rename-or-move）: 测试文件被移动以保持与同类测试的组织一致性。

关键符号：未识别

## 关键源码片段

### `python/sglang/srt/managers/schedule_batch.py`

核心变更文件：删除了两个无用的字段定义和初始化逻辑，精简 ScheduleBatch 数据类。

```python
# 变更前（已删除的行）
# return_routed_experts: bool = False
# return_indexer_topk: bool = False

# 以及在 init_new 中：
# return_routed_experts=any(req.return_routed_experts for req in reqs),
# return_indexer_topk=any(req.return_indexer_topk for req in reqs),

# 变更后：这些行被完全移除，不会影响功能，因为实际控制逻辑在 per-request 级别。

```

# 评论区精华

无 review 评论。PR 作者使用 `/rerun-test` 命令触发了 CI，并确认两个受影响测试均在对应 GPU 环境中通过，表明删除操作不会引起回归。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低。删除的字段未被任何代码引用，仅用于测试中启动服务器时通过全局参数控制捕获行为。移动测试文件可能会影响 CI 路径依赖，但作者已通过 rerun 验证。
- 影响：影响范围仅限于代码整洁性：减少了 `ScheduleBatch` 的数据成员初始化和计算开销（尽管极小）。对用户无感知，对开发者降低维护负担。
- 风险标记：暂无

# 关联脉络

- PR #26423 [RL] Fix crash when the reqs in a batch have a mix of `return_routed_experts` = True and False.: 该 PR 修复了 `return_routed_experts` 混合标志导致的崩溃，与本 PR 删除的 batch 级别字段属于同一功能域。测试文件 `test_return_routed_experts.py` 与移动后的 `test_return_indexer_topk.py` 同目录。