diff --git a/metagpt/roles/role.py b/metagpt/roles/role.py index 59b0f9cd6..e63404939 100644 --- a/metagpt/roles/role.py +++ b/metagpt/roles/role.py @@ -417,9 +417,9 @@ class Role(BaseModel): # If there is only one action, then only this one can be performed self._set_state(0) return - if self._recovered and self._rc.state >= 0: + if self.recovered and self._rc.state >= 0: self._set_state(self._rc.state) # action to run from recovered state - self._recovered = False # avoid max_react_loop out of work + self.recovered = False # avoid max_react_loop out of work return prompt = self._get_prefix() diff --git a/metagpt/utils/utils.py b/metagpt/utils/utils.py index b9a8dcb53..33ca16944 100644 --- a/metagpt/utils/utils.py +++ b/metagpt/utils/utils.py @@ -88,6 +88,7 @@ def role_raise_decorator(func): newest_msgs = self._rc.env.memory.get(1) if len(newest_msgs) > 0: self._rc.memory.delete(newest_msgs[0]) + raise Exception(format_trackback_info(limit=None)) # raise again to make it captured outside except Exception as exp: if self._rc.env: newest_msgs = self._rc.env.memory.get(1)