Agent团队协作:从临时工到专业团队
subagent就像找来的临时工 创建——干活——返回摘要——解散没有身份没有记忆。如果有一个复杂的项目需要一个前端、一个后端、一个测试来协作完成那么subagent就做不到了。如果需要干这个活那么需要组建一个团队这个团队中的成员都有专属的角色和岗位当然每个成员都有其自己的岗位职责。这意味着agent要有记忆记得之前做过什么agent有身份和生命周期agent有名字、角色、是一个正式且长期的员工。多agent之间可通信agent之间可以互相发送消息基于以上的需求可以使用两个类实现这个agent。Agentname、role、inbox、messageschat和LLM交互如果inbox有新消息先读取并消化receive往收件箱追加消息Teamcreate创建agentsend点对点通信broadcast广播clear解散团队多agent团队协作teamTeam()# 组件团队mumberscreate_team(task)forminmumbers:team.create(m[name],m[role])# 逐个执行每个agent干完活后通知所有团队成员forminmumbers:agentteam.agents[m[name]]resultteam.agents[m[task]]team.broadcast(m[name],f我完成了任务摘要:{result[:200]})# 最后一个团队成员做reviewreviewerteam.agents[members[-1][name]]reviewreviewer.chat(请根据团队成果做最终审查)# 项目收尾解散团队team.clear()从 subagent到Agent类 messages从局部变量变成了实例属性这一变化让agent有了长期记忆。 对于编程来说数据存放的位置决定了它的生命周期生命周期决定了该数据块的影响范围和能力边界能力越强责任越大agent干的活越多、多个agent之前的协作越复杂messages列表越长如果不加以控制会在多轮对话之后撑爆LLM的context window。