功能说明
导入路径:from veadk.tools.builtin_tools.create_agent import CreateAgentToolset
CreateAgentToolset 是一个内置工具集,让主智能体在运行时收集可用资源、按任务需要创建一个或多个子智能体,并通过 Google ADK 的 transfer_to_agent 把当前任务移交给指定子智能体。子智能体在同一会话上下文中继续执行并直接给出最终回答。
该工具集对外暴露两个工具:
collect_resources 返回的资源是候选清单,不会自动挂载到子智能体。主智能体必须在每个 LLM 节点的 resources 中显式写入需要使用的每个资源 ref;当清单中存在与任务相关的技能时,至少绑定一个技能。何时使用
适合以下场景:- 主智能体需要根据用户任务临时组建具备特定技能、知识库或工具的专家子智能体,而不在开发期固定子智能体结构。
- 需要在同一会话上下文中把任务移交给动态创建的子智能体,由子智能体直接向用户输出最终结果。
- 需要从公共 Skill Hub 或账号下的 Skill Space、知识库与内置工具中按任务匹配资源。
依赖与前提
公共 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 源码,作为子智能体可调用的工具:
参数
CreateAgentToolset 的构造参数:
限制
create_agents必须在由Runner驱动的活跃智能体调用中执行,否则无法注册子智能体并完成移交。- 同一会话内每次调用
collect_resources会覆盖上一次的资源快照;调用create_agents会消费对应快照,消费后失效。 - 动态创建的子智能体注册在当前会话的智能体树中,会话结束后不再保留。
python_tools在当前进程内执行,不做沙箱隔离。