ai-python-subagents 是 ai-python(vercel-labs/ai-python)中的技能条目,用途是演示 subagent-as-a-tool 模式:让父模型自行决定何时把另一个智能体当作工具来调用。
主要能力与用法
- 使用 @ai.tool 装饰一个异步函数,声明该工具返回 ai.SubAgentTool。
- 在工具函数内部创建子智能体:child = ai.Agent(tools=[lookup])。
- 构造消息列表,例如系统消息 ai.system_message("Research briefly.") 与用户消息 ai.user_message(topic)。
- 通过 async with child.run(model, messages) as stream 运行子智能体,并用 async for event in stream 逐步产出事件。
结果与事件
- 父模型看到的是子智能体的最终助手文本,作为该工具的结果。
- 调用方看到的是子智能体事件,类型为 ai.events.PartialToolCallResult。
- 渲染嵌套输出时可检查事件类型,例如:if isinstance(event, ai.events.PartialToolCallResult): 且 if isinstance(event.value, ai.events.TextDelta): 则 print(event.value.chunk, end="", flush=True)。
注意事项
- 不要自行把子消息追加到父对话历史;工具结果会以 MessageBundle 形式保存子对话记录。
- 关于 MessageBundle、初步输出以及流式工具的更多细节,请使用 ai-python-streaming-tools。
适用场景
- 需要父模型按需把任务委派给具备独立工具集的子智能体,并以流式方式回传子智能体输出时。
限制
- 除上述原文内容外,关于收费、价格、平台支持、效果或完整分步安装说明暂未提供。