跳转至

在CrewAI中设置特定代理为管理员

CrewAI允许用户将特定代理设置为团队的管理员,从而提供对任务管理和协调的更多控制。此功能使管理角色的自定义能够更好地符合您的项目需求。

使用manager_agent属性

自定义管理代理

manager_agent属性允许您定义一个自定义代理来管理团队。此代理将监督整个过程,确保任务高效且高标准地完成。

示例

import os
from crewai import Agent, Task, Crew, Process

# 定义您的代理
researcher = Agent(
    role="研究员",
    goal="对AI和AI代理进行彻底的研究和分析",
    backstory="您是一位技术、软件工程、AI和初创公司领域的专家研究员。您是一名自由职业者,目前正在为新客户进行研究。",
    allow_delegation=False,
)

writer = Agent(
    role="高级作家",
    goal="创作关于AI和AI代理的引人入胜的内容",
    backstory="您是一位技术、软件工程、AI和初创公司领域的高级作家。您是一名自由职业者,目前正在为新客户撰写内容。",
    allow_delegation=False,
)

# 定义您的任务
task = Task(
    description="生成5个关于文章的有趣想法列表,然后为每个想法写一个吸引人的段落,展示该主题完整文章的潜力。返回想法列表及其段落和您的笔记。",

expected_output="5个要点,每个要点带有一个段落和相应的笔记。",
)

# 定义管理代理
manager = Agent(
    role="项目经理",
    goal="高效管理团队并确保高质量完成任务",
    backstory="您是一位经验丰富的项目经理,擅长监督复杂项目并指导团队取得成功。您的角色是协调团队成员的努力,确保每项任务按时且高标准完成。",
    allow_delegation=True,
)

# 使用自定义管理器实例化您的团队
crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
    manager_agent=manager,
    process=Process.hierarchical,
)

# 开始团队的工作
result = crew.kickoff()

自定义管理代理的好处

  • 增强控制:根据项目的特定需求定制管理方法。
  • 改进协调:由经验丰富的代理确保任务的高效协调和管理。
  • 可定制管理:定义与项目目标一致的管理角色和职责。

设置管理LLM

如果您使用的是分层流程,并且不想设置自定义管理代理,可以指定管理器的语言模型:

from langchain_openai import ChatOpenAI

manager_llm = ChatOpenAI(model_name="gpt-4")

crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
    process=Process.hierarchical,
    manager_llm=manager_llm
)
注意:在使用分层流程时,必须设置manager_agentmanager_llm