如何将nanobot的子智能体(Subagents)为?

摘要:这篇文章深入解析了 nanobot 的子智能体(Subagents)系统,揭秘其如何通过 `spawn` 工具和 `SubagentManager` 实现复杂任务的并行处理。文章详细拆解了主智能体召唤“分身”的底层流程、子智能体专注任务的独
在处理复杂任务时,我们常常希望 AI 能像人类团队一样协作:主负责人把大任务拆解,分发给几个“小助手”去同步执行,最后汇总结果。 nanobot 通过其独特的 子智能体(Subagents) 系统,完美实现了这种“分身术”。今天我们就来拆解它的实现原理。 1. 核心组件:谁在管理“分身”? nanobot 的子智能体逻辑主要由两个文件驱动: nanobot/agent/tools/spawn.py:定义了 spawn 工具,这是主 Agent 召唤分身的入口。 nanobot/agent/subagent.py:定义了 SubagentManager,负责子智能体的生命周期管理。 2. 召唤流程:从 spawn 到后台任务 当主 Agent 认为某个任务太复杂或太耗时(比如“去搜集 10 个不同网站的信息并对比”),它会调用 spawn 工具。 第一步:工具调用SpawnTool 接收两个参数:task(具体任务描述)和 label(任务标签)。它会将这些信息传递给 SubagentManager。 第二步:创建后台任务SubagentManager 会为每个子智能体生成一个唯一的 task_id,并利用 Python 的 asyncio.create_task 在后台启动一个异步任务。 这意味着:子智能体在后台跑,主 Agent 可以继续和用户聊天,或者去召唤更多的子智能体。 主Agent执行过程: — 3. 子智能体的“超能力”与限制 子智能体并不是主 Agent 的完全克隆,它是一个精简版的 Agent 实例: 独立的工具箱:子智能体拥有读写文件、执行 Shell 命令、网页搜索等能力。 禁止递归:为了防止 AI 陷入无限套娃,子智能体默认没有 spawn 工具(不能再分身)和 message 工具(不能直接给用户发消息)。 专注模式:子智能体拥有独立的 System Prompt,被告知“你是一个被派去完成特定任务的子智能体,请保持专注”。
阅读全文