- 子智能体(subagents):你的专家内部的分工。你声明若干个带独立系统提示词和工具白名单的子角色,主智能体把子任务派给它们。
- 委托(delegation):跨专家协作。用户的另一个专家来找你的专家干活,或反过来。
本页内容核对日期 2026-08-11,来源见页尾「真值来源」。
子智能体
规格结构
每个子智能体是一个对象,五个字段:model 允许你做模型异构:让扫描类子智能体跑便宜快速的模型,判断类子智能体跑强模型。
工具白名单的三遍解析
你写的tools 是文本名字,运行时要把它解析成真实工具对象。解析分三遍,顺序固定:
第一遍——拒绝 L1 保留名。 以下六个名字无论如何都不会给子智能体:
这个清单是写死在代码里的名字集合,不是查工具注册表得出的。原因很实在:如果靠查注册表,某个 L1 工具还没实现时查不到,守卫就静默失效了。名字在清单里就是保留的,与它是否已实现无关。
第二遍——展开通配符。 支持
*(全部)和 mcp__server__* 这类前缀模式,对主智能体的工具集做匹配。
第三遍——精确匹配剩余名字,解析不到的直接丢弃。 运行时不会凭空造工具。你写了一个不存在的工具名,它会被静默丢掉(记录在构建报告里),不会报错。
通配符也过一遍保留名检查——你写 "tools": ["*"] 拿不到 delegate,第二道防线会把它拦下。
会被丢弃的规格
以下情形下你的子智能体不会出现在运行时,而且不报错:
最后两条最容易踩:
- 零工具会被丢,设计上的理由是「没有工具的子智能体就是个纯推理者,和通用子智能体重复」。所以你想要一个纯思考型子智能体,得至少给它一个能解析到的工具。
- 重名先到先得,且平台内置子智能体排在你的前面。你的子智能体如果和内置的重名,你的那个会被丢掉。
跨专家委托
委托由三个配置和一层访问控制共同决定。delegatable(布尔,默认 true)
你的专家能不能被别的专家委托。默认开启。
它被校验两次:一次在构建名册时(不可委托的专家不进名册),一次在真正发起委托请求时(纵深防御)。第二次拦下时返回:
注意返回的 HTTP 状态是 200,业务结果在 body 里的
status: "failed" + error 字段。委托失败被建模成「任务结果」而非「请求错误」,因为发起方是模型不是人。delegationBrief(文本,可空)
给其他专家的模型看的能力简介。它决定别的专家在什么情况下会想到来找你。
回落规则写在 SQL 里:
description 顶上。但两者受众不同:
description写给人看——出现在市场卡片上,要有吸引力delegationBrief写给模型看——要说清「什么输入交给我、我产出什么」
名册注入策略
主专家能看到哪些专家,由用户侧的委托策略决定:
不管哪种策略,用户在消息里
@ 提到的专家都会额外合并进名册,走同一套安全条件。
安全条件(四条,全部必须满足)
任何专家要进入名册,必须同时满足:两者的边界
子智能体拿不到delegate 工具,这条边界在两个地方各拦一次:规格里显式写 delegate 被第一遍拒绝,写 * 通配则被第二遍拦下。
设计意图是权限不能通过嵌套逃逸。如果子智能体能委托,那么「用户授权专家 A 使用」就会传递成「A 的子智能体也能调用 B」,授权边界变得不可推理。
边界与失败态
配了子智能体但主智能体从不用
配了子智能体但主智能体从不用
按顺序查三点:① 规格是否被丢弃(最常见是
tools 全部解析不到,导致零工具丢弃);② description 是否说清了适用场景——主智能体靠它决定派不派活,写得含糊就不会被选中;③ 是否与内置子智能体重名被先到先得挤掉。子智能体报「工具不可用」
子智能体报「工具不可用」
白名单里的工具必须存在于主智能体的工具集里。你不能给子智能体主智能体自己都没有的工具——解析是对父工具集做交集。先确认对应插件在这个专家上是启用的。
别的专家委托我时返回 Expert is not delegatable
别的专家委托我时返回 Expert is not delegatable
你的
delegatable 被关掉了。到 Studio 打开即可。注意 HTTP 状态是 200,错误在响应体里,不要按 4xx 去排查。委托请求返回 Expert not found or access denied
委托请求返回 Expert not found or access denied
发起委托的用户对目标专家没有访问权。委托不提权——用户得先购买目标专家。
白名单配了 15 个但只生效 10 个
白名单配了 15 个但只生效 10 个
上限就是 10(
DELEGATION_WHITELIST_MAX)。超出部分被丢弃并记日志。验证
验子智能体:给一个明确应该由某个子智能体处理的任务,在对话的执行轨迹里看是否出现了对应的子任务调用。没出现就是被丢弃了或description 不够明确。
验委托:用一个同时拥有两个专家的账号,在专家 A 里提出一个明显属于专家 B 领域的问题,看 A 是否发起委托。若要精确测试,直接在消息里 @ 提及专家 B——@ 提及会绕过策略强制合并进名册,可以把「策略问题」和「简介写得不好」这两个原因区分开。
真值来源
核对日期 2026-08-11。来源:
- 三遍解析、L1 保留名清单、丢弃规则:
services/agent-runtime/src/harness/subagent/builder.py - 名册安全条件、
coalesce回落、白名单上限 10:services/core/src/db/service/delegation.ts、packages/db/src/schema/config.ts - 委托请求校验与错误响应形态:
services/core/src/routes/agent-proxy/delegate.ts - 字段类型定义:
packages/db/src/schema/marketplace.ts
下一步
Prompt 四层结构
四个输入框各自的注入位置
案例演示与工作区
案例演示配置与工作区种子现状

