# PR #21786 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[moe] add customized option to moe-a2a-backend
- 合并时间：2026-04-01 07:32
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21786

---

# 执行摘要

- 一句话：为 MOE A2A 后端添加自定义选项，以支持正确处理 require_mlp_tp_gather。
- 推荐动作：该 PR 变更简单机械，无需深度精读，但关注 MOE 模块或后端集成的工程师可快速浏览以了解自定义选项的添加方式，作为基础设施扩展的参考案例。

# 功能与动机

根据 PR body 中的描述，动机是“Add customized option so that `require_mlp_tp_gather` could be dealed correctly without side effect (e.g., deepep stuff)”，即添加自定义选项以正确处璗 require_mlp_tp_gather 参数，避免如 deepseek 模型的副作用，确保 MOE 后端处理的正确性。

# 实现拆解

实现集中在文件 python/sglang/srt/layers/moe/utils.py 中：1. 在 MoeA2ABackend 枚举类中添加新值 CUSTOMIZED；2. 新增实例方法 is_customized()，用于检查后端是否为自定义类型。无其他改动，变更简单直接。

关键文件：
- `python/sglang/srt/layers/moe/utils.py`（模块 layers/moe）: 唯一修改的文件，添加了 MOE A2A 后端的自定义选项 CUSTOMIZED 和判断方法 is_customized，是变更的核心，直接影响 MOE 后端处理逻辑。

关键符号：MoeA2ABackend.CUSTOMIZED, MoeA2ABackend.is_customized


# 评论区精华

review 评论为空，表明没有技术讨论、争议或设计权衡，变更被直接接受，无需要总结的讨论要点。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险较低：新增枚举值 CUSTOMIZED 可能在其他代码（如调度器或模型运行器）中未被正确处理，导致运行时错误或未定义行为；is_customized 方法依赖于枚举值的一致性，但变更简单，回归风险小；缺少针对新选项的单元测试或集成测试可能隐藏潜在兼容性问题，尤其是在与 require_mlp_tp_gather 交互时。
- 影响：影响有限：仅影响使用 MOE A2A 后端的模型配置，特别是需要自定义处理 require_mlp_tp_gather 的场景（如 deepseek 模型）；对大多数用户透明，不会改变现有行为或性能；系统层面无显著性能、安全或兼容性影响，但可能为未来 MOE 扩展提供基础。
- 风险标记：新增枚举值集成风险 , 缺少测试覆盖

# 关联脉络

- PR #21466 [2/n] lora - Shared outer experts and support qwen3_30b_a3b_instruct: 同涉及 MOE 层改进（共享外部专家 LoRA），可能共享类似的设计上下文，反映了项目在 MOE 功能扩展上的持续演进。