跳转到内容

常见问题

层级流程中的任务执行是如何处理的?

在层级流程中,会自动创建一个 manager agent 来协调工作流,分派任务并验证结果,从而实现流畅且高效的执行。manager agent 会使用工具,协助在其指导下的 agents 进行任务分配和执行。manager LLM 对于层级流程至关重要,必须正确配置才能正常工作。

在哪里可以获取最新的 CrewAI 文档?

CrewAI 最新、最完整的文档可在我们的官方文档网站获取:https://docs.crewai.com/

CrewAI 中 Hierarchical 和 Sequential Processes 的关键区别是什么?
  • 任务按照结构化的指挥链进行分派和执行
  • 必须为 manager agent 指定一个 manager language model (manager_llm)
  • manager agent 负责监督任务执行、规划、分派和验证
  • 任务不会预先分配;manager 会根据各 agents 的能力来分派任务
  • 任务按顺序依次执行,确保按有序流程完成
  • 一个任务的输出会作为下一个任务的上下文
  • 任务执行遵循任务列表中的预定义顺序

Which Process is Better for Complex Projects?

Section titled “Which Process is Better for Complex Projects?”

Hierarchical process 更适合复杂项目,因为它允许:

  • 动态任务分配和分派:manager agent 可以根据 agent 能力分配任务
  • 结构化验证与监督:manager agent 会审查任务输出并确保完成
  • 复杂任务管理:在 agent 级别精确控制工具可用性
在 CrewAI 框架中使用 memory 有哪些好处?
  • Adaptive Learning:crews 会随着时间推移变得更高效,适应新信息并改进任务处理方式
  • Enhanced Personalization:memory 使 agents 能记住用户偏好和历史交互,从而提供个性化体验
  • Improved Problem Solving:访问丰富的 memory store 有助于 agents 做出更明智的决策,并利用过去的经验和上下文洞察
为 agent 设置最大 RPM 限制的目的是什么?

为 agent 设置最大 RPM 限制,可防止 agent 对外部服务发起过多请求,从而帮助避免速率限制并提升性能。

human input 在 CrewAI crew 内执行任务时扮演什么角色?

当有必要时,human input 允许 agents 请求额外信息或澄清。这在复杂决策流程中尤为重要,或者当 agents 需要更多细节来有效完成任务时。

要将 human input 集成到 agent 执行中,请在任务定义中设置 human_input 标志。启用后,agent 会在交付最终答案前提示用户输入。这些输入可以提供额外上下文、澄清歧义,或验证 agent 的输出。

如需详细实现指南,请参见我们的 Human-in-the-Loop 指南

CrewAI 中有哪些高级自定义选项可用于定制和增强 agent 行为与能力?

CrewAI 提供了一系列高级自定义选项:

  • Language Model Customization:可以为 agents 指定特定的 language model (llm) 和 function-calling language model (function_calling_llm)
  • Performance and Debugging Settings:调整 agent 的性能并监控其操作
  • Verbose Mode:启用 agent 操作的详细日志,便于调试和优化
  • RPM Limit:设置每分钟最大请求数 (max_rpm)
  • Maximum Iterationsmax_iter 属性允许用户定义 agent 对单个任务可执行的最大迭代次数
  • Delegation and Autonomy:通过 allow_delegation 属性控制 agent 是否可以委派或提问(默认:True)
  • Human Input Integration:agents 在需要时可以请求额外信息或澄清
human input 在哪些场景下对 agent 执行特别有用?

human input 在以下情况下尤其有用:

  • Agents 需要额外信息或澄清:当 agents 遇到歧义或数据不完整时
  • Agents 需要做复杂或敏感决策:human input 可以帮助进行伦理或细致的决策
  • 监督并验证 agent 输出:human input 可以帮助验证结果并防止错误
  • 定制 agent 行为:human input 可以提供反馈,随着时间推移改进 agent 的响应
  • 识别并解决错误或限制:human input 有助于弥补 agent 能力缺口
CrewAI 中可用的 memory 类型有哪些?

CrewAI 中可用的 memory 类型包括:

  • Short-term memory:用于即时上下文的临时存储
  • Long-term memory:用于学习到的模式和信息的持久存储
  • Entity memory:聚焦于特定实体及其属性的存储
  • Contextual memory:在交互之间维持上下文的 memory

了解更多不同类型的 memory:

如何在 Task 中使用 Output Pydantic?

要在 task 中使用 Output Pydantic,你需要把任务的预期输出定义为一个 Pydantic model。下面是一个快速示例:

  1. 定义 Pydantic model
    from pydantic import BaseModel
    class User(BaseModel):
    name: str
    age: int
  2. 创建带有 Output Pydantic 的 task
    from crewai import Task, Crew, Agent
    from my_models import User
    task = Task(
    description="Create a user with the provided name and age",
    expected_output=User, # This is the Pydantic model
    agent=agent,
    tools=[tool1, tool2]
    )
  3. 在 agent 中设置 output_pydantic 属性
    from crewai import Agent
    from my_models import User
    agent = Agent(
    role='User Creator',
    goal='Create users',
    backstory='I am skilled in creating user accounts',
    tools=[tool1, tool2],
    output_pydantic=User
    )

下面是一个教程,讲解如何持续从 agents 获取结构化输出:

如何为我的 CrewAI agents 创建自定义工具?

你可以通过继承 CrewAI 提供的 BaseTool 类,或者使用工具装饰器来创建自定义工具。通过继承,你可以定义一个继承自 BaseTool 的新类,指定名称、描述,以及用于业务逻辑的 _run 方法。工具装饰器允许你直接使用所需属性和函数式逻辑创建一个 Tool 对象。

CrewAI Tools 指南
如何控制整个 crew 每分钟可执行的最大请求数?

max_rpm 属性会设置 crew 每分钟可执行的最大请求数,以避免速率限制;如果你设置了它,它会覆盖单个 agents 的 max_rpm 设置。