改选 B,为什么这次仍然请求 A?
比较改选发生在组装前后。播放沿六个观察点推进,检查 current、assembled、提示词变量和最终请求。
01 / 在哪个时间点改选
本次提示词 A → 本次请求 A → 下次组装 B
先组装 A 的提示词,再把 current 改成 B。请求监听器读取已捕获的 assembled,因此这次仍用 A。
本次提示词 B → 本次请求 B → 下次组装 B
在本次组装开始前已经选好 B;current、提示词变量与 assembled 都捕获 B,本次请求也用 B。
完整路径,共六步
- 01写 current = A
选择入口 → 选择引用
入口选定 A;这里尚未组装提示词。
写 current = B选择入口 → 选择引用
入口选定 B;这里尚未组装提示词。
- 02捕获 current = A
SystemPrompt → 选择引用
组装开始先读 A,随后等待其他组装贡献。
捕获 current = BSystemPrompt → 选择引用
组装开始先读 B,随后等待其他组装贡献。
- 03提交 assembled = A
SystemPrompt → 选择引用
组装完成,变量 provider/model 与快照都采用 A。
提交 assembled = BSystemPrompt → 选择引用
组装完成,变量 provider/model 与快照都采用 B。
- 04写 current = B
选择入口 → 选择引用
改选只更新 current;已经捕获的 assembled 仍为 A。
current 保持 B选择入口 → 选择引用
改选只更新 current;已经捕获的 assembled 仍为 B。
- 05读取 assembled = A
请求配置 → 选择引用
覆盖当前请求 provider/model,得到 A;不是再次读取 current。
读取 assembled = B请求配置 → 选择引用
覆盖当前请求 provider/model,得到 B;不是再次读取 current。
- 06下次捕获 current = B
SystemPrompt → 选择引用
下一次组装从 current 读到 B,后续请求使用新快照。
下次捕获 current = BSystemPrompt → 选择引用
下一次组装从 current 读到 B,后续请求使用新快照。
阶段是解释用观察点,时间间距不代表耗时;两种路径均使用真实实现的选择规则。
入口选定 A;这里尚未组装提示词。
入口选定 B;这里尚未组装提示词。
组装开始先读 A,随后等待其他组装贡献。
组装开始先读 B,随后等待其他组装贡献。
组装完成,变量 provider/model 与快照都采用 A。
组装完成,变量 provider/model 与快照都采用 B。
改选只更新 current;已经捕获的 assembled 仍为 A。
改选只更新 current;已经捕获的 assembled 仍为 B。
覆盖当前请求 provider/model,得到 A;不是再次读取 current。
覆盖当前请求 provider/model,得到 B;不是再次读取 current。
下一次组装从 current 读到 B,后续请求使用新快照。
下一次组装从 current 读到 B,后续请求使用新快照。
02 / 对照本次请求的结果
数据为固定实验解释;第六步到达后,下一次 assembled 已经变成 B。
| 本次捕获值 | A |
|---|---|
| 本次提示词变量 | A |
| 本次请求读取 assembled | A |
| 改选后的 current | B |
| 下一次组装快照 | B |
| 本次捕获值 | B |
|---|---|
| 本次提示词变量 | B |
| 本次请求读取 assembled | B |
| 改选后的 current | B |
| 下一次组装快照 | B |
current = A assemble() 捕获 A assembled = A current = B agent/request 采用 A 下一次 assemble() 捕获 B 省略 effort 会清除继承 effort;其他请求字段保留。
current = B assemble() 捕获 B assembled = B current = B agent/request 采用 B 下一次 assemble() 捕获 B 省略 effort 会清除继承 effort;其他请求字段保留。
查看来源、操作方式与限制
对应 dsh-agent/model-selection.ts 的组装和请求 waterfall,以及 API Session Controller 的会话选择引用。使用原生场景控件;播放器支持播放/暂停、单步和重播,聚焦时可用 Home、End 与左右方向键。
图只展示一次组装与一次请求的字段关系,未绘制请求重试、adapter 默认值解析、磁盘写入和变化说明消息。阶段 2 捕获 current 的动作发生在等待后续组装之前;后来的选择影响下一次组装。