Repository navigation
never ask 的语义与团队插件下的 subagent 交互限制:是否为预期设计? #12150
Replies: 3 comments
|
两个都问在点子上,先把 1. 那句提示词只作用于审批 你在系统提示里看到的那句当前不在树里。我在 master
它的作用域写在 但你的担心成立:切换通知的名字就是 "never ask the user for approval"( 2. 团队不再替换普通 subagent 的工具——恰恰是被改掉了
具体是 两个可能:版本还在 rc.2 之前;或者 profile 里有旧 patch 行还禁着 自查:看 版本坐标:master |
|
我委托的我朋友写的这个discussion,现在有点时间了,我来补充一下,用gpt写的稿子: 1.设计确认:approval policy = never 与 ask_user_question 的边界,是否需要在模型提示中明确?背景在 Web GUI 中切换权限设置后,模型上下文会收到这样的策略变更通知:
对应的 runtime-context 还会说明:
与此同时,
我想确认这里的预期语义,尤其是:“不再请求工具执行审批”是否应与“仍可询问需求、偏好或缺失信息”明确区分? 这是一次设计与文案层面的咨询,不是已复现的运行时 Bug。目前没有通过受控实验验证模型会因为上述通知而停止使用 阅读源码后的理解以下以
因此,我目前的理解是: approval policy = never 并不等于“禁止一切用户交互”,也不等于“无需授权即可执行所有操作”。它控制的是特定的工具审批流程。 如果这个理解不准确,希望维护者指出。 想确认的问题
文案方面的顾虑与建议虽然原句包含限定词 “for approval”,runtime-context 也明确提到了 sandbox escalation,但 这只是潜在的模型理解风险,不是在声称代码禁用了提问工具,也不是在声称这种误读已经稳定复现。 如果普通澄清仍然是预期行为,是否可以考虑类似这样的补充说明:
这里的建议仅希望明确语义边界,不要求放宽权限、不要求自动批准,也不要求为 我正在考虑通过插件注入一段简短提示来明确这个边界,因此想先确认官方设计意图,避免注入与框架预期相冲突的指导。 感谢! 2.设计与迁移确认:Agent Teams 与普通 subagent 共存时,同名控制工具覆盖及通信不对称背景我在一个同时暴露普通 subagent 与实验性 Agent Teams 工具的 Web 会话中,测试了两套能力能否共同使用。 当时模型同时可以看到:
两类代理都能创建并完成工作,但创建之后的发现、消息和控制入口并不一致。我想确认: 这属于旧版有意限制的组合,还是工具组合应当避免出现的状态?上游统一 subagent / Team 的重构是否已经覆盖了这些问题? 版本与证据范围
当时观察到的现象
我关注的不是“两个插件同时加载就崩溃”,而是: 父代理能够创建普通子代理,子代理能够回报,但父代理当前可见的同名控制工具却无法用同一身份继续控制它。 这也使得统一的协作提示词比较难写:工具名称相同,但参数、发现范围和可达对象取决于代理所在作用域。 旧版源码和文档提供的解释1. Team 工具会遮蔽同名普通控制工具旧版文档明确说明,Team 工具注册在成员作用域,同名注册会遮蔽普通全局控制工具。 Team 版 参考: 2. 标准 Team profile 原本会禁用普通委派入口旧版 profile patch 禁用了 不过,该 bundle 的文档也说明,preset 仍可能在自己的作用域挂载 subagent 控制工具,顶层 bundle 不会替换这些注册。 因此,我不确定当时同时看到两套工具,是预期支持的扩展组合,还是 profile / preset 叠加后暴露了不完整的控制路径。 参考: 3. 中断返回值表示的不是“已经停止”旧版普通控制工具在调用中断服务后返回 因此,“请求被接受”“命中了正在运行的目标”“目标已经停止”是不同状态。这里可能属于刻意设计的幂等语义,但模型侧容易把确认文本理解得更强。 参考: 我看到上游已有相关重构新的设计说明直接指出,Team-scoped 控制工具遮蔽标准 subagent 工具,会迫使 profile 禁用普通委派,并导致 fork 前后的工具 schema 不同。 后续设计改为:
参考:统一设计说明。 另外,我注意到迁移说明展示的是 因此,我不想把旧版的 希望确认的问题
我的目标是为协作代理编写可靠的提示词,可能通过插件自动注入。希望先确认官方支持的组合与版本边界,而不是仅靠提示词补偿一个已经被新架构替代的旧行为。 感谢! |
|
先纠正我自己:上一条我跟着迁移说明写了"标准工具改用 下面按你四个问题回。 1. 旧版混用不是受支持组合——它是被禁掉的
- id: tool-subagent-control
disabled: true
- id: tool-subagent
disabled: true
- id: tool-subagent-fork
disabled: true也就是说那个 profile 里普通委派入口是关掉的,不存在"两套并存"。你看到的并存,应该是 preset 在自己作用域里又挂了一遍(README 的 known limitations 说的就是这个),属于叠加出来的状态,不是官方组合。 2. 那个版本没有推荐的父子通信入口 这正是统一设计说明里写的 problem(
所以旧版的答案是:要么全用 3. 新版基线:设计说明 + 当前工具 schema,别照抄迁移说明的寻址 那份设计说明状态是 implemented,但它自己列了后继:2026-10-16 的 tree-wide communication、2026-10-19 的 task-board inbox、2026-11-02 的 catalog names(后者明确取代了"创建不接受成员名/拒绝唯一名"那句,所以现在才有名字可寻址)。 结论:版本边界按 4. 中断确认是幂等的,不是"已停止"
一句总建议:给协作代理写提示词时,别把"accepted"当状态用,状态只从 参考基线:master |
Uh oh!
There was an error while loading. Please reload this page.
关于
never ask的语义,以及团队插件启用后的 subagent 行为使用 DSH 时有两点疑问,想确认是否属于有意设计。
1. Full Access 下的
never ask是否仅指操作审批?Full Access 下,运行时注入的提示词大意是:
这里的
ask user似乎有歧义:是仅指不再请求操作权限,还是也希望模型减少需求澄清等正常提问?实际使用中,我感觉模型很少调用
ask_user_question,但偶尔仍会调用,暂时不能确定是否与这句提示词有关。这种减少提问的行为是预期设计吗?如果这里只指权限审批,是否可以用 approval/permission 限定范围,避免被理解为禁止正常提问?2. 启用智能体团队插件后,普通 subagent 的交互是否受限?
按我的观察,启用团队插件后,leader 仍能创建普通 subagent,但后续交互工具似乎被面向团队成员的工具替换,无法用于普通 subagent,形成了“可以创建,却缺少配套交互工具”的情况。
同时,当前规则要求使用 agent team 需用户明确许可,普通 subagent 则没有这一要求,因此模型仍可能走普通 subagent 这条路径。
这是启用团队插件后的有意限制,还是两套机制在工具暴露上存在衔接问题?这种情况下,普通 subagent 的预期使用方式是什么? 如果我对工具的理解有误,也请指正。
All reactions