Repository navigation
[Feature] spawn_teammate 无法为 Agent Teams 成员选择模型与推理档位 #8712
Unanswered
chjien1917
asked this question in
Q&A
Replies: 1 comment 1 reply
对照面确实已具备——我把源码锚点给你(另有一条同题报告,建议合并)1. 核实结果(
|
1 reply
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.
Uh oh!
There was an error while loading. Please reload this page.
摘要
list_agents报出每个成员的model,但spawn_teammate不接受任何模型参数——Lead 能看见成员的模型,却永远无法选择它。同一个组件在输出侧暴露了这个值,在输入侧没有对应入口。对照面已经存在:
subagent工具已带provider/model/reasoning_effort三个可选参数。现状
spawn_teammate的入参(packages/experimental/tool-agent-team/src/index.ts:178-187):没有任何路由入参。成员路由只能来自插件 Config:
而两个默认值都是 continuable-subagent 的通道名
spawn/fork(:26-27)。对照之下,roster 会解析并输出成员的实时模型:
为什么这是结构必然,而不是缺陷
本插件里的
provider指的是委派通道,不是 LLM 路由。Config 注释原文即写明:TeamMemberSnapshot.provider存的也是同一个通道名(
packages/experimental/agent-team/src/types.ts:51)。因此"成员一律继承 Lead 路由"是这个设计的必然结果,不是疏漏。本报告不要求改变这一点。
关于命名的一处提醒:
list_agents也输出一个provider字段(:55),但它承载的是通道名、不是 LLM 路由——同一个词,两个概念。本报告论证的不对称只落在
model上。对照面
subagent把这三个参数作为可选的、模型可见的工具参数暴露出来:参数的确切形态(供实现直接照抄):
reasoning_effort(下划线),落到子代理agentOptions时是reasoningEffort(驼峰)provider与model必须成对提供,否则报错(
packages/subagent/tool-subagent/src/model-selection.ts:113)(
model-selection.ts:152:child LLM route "…" is not allowed for this Session)list_subagent_models列出(
packages/subagent/tool-subagent/src/list-models.ts:88)provider/model/reasoning_effort全部省略时用配置的默认值,兼容的缺项从父 Agent 继承
诉求(纯增量)
spawn_teammate接受与subagent相同的三个可选参数:provider、model、reasoning_effort。省略 → 现状完全不变,成员照今天一样继承 Lead 路由。
提供 → 成员在指定路由上启动。
不改变任何现有调用者的行为,因此不存在需要评估的兼容性问题。
实现会遇到的一个岔口(请顺带记录决定)
在
subagent里这三个参数是有条件的,不是无条件展开——只有modelSelectionEnabled为真时才展开(
packages/subagent/tool-subagent/src/index.ts:400),而它是modelSelectionPolicy !== undefined(:361),即装了模型选择策略才有。内置 preset 里是开着的:
standard/ptc/cordis三个 preset 的tool-subagent行都带
modelSelectionSettings: true(如packages/bundle/web-app/presets/standard.patch.yml:95)。也就是说先例不是"
subagent一直有这三个参数",而是"装了模型选择策略才有"。两种处理都可以,我们只希望决定被记录:
产物侧锚点
构建产物中的同一组位置:
packages/experimental/tool-agent-team/lib/index.js:16-18— Config 默认值freshProvider: "spawn"/forkProvider: "fork"packages/experimental/tool-agent-team/lib/index.js:271—ctx.agentTeams.spawnTeammate(agent, { ... })调用点packages/experimental/tool-agent-team/lib/index.js:290—provider: context === "fork" ? config.forkProvider : config.freshProvidersubagent侧的产物锚点(可一并对照):packages/subagent/tool-subagent/lib/index.js:46(判定是否声明了路由)、:67-68(reasoning_effort非空校验 +provider/model成对校验)、:79(映射为reasoningEffort)、:96-97(Session 路由白名单)。同题报告
#8589 下由 @snmtg1008 追加的回复「附:Team 面缺"模型 / 思考档"参数」报告了同一
缺口,并给出了产物级锚点(
lib/index.js:16-18、:271、:290)。建议两条互引、保留一条作为主贴,避免同一诉求分散在两个线程里。
相关上游讨论(同属"已知未实现"):#8324(提案;并指出 continuation seam 已具备条件——
startContinuable接受agentOptions,路由随子代理描述符持久化)、#7054(roster 里的model是创建时快照)、#8035、#6985、#8373。版本
锚点在 HEAD
dsh-v0.2.1-alpha.1上成立(见下方回复的独立核对),本地0.2.0-rc.2亦同形。
All reactions