Kickoff 前后钩子
CrewAI 提供了钩子,允许你在 crew kickoff 之前和之后执行代码。这些钩子 适合用于在执行前处理输入,或在执行后处理结果。
Kickoff 前钩子
Section titled “Kickoff 前钩子”before kickoff 钩子会在 crew 开始任务之前执行。它接收输入字典,并且可以 在把输入传给 crew 之前对其进行修改。你可以用这个钩子来设置环境、加载 必要数据,或预处理输入。当输入数据在处理前可能需要补充或校验时,这很 有用。
下面是在 crew.py 中定义 before kickoff 函数的示例:
from crewai import CrewBasefrom crewai.project import before_kickoff
@CrewBaseclass MyCrew: @before_kickoff def prepare_data(self, inputs): # 预处理或修改输入 inputs['processed'] = True return inputs
#...在这个示例中,prepare_data 函数通过添加一个新的键值对来修改输入,
表示这些输入已经被处理过。
Kickoff 后钩子
Section titled “Kickoff 后钩子”after kickoff 钩子会在 crew 完成任务之后执行。它接收结果对象,其中包含 crew 执行的输出。这个钩子非常适合做结果后处理,例如日志记录、数据转换 或进一步分析。
下面是在 crew.py 中定义 after kickoff 函数的方法:
from crewai import CrewBasefrom crewai.project import after_kickoff
@CrewBaseclass MyCrew: @after_kickoff def log_results(self, result): # 记录或修改结果 print("Crew execution completed with result:", result) return result
# ...在 log_results 函数中,crew 执行结果只是被打印出来。你也可以扩展它,
执行更复杂的操作,比如发送通知或与其他服务集成。
同时使用两个钩子
Section titled “同时使用两个钩子”这两个钩子可以一起使用,为 crew 的执行提供完整的前置和后置处理流程。 它们特别适合保持代码架构整洁,因为它们将职责分离,并提升 CrewAI 实现 的模块化程度。
CrewAI 的 kickoff 前后钩子提供了与 crew 执行生命周期交互的强大方式。通过 理解并使用这些钩子,你可以大幅提升 AI agents 的健壮性和灵活性。