Ver Fonte

feat: new delegate stuck check. (#1677)

Co-authored-by: aaren.xzh <aaren.xzh@antfin.com>
Xia Zhenhua há 1 ano atrás
pai
commit
10b971c612
1 ficheiros alterados com 5 adições e 4 exclusões
  1. 5 4
      opendevin/controller/agent_controller.py

+ 5 - 4
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