|
@@ -184,7 +184,7 @@ class AgentController:
|
|
|
self.state.local_iteration += 1
|
|
self.state.local_iteration += 1
|
|
|
|
|
|
|
|
async def update_state_after_step(self):
|
|
async def update_state_after_step(self):
|
|
|
- # update metrics especially for cost. Use deepcopy to avoid it being modified by agent.reset()
|
|
|
|
|
|
|
+ # update metrics especially for cost. Use deepcopy to avoid it being modified by agent._reset()
|
|
|
self.state.local_metrics = copy.deepcopy(self.agent.llm.metrics)
|
|
self.state.local_metrics = copy.deepcopy(self.agent.llm.metrics)
|
|
|
|
|
|
|
|
async def _react_to_exception(
|
|
async def _react_to_exception(
|
|
@@ -317,9 +317,10 @@ class AgentController:
|
|
|
elif action.source == EventSource.AGENT and action.wait_for_response:
|
|
elif action.source == EventSource.AGENT and action.wait_for_response:
|
|
|
await self.set_agent_state_to(AgentState.AWAITING_USER_INPUT)
|
|
await self.set_agent_state_to(AgentState.AWAITING_USER_INPUT)
|
|
|
|
|
|
|
|
- def reset_task(self) -> None:
|
|
|
|
|
- """Resets the agent's task."""
|
|
|
|
|
|
|
+ def _reset(self) -> None:
|
|
|
|
|
+ """Resets the agent controller"""
|
|
|
self.almost_stuck = 0
|
|
self.almost_stuck = 0
|
|
|
|
|
+ self._pending_action = None
|
|
|
self.agent.reset()
|
|
self.agent.reset()
|
|
|
|
|
|
|
|
async def set_agent_state_to(self, new_state: AgentState) -> None:
|
|
async def set_agent_state_to(self, new_state: AgentState) -> None:
|
|
@@ -337,7 +338,7 @@ class AgentController:
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
if new_state in (AgentState.STOPPED, AgentState.ERROR):
|
|
if new_state in (AgentState.STOPPED, AgentState.ERROR):
|
|
|
- self.reset_task()
|
|
|
|
|
|
|
+ self._reset()
|
|
|
elif (
|
|
elif (
|
|
|
new_state == AgentState.RUNNING
|
|
new_state == AgentState.RUNNING
|
|
|
and self.state.agent_state == AgentState.PAUSED
|
|
and self.state.agent_state == AgentState.PAUSED
|