Skip to main content

功能说明

导入路径:from veadk.tools.builtin_tools.create_agent import CreateAgentToolset CreateAgentToolset 是一个内置工具集,让主智能体在运行时收集可用资源、按任务需要创建一个或多个子智能体,并通过 Google ADK 的 transfer_to_agent 把当前任务移交给指定子智能体。子智能体在同一会话上下文中继续执行并直接给出最终回答。 该工具集对外暴露两个工具:
collect_resources 返回的资源是候选清单,不会自动挂载到子智能体。主智能体必须在每个 LLM 节点的 resources 中显式写入需要使用的每个资源 ref;当清单中存在与任务相关的技能时,至少绑定一个技能。

何时使用

适合以下场景:
  • 主智能体需要根据用户任务临时组建具备特定技能、知识库或工具的专家子智能体,而不在开发期固定子智能体结构。
  • 需要在同一会话上下文中把任务移交给动态创建的子智能体,由子智能体直接向用户输出最终结果。
  • 需要从公共 Skill Hub 或账号下的 Skill Space、知识库与内置工具中按任务匹配资源。
不适合需要严格可控、固定编排拓扑的场景——这类场景应直接在开发期声明静态子智能体树。

依赖与前提

使用前请确认:
  1. 主智能体使用的推理模型已配置 API Key。
  2. 如需收集账号下的 AgentKit 技能中心技能或知识库,需配置火山引擎 AK / SK 或 STS 临时凭证(BytePlus 模式使用 BYTEPLUS_ACCESS_KEY 等)。公共 Skill Hub 检索不需要凭证。
  3. create_agents 必须在由 Runner 驱动的智能体调用链中执行,否则无法注册子智能体并完成移交。
公共 Skill Hub 检索由主智能体根据任务生成关键词完成,无需配置 Space ID。配置 AK/SK 或 STS 后,AgentKit 技能中心会自动检索当前账号可访问的全部 Skill Space。SKILL_SPACE_ID 仅用于将检索范围限制到指定 Space,多个 Space ID 用逗号分隔;兼容旧版 Skill Hub Space 时仍可使用 SKILL_HUB_SPACE_ID。

使用方法

把 CreateAgentToolset() 实例加入 Agent 的 tools 列表即可。主智能体在指令中描述资源收集、蓝图设计与移交的流程,运行时由模型自主决定何时调用两个工具。
dynamic_agent_coordinator.py

资源收集与匹配

collect_resources 默认从以下来源收集资源,并将其统一为带 ref 的候选清单: 收集完成后返回的 collection_id 需要在随后调用 create_agents 时原样传入,用于关联本次收集的资源快照。

智能体蓝图

create_agents 的 agents 参数是一个蓝图列表,每个蓝图描述一个独立构建的根智能体: 蓝图内的节点支持以下类型,具体可用类型取决于已安装的 Google ADK 版本:
workflow 节点仅在 Google ADK 2.0.0 及以上版本可用;低版本下 collect_resources 返回的能力清单会标明当前支持的节点类型,create_agents 也会忽略 workflow 节点。

LLM 节点

LLM 节点是最常用的叶节点,其字段如下:

临时 Python 工具

主智能体可以在 LLM 节点的 python_tools 中提供完整 Python 源码,作为子智能体可调用的工具:
python_tools 中的代码以主智能体身份在当前进程内执行,不经过沙箱隔离。仅应接受受信任源提供的代码,并避免让不可信的输入直接成为可执行源码。

参数

CreateAgentToolset 的构造参数:

限制

  • create_agents 必须在由 Runner 驱动的活跃智能体调用中执行,否则无法注册子智能体并完成移交。
  • 同一会话内每次调用 collect_resources 会覆盖上一次的资源快照;调用 create_agents 会消费对应快照,消费后失效。
  • 动态创建的子智能体注册在当前会话的智能体树中,会话结束后不再保留。
  • python_tools 在当前进程内执行,不做沙箱隔离。
最后修改于 2026年9月19日