Skip to main content

委派任务

Subagent 通过 Task 或 MultiTask 接收委派。SDK 3.0 将每个 Agent 的能力显式隔离:子 Agent 不会自动继承父 Agent 的自定义 Tool、连接 Tool 或 Skill。

能力模型

每个 Agent 运行在 RuntimeEnvironment(Runtime-global,继承自 Session)之上,并携带自己的 AgentCapabilities(Agent-local,不继承、不回退):
  • 继承(Runtime-global):Provider、模型、凭据、cwd、子进程环境变量、运行时服务(askUser / config / webSearch / webFetch / cron 以引用共享)以及内建 Tool 实现。
  • 隔离(Agent-local)prompt / appendPrompt / maxTurns 以及所有 capabilities 字段。不存在 child.X ?? parent.X 回退:未设置的能力解析为子 Agent 自己的空值,同级 subagent 之间也互不可见。
委派深度固定为 1:派生 subagent 时移除 Task 与 MultiTask。

根 Agent 合并规则

根 Agent 的 capabilities 来自每次请求的有效定义(query() 覆盖优先于构造函数配置)。Tool 来源与顶层选项取并集,顶层在前:
同名能力条目覆盖其顶层同名项(后者优先去重)。capabilities.skills 替换注册表视图;未设置的能力字段回退到顶层行为——绝不反向。

解析顺序

Explore 过滤器是作用于最终 Tool 池的动态安全策略,而非静态 deny list。MCP annotations.readOnlyHint 映射为 isReadOnly,因此只读 MCP Tool 可在 Explore subagent 中使用,并加入只读并发批次。 findTool 注册表按 Agent 隔离:每次派生获得全新目录(subagent 不会覆盖父 Agent 的延迟注册表),而父 Agent 的激活记录仍像以前一样跨请求保留。

迁移(2.x → 3.0)

委派前应明确配置子 Agent 的任务和可用能力,避免依赖父 Agent 的隐式配置。