协作
协作基础¶
代理交互的核心
CrewAI中的协作是基础,使代理能够结合其技能、共享信息并在任务执行中相互协助,体现了一个真正的合作生态系统。
- 信息共享:确保所有代理都充分了解信息,并通过共享数据和发现有效贡献。
- 任务协助:允许代理在特定任务中寻求具有所需专业知识的同行的帮助。
- 资源分配:通过在代理之间高效分配和共享资源,优化任务执行。
增强属性以改进协作¶
Crew类已通过多个属性丰富,以支持高级功能:
- 语言模型管理(
manager_llm,function_calling_llm):管理用于执行任务和工具的语言模型,促进复杂的代理-工具交互。注意,虽然manager_llm对于确保层次流程的正确执行流是必需的,但function_calling_llm是可选的,提供了默认值以简化工具交互。 - 自定义管理代理(
manager_agent):允许指定一个自定义代理作为管理器,而不是使用CrewAI提供的默认管理器。 - 流程控制(
process):定义执行逻辑(例如,顺序、层次),以简化任务分配和执行。 - 详细日志记录(
verbose):提供详细的日志记录功能,用于监控和调试目的。它支持整数和布尔类型,以指示详细程度。例如,将verbose设置为1可能启用基本日志记录,而将其设置为True则启用更详细的日志。 - 速率限制(
max_rpm):通过限制每分钟的请求,确保资源的有效利用。设置max_rpm的指南应考虑任务的复杂性和资源的预期负载。 - 国际化/自定义支持(
language,prompt_file):促进内部提示的完全自定义,增强全球可用性。应明确记录支持的语言和利用prompt_file属性进行自定义的过程。文件示例 - 执行和输出处理(
full_output):区分完整输出和最终输出,以对任务结果进行细致控制。展示输出差异的示例有助于理解此属性的实际影响。 - 回调和技术监控(
step_callback,task_callback):集成步骤和任务级别的执行监控回调,以及用于性能分析的技术监控。应明确解释task_callback与step_callback一起用于细致监控的目的和用法。 - Crew共享(
share_crew):允许与CrewAI共享crew信息,以持续改进和训练模型。应概述此功能的隐私影响和好处,包括它如何有助于模型改进。 - 使用指标(
usage_metrics):存储所有任务执行期间语言模型(LLM)使用的所有指标,提供操作效率和改进领域的洞察。应提供有关访问和解释这些指标以进行性能分析的详细信息。 - 内存使用(
memory):指示crew是否应使用内存来存储其执行的记忆,以增强任务执行和代理学习。 - 嵌入器配置(
embedder):指定crew用于理解和生成语言的嵌入器配置。此属性支持语言模型提供商的自定义。 - 缓存管理(
cache):确定crew是否应使用缓存来存储工具执行的结果,以优化性能。 - 输出日志记录(
output_log_file):指定用于记录crew执行输出的文件路径。 - 规划模式(
planning):允许crew在执行任务之前规划其行动,通过在创建Crew实例时设置planning=True。此功能增强了协调和效率。 - 重放功能:引入新的CLI,用于列出上次运行的任务并从特定任务重放,增强任务管理和故障排除。
委派:分而治之¶
委派通过允许代理智能地分配任务或寻求帮助,从而增强功能,放大crew的整体能力。
实施协作和委派¶
设置crew涉及定义每个代理的角色和能力。CrewAI无缝管理它们的交互,确保高效的协作和委派,具有增强的自定义和监控功能,以适应各种操作需求。
示例场景¶
考虑一个crew,其中包含一个负责数据收集的研究员代理和一个负责编写报告的作家代理。高级语言模型管理和流程控制属性的集成允许更复杂的交互,例如作家将复杂的研究任务委派给研究员或查询特定信息,从而促进无缝工作流程。
结论¶
高级属性和功能集成到CrewAI框架中,显著丰富了代理协作生态系统。这些增强不仅简化了交互,还提供了前所未有的灵活性和控制力,为能够通过智能协作和委派解决复杂任务的先进AI驱动解决方案铺平了道路。
# 示例代码,展示研究员代理和作家代理的协作
crew = Crew(
agents=[
ResearcherAgent(name="Researcher"),
WriterAgent(name="Writer")
],
manager_llm="gpt-4",
process="hierarchical",
verbose=True,
max_rpm=100,
language="zh",
prompt_file="path/to/prompt_file.json",
full_output=True,
step_callback=my_step_callback,
task_callback=my_task_callback,
share_crew=True,
usage_metrics=True,
memory=True,
embedder="custom_embedder",
cache=True,
output_log_file="path/to/output_log.txt",
planning=True
)
# 执行任务
crew.execute_task("编写关于AI发展的报告")
在这个示例中,研究员代理负责收集和分析数据,而作家代理则利用这些数据编写报告。通过CrewAI的集成功能,两个代理能够高效协作,确保任务顺利完成。
通过这种方式,CrewAI不仅提高了任务执行的效率,还通过智能协作和委派,为解决复杂问题提供了强大的工具。无论是简单的任务分配还是复杂的跨代理协作,CrewAI都能提供灵活且强大的解决方案,推动AI应用的发展。