协作与规划
一群孤立的天才并不能组成一个团队。CrewAI的力量在于Agent如何互动、共享上下文并规划其执行。在本章中,我们将深入探讨你的AI团队的社交动态。
协作:Agent如何对话
Section titled “协作:Agent如何对话”默认情况下,CrewAI中的Agent会感知到它们的同伴。当allow_delegation设置为True时(许多配置的默认值,但建议明确控制),Agent可以将任务传递给彼此,或向团队内的专家提出特定问题。
例如,一个“研究员”Agent可能意识到它缺乏特定的法律上下文。如果团队中存在一个“法律顾问”Agent,研究员可以直接查询顾问,而无需人工干预。
researcher = Agent( role="Researcher", goal="Find data", backstory="...", allow_delegation=True # 允许向其他Agent寻求帮助)
writer = Agent( role="Writer", goal="Write report", backstory="...", allow_delegation=False # 此Agent亲自执行任务)在匆忙执行之前,通常最好三思而后行。CrewAI引入了一个规划功能,在Crew生命周期开始时增加了一个特殊步骤。
当Crew配置中启用planning=True时,CrewAI使用LLM来消化所有任务描述和Agent角色。然后,它制定一个分步计划,该计划被添加到每个Agent的上下文中。这确保所有Agent在开始其各自任务之前都在全局策略上保持一致。
my_crew = Crew( agents=[researcher, writer], tasks=[task1, task2], planning=True, # 启用预执行策略阶段 planning_llm=ChatOpenAI(model="gpt-4o") # 可选:指定一个规划模型)推理:窥探黑箱
Section titled “推理:窥探黑箱”理解Agent做出决策的原因对于调试和信任至关重要。CrewAI通过其ReAct(推理和行动)实现提供了强大的推理能力。
为了检查这个过程,你可以使用verbose标志。这会输出Agent的内心独白:思想(它想做什么)、行动(工具使用)和观察(工具的结果)。
将推理记录到文件
Section titled “将推理记录到文件”对于长时间运行的进程,盯着控制台是不切实际的。你可以将此推理持久化到文件,以便后续审计。
my_crew = Crew( agents=[...], tasks=[...], verbose=True, output_log_file="crew_execution_logs.txt")审查这些日志可以帮助你发现Agent反复尝试相同的失败工具输入,或Agent幻觉出某种工具能力的实例,从而帮助你完善你的backstory或tool定义。