From 6e7afb732fd6b7bb7056fc83c4c34f4aabfce9f0 Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Sat, 4 Apr 2026 22:41:59 +0800 Subject: [PATCH] fix: avoid duplicating LLM hooks on checkpoint restore --- lib/crewai/src/crewai/agents/crew_agent_executor.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/crewai/src/crewai/agents/crew_agent_executor.py b/lib/crewai/src/crewai/agents/crew_agent_executor.py index c8bc1a0dc..83b9b6de3 100644 --- a/lib/crewai/src/crewai/agents/crew_agent_executor.py +++ b/lib/crewai/src/crewai/agents/crew_agent_executor.py @@ -136,8 +136,10 @@ class CrewAgentExecutor(BaseAgentExecutor): def __init__(self, i18n: I18N | None = None, **kwargs: Any) -> None: super().__init__(**kwargs) self._i18n = i18n or get_i18n() - self.before_llm_call_hooks.extend(get_before_llm_call_hooks()) - self.after_llm_call_hooks.extend(get_after_llm_call_hooks()) + if not self.before_llm_call_hooks: + self.before_llm_call_hooks.extend(get_before_llm_call_hooks()) + if not self.after_llm_call_hooks: + self.after_llm_call_hooks.extend(get_after_llm_call_hooks()) if self.llm and not isinstance(self.llm, str): existing_stop = getattr(self.llm, "stop", []) self.llm.stop = list(