From 10b971c612cb8ac66033e80971671490f1b99cc0 Mon Sep 17 00:00:00 2001 From: Xia Zhenhua Date: Fri, 10 May 2024 09:06:20 +0800 Subject: [PATCH] feat: new delegate stuck check. (#1677) Co-authored-by: aaren.xzh --- opendevin/controller/agent_controller.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/opendevin/controller/agent_controller.py b/opendevin/controller/agent_controller.py index 512db7ed88..43ea966a81 100644 --- a/opendevin/controller/agent_controller.py +++ b/opendevin/controller/agent_controller.py @@ -187,7 +187,7 @@ class AgentController: self.agent.reset() async def set_agent_state_to(self, new_state: AgentState): - logger.info(f'Setting agent state from {self._agent_state} to {new_state}') + logger.info(f'Setting agent({type(self.agent).__name__}) state from {self._agent_state} to {new_state}') if new_state == self._agent_state: return @@ -201,9 +201,7 @@ class AgentController: self._cur_step += 1 if self.agent_task is not None: self.agent_task.cancel() - elif new_state == AgentState.STOPPED: - await self.reset_task() - elif new_state == AgentState.FINISHED: + elif new_state == AgentState.STOPPED or new_state == AgentState.ERROR or new_state == AgentState.FINISHED: await self.reset_task() await self.event_stream.add_event( @@ -291,6 +289,9 @@ class AgentController: return self.state def _is_stuck(self): + # check if delegate stuck + if self.delegate and self.delegate._is_stuck(): + return True if ( self.state is None or self.state.history is None