主题
kickoff 前后的钩子
了解如何在 CrewAI 中使用 kickoff 前后的钩子
CrewAI 提供了钩子,允许你在 crew 的 kickoff 之前和之后执行代码。这些钩子适用于预处理输入或后处理结果。
kickoff 前的钩子
kickoff 前的钩子在 crew 开始其任务之前执行。它接收输入字典,并可以在将其传递给 crew 之前对其进行修改。你可以使用此钩子来设置环境、加载必要数据或预处理输入。在输入数据需要先经过丰富或校验再交由 crew 处理的场景中,这很有用。
以下是在你的 crew.py 中定义 kickoff 前函数的示例:
python
from crewai import CrewBase
from crewai.project import before_kickoff
@CrewBase
class MyCrew:
@before_kickoff
def prepare_data(self, inputs):
# Preprocess or modify inputs
inputs['processed'] = True
return inputs
#...在此示例中,prepare_data 函数通过添加一个新的键值对来修改输入,表示输入已被处理。
kickoff 后的钩子
kickoff 后的钩子在 crew 完成其任务之后执行。它接收 result 对象,其中包含 crew 执行的输出。此钩子非常适合后处理结果,例如日志记录、数据转换或进一步分析。
以下是你可以在你的 crew.py 中定义 kickoff 后函数的方式:
python
from crewai import CrewBase
from crewai.project import after_kickoff
@CrewBase
class MyCrew:
@after_kickoff
def log_results(self, result):
# Log or modify the results
print("Crew execution completed with result:", result)
return result
# ...在 log_results 函数中,crew 执行的结果会被直接打印出来。你可以扩展它以执行更复杂的操作,例如发送通知或与其他服务集成。
同时使用两个钩子
两个钩子可以一起使用,为 crew 的执行提供完整的设置与清理流程。它们特别有助于通过分离关注点来保持整洁的代码架构,并增强你 CrewAI 实现的模块化程度。
结论
CrewAI 中的 kickoff 前后钩子提供了与团队执行生命周期交互的强大方式。通过理解并使用这些钩子,你可以极大增强 AI 智能体的健壮性和灵活性。