GatewayModelClient 参数快照漏记源级推理档位 #7

Open
opened 2026-09-09 23:56:52 +08:00 by Bepr4 · 0 comments

问题

PolyGateway 1.3.3 给 SourceConfig 增加了 reasoning_effort 与 effort_fallback。这两个字段会改变实际请求或不支持档位时的处置,但 PolyLoop 1.0.3 的 GatewayModelClient.parameters() 生成源描述时只记录:

  • name
  • provider
  • model
  • extra_body
  • enable_thinking

因此只修改源级 reasoning_effort 或 effort_fallback 时,PolyLoop 的参数快照保持不变,resume() 无法发现模型配置已经漂移。

相关位置:src/polyloop/adapters/__init__.py::_describe_sources()。

可复现场景

  1. 用 reasoning_effort=low, effort_fallback=error 构造一份 GatewaySettings,读取 GatewayModelClient.parameters()。
  2. 只把 reasoning_effort 改为 high,或只把 effort_fallback 改为 nearest。
  3. 再次读取参数。
  4. 当前两次结果逐字相同,但 PolyGateway 发出的请求或档位处置已经不同。

请求级 gateway.reasoning_effort 不受这个问题影响:它位于 ModelCall.binding,本来就会进入运行快照。缺口只在源级配置。

影响

参数快照承诺的是“恢复时模型配置没有变化”。这两个字段漏记后,一条运行可能在配置变化后继续恢复,轨迹却仍声称参数一致。GovDoc-SaaS 首版可以通过不使用这两个源级字段暂时规避,但这不应成为长期前提。

期望

  • reasoning_effort 或 effort_fallback 的有效值变化时,GatewayModelClient.parameters() 必须变化;
  • 输出保持确定性,Effort 使用规范化后的稳定字符串;
  • 增加集成测试分别覆盖两个字段;
  • 实现时请考虑已有运行快照的兼容:默认值是否写入会决定升级后旧运行能否继续 resume(),不要无意让全部旧快照漂移。

LLMResponse.applied_effort 是否进入 PolyLoop 轨迹是另一件事,不在本 issue 范围内。

## 问题 PolyGateway 1.3.3 给 `SourceConfig` 增加了 `reasoning_effort` 与 `effort_fallback`。这两个字段会改变实际请求或不支持档位时的处置,但 PolyLoop 1.0.3 的 `GatewayModelClient.parameters()` 生成源描述时只记录: - `name` - `provider` - `model` - `extra_body` - `enable_thinking` 因此只修改源级 `reasoning_effort` 或 `effort_fallback` 时,PolyLoop 的参数快照保持不变,`resume()` 无法发现模型配置已经漂移。 相关位置:`src/polyloop/adapters/__init__.py::_describe_sources()`。 ## 可复现场景 1. 用 `reasoning_effort=low, effort_fallback=error` 构造一份 `GatewaySettings`,读取 `GatewayModelClient.parameters()`。 2. 只把 `reasoning_effort` 改为 `high`,或只把 `effort_fallback` 改为 `nearest`。 3. 再次读取参数。 4. 当前两次结果逐字相同,但 PolyGateway 发出的请求或档位处置已经不同。 请求级 `gateway.reasoning_effort` 不受这个问题影响:它位于 `ModelCall.binding`,本来就会进入运行快照。缺口只在源级配置。 ## 影响 参数快照承诺的是“恢复时模型配置没有变化”。这两个字段漏记后,一条运行可能在配置变化后继续恢复,轨迹却仍声称参数一致。GovDoc-SaaS 首版可以通过不使用这两个源级字段暂时规避,但这不应成为长期前提。 ## 期望 - `reasoning_effort` 或 `effort_fallback` 的有效值变化时,`GatewayModelClient.parameters()` 必须变化; - 输出保持确定性,`Effort` 使用规范化后的稳定字符串; - 增加集成测试分别覆盖两个字段; - 实现时请考虑已有运行快照的兼容:默认值是否写入会决定升级后旧运行能否继续 `resume()`,不要无意让全部旧快照漂移。 `LLMResponse.applied_effort` 是否进入 PolyLoop 轨迹是另一件事,不在本 issue 范围内。
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: iomgaa/PolyLoop#7