feat: new delegate stuck check. (#1677)

Co-authored-by: aaren.xzh <aaren.xzh@antfin.com>
This commit is contained in:
Xia Zhenhua 2024-05-10 09:06:20 +08:00 committed by GitHub
parent e63910263c
commit 10b971c612
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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