Skip to main content
有两套完全不同的「分工」机制,配置项也在不同地方:
  • 子智能体(subagents)你的专家内部的分工。你声明若干个带独立系统提示词和工具白名单的子角色,主智能体把子任务派给它们。
  • 委托(delegation)跨专家协作。用户的另一个专家来找你的专家干活,或反过来。
两者互不相通——子智能体拿不到跨专家能力,这是硬约束,下面会讲到具体是怎么拦的。
本页内容核对日期 2026-08-11,来源见页尾「真值来源」。

子智能体

规格结构

每个子智能体是一个对象,五个字段:
model 允许你做模型异构:让扫描类子智能体跑便宜快速的模型,判断类子智能体跑强模型。

工具白名单的三遍解析

你写的 tools 是文本名字,运行时要把它解析成真实工具对象。解析分三遍,顺序固定: 第一遍——拒绝 L1 保留名。 以下六个名字无论如何都不会给子智能体: 这个清单是写死在代码里的名字集合,不是查工具注册表得出的。原因很实在:如果靠查注册表,某个 L1 工具还没实现时查不到,守卫就静默失效了。名字在清单里就是保留的,与它是否已实现无关。 第二遍——展开通配符。 支持 *(全部)和 mcp__server__* 这类前缀模式,对主智能体的工具集做匹配。 第三遍——精确匹配剩余名字,解析不到的直接丢弃。 运行时不会凭空造工具。你写了一个不存在的工具名,它会被静默丢掉(记录在构建报告里),不会报错。 通配符也过一遍保留名检查——你写 "tools": ["*"] 拿不到 delegate,第二道防线会把它拦下。

会被丢弃的规格

以下情形下你的子智能体不会出现在运行时,而且不报错: 最后两条最容易踩:
  • 零工具会被丢,设计上的理由是「没有工具的子智能体就是个纯推理者,和通用子智能体重复」。所以你想要一个纯思考型子智能体,得至少给它一个能解析到的工具。
  • 重名先到先得,且平台内置子智能体排在你的前面。你的子智能体如果和内置的重名,你的那个会被丢掉。
这些丢弃都是静默的——发布不会失败,只是运行时那个子智能体不存在。症状是「主智能体从来不派活给它」。排查时先确认 tools 里至少有一个名字能在主智能体工具集里解析到。

跨专家委托

委托由三个配置和一层访问控制共同决定。

delegatable(布尔,默认 true)

你的专家能不能被别的专家委托。默认开启。 它被校验两次:一次在构建名册时(不可委托的专家不进名册),一次在真正发起委托请求时(纵深防御)。第二次拦下时返回:
注意返回的 HTTP 状态是 200,业务结果在 body 里的 status: "failed" + error 字段。委托失败被建模成「任务结果」而非「请求错误」,因为发起方是模型不是人。

delegationBrief(文本,可空)

其他专家的模型看的能力简介。它决定别的专家在什么情况下会想到来找你。 回落规则写在 SQL 里:
不填就用 description 顶上。但两者受众不同:
  • description 写给看——出现在市场卡片上,要有吸引力
  • delegationBrief 写给模型看——要说清「什么输入交给我、我产出什么」
一个对比:
后者显著提高被正确委托的概率,也减少了被错误委托后浪费的调用。

名册注入策略

主专家能看到哪些专家,由用户侧的委托策略决定: 不管哪种策略,用户在消息里 @ 提到的专家都会额外合并进名册,走同一套安全条件。

安全条件(四条,全部必须满足)

任何专家要进入名册,必须同时满足:
外加一条:排除当前专家自己,不允许自我委托。 第一条是关键——委托不会给用户带来越权。用户没买过的专家,别的专家也委托不到。

两者的边界

子智能体拿不到 delegate 工具,这条边界在两个地方各拦一次:规格里显式写 delegate 被第一遍拒绝,写 * 通配则被第二遍拦下。 设计意图是权限不能通过嵌套逃逸。如果子智能体能委托,那么「用户授权专家 A 使用」就会传递成「A 的子智能体也能调用 B」,授权边界变得不可推理。

边界与失败态

按顺序查三点:① 规格是否被丢弃(最常见是 tools 全部解析不到,导致零工具丢弃);② description 是否说清了适用场景——主智能体靠它决定派不派活,写得含糊就不会被选中;③ 是否与内置子智能体重名被先到先得挤掉。
白名单里的工具必须存在于主智能体的工具集里。你不能给子智能体主智能体自己都没有的工具——解析是对父工具集做交集。先确认对应插件在这个专家上是启用的。
你的 delegatable 被关掉了。到 Studio 打开即可。注意 HTTP 状态是 200,错误在响应体里,不要按 4xx 去排查。
发起委托的用户对目标专家没有访问权。委托不提权——用户得先购买目标专家。
上限就是 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.tspackages/db/src/schema/config.ts
  • 委托请求校验与错误响应形态:services/core/src/routes/agent-proxy/delegate.ts
  • 字段类型定义:packages/db/src/schema/marketplace.ts

下一步

Prompt 四层结构

四个输入框各自的注入位置

案例演示与工作区

案例演示配置与工作区种子现状