Replies: 1 comment
|
这个问题现在有一条已经在 stock DSH + 真模型上跑通的替代路线。先说明边界:这不是修改 DSH 原生 dsh plugin --profile <你的-profile> add pi2dsh
dsh plugin --profile <你的-profile> add @tintinweb/pi-subagents这条路线的继承顺序是:子代理显式模型 → 父会话持久日志最后一条真实 所以需要立即使用时,不必重启,也不需要给每个子代理写死 route;它会跟随父会话已经实际使用的当前 provider/model。完整可复现装置与证据: |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
现象
在 GUI 会话中通过模型选择器把当前会话模型切换到「千问3.8」(provider
qwen-local)后:subagent/subagent_fork派生的子 Agent 仍然使用会话创建时的全局默认模型(deepseek-official / deepseek-v4-flash)✗期望:子 Agent 继承父 Agent 当前生效的模型,除非显式指定(如 preset 的
agentOptions)。复现
subagent派生子 Agent → 子 Agent 实际使用 A。根因
两套机制脱节:
packages/subagent/subagent/src/child-agent.ts的resolveChildAgentOptions()与continuation.ts(约 413 行)都以parent.options.provider/model为继承源。installModelSelection(packages/core/agent/src/model-selection.ts),只挂钩system-prompt/assemble与agent/request,从不回写agent.options;而创建 Agent 时(packages/host/apiproxy/src/api-proxy.ts约 1112 行)一律用全局默认agentOptions()。已修复(附补丁)
修改:子代理模型解析优先读父会话最近一次实际请求的模型(
parent.session.requestHeader()?.config,即 harness 自身认可的"当前生效模型"来源,apiproxy 1163 行同源),回退到创建时选项;显式agentOptions仍优先。child-agent.ts(新增parentModelRoute)、continuation.ts(续跑路径)、测试continuation.spec.tsf892329,分支fix/subagent-model-inheritance,已推送至 forkdelaydai/deepseek-harness)若团队认为方向正确,可直接应用该补丁;也欢迎指正更合适的实现位置(例如让
installModelSelection同步回写agent.options,或把ModelSelectionRef暴露给 subagent 解析路径)。影响
任何"会话内切换模型后派生子 Agent"的用法都会静默使用旧模型(子 Agent 会话不显示模型,不易察觉)。对多模型部署(本地 Qwen + 云端 DeepSeek 混用)影响明显。
临时规避(部署侧)
在 preset 的
tool-subagent/tool-subagent-fork配置agentOptions: { provider, model }固定子 Agent 模型。All reactions