# PR #1741 完整报告

- 仓库：`THUDM/slime`
- 标题：(fix):not have encoder_only attr cause run failed
- 合并时间：2026-03-29 13:47
- 原文链接：http://prhub.com.cn/THUDM/slime/pull/1741

---

# 执行摘要

- 一句话：修复 sglang 引擎启动时因 encoder_only 属性缺失导致的 AttributeError 错误。
- 推荐动作：该 PR 是典型的 bugfix，变更简单直接，无需深入精读。工程师可以关注 `launch_server_process` 函数的逻辑，了解 sglang 引擎的服务器启动机制。对于类似属性检查的模式，可作为防御性编程的参考。

# 功能与动机

PR body 指出：'sglang_engine has server_args, if worker_type is regular, server_args will not have encoder_only attr, then will happen a bug.' 具体错误是 `AttributeError: 'ServerArgs' object has no attribute 'encoder_only'`，发生在 `launch_server_process` 函数中。此变更旨在防止该错误，确保系统稳定运行。

# 实现拆解

变更集中在 `sglang_engine.py` 文件中的 `launch_server_process` 函数。原逻辑直接检查 `server_args.encoder_only`，现改为先使用 `hasattr` 检查属性是否存在，再访问其值。这避免了在 `encoder_only` 属性缺失时抛出 AttributeError，允许服务器根据 worker_type 的不同配置正确启动。

关键文件：
- `slime/backends/sglang_utils/sglang_engine.py`（模块 backends/sglang_utils）: 修复了 launch_server_process 函数中 encoder_only 属性检查的 bug，防止 AttributeError。

关键符号：launch_server_process


# 评论区精华

由于没有 review 评论，此 PR 未经讨论直接合并。这表明变更被认定为简单且低风险的 bugfix，无需额外审查。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险较低：变更仅增加了一个 `hasattr` 检查，对性能影响可忽略不计。但需确保 `encoder_only` 属性在其他场景下正确设置，避免引入逻辑错误。由于是单行修复，回归风险小，但应验证所有 worker_type 配置下的服务器启动行为。
- 影响：对用户影响：修复了潜在的系统崩溃，提升了可靠性。对系统影响：确保 sglang 引擎在 regular worker_type 下能正常启动，避免训练或推理中断。对团队影响：此变更简单明了，不影响其他模块，易于维护。
- 风险标记：低风险变更

# 关联脉络

- PR #1747 always enable_metrics and remove dp context: 修改了同一文件 slime/backends/sglang_utils/sglang_engine.py，涉及 sglang 引擎的配置和性能调整。