diff --git a/metagpt/roles/ml_engineer.py b/metagpt/roles/ml_engineer.py index 9c1fc2dc0..53d693c8e 100644 --- a/metagpt/roles/ml_engineer.py +++ b/metagpt/roles/ml_engineer.py @@ -60,13 +60,14 @@ class WriteTaskGuide(Action): return "" class MLEngineer(Role): - def __init__(self, name="ABC", profile="MLEngineer", goal=""): + def __init__(self, name="ABC", profile="MLEngineer", goal="", auto_run: bool = False): super().__init__(name=name, profile=profile, goal=goal) self._set_react_mode(react_mode="plan_and_act") self.plan = Plan(goal=goal) self.use_tools = False self.use_task_guide = False self.execute_code = ExecutePyCode() + self.auto_run = auto_run async def _plan_and_act(self): @@ -133,11 +134,13 @@ class MLEngineer(Role): return code, result, success async def _ask_review(self): - context = self.get_useful_memories() - review, confirmed = await AskReview().run(context=context[-5:], plan=self.plan) - if review.lower() not in ("confirm", "y", "yes"): - self._rc.memory.add(Message(content=review, role="user", cause_by=AskReview)) - return confirmed + if not self.auto_run: + context = self.get_useful_memories() + review, confirmed = await AskReview().run(context=context[-5:], plan=self.plan) + if review.lower() not in ("confirm", "y", "yes"): + self._rc.memory.add(Message(content=review, role="user", cause_by=AskReview)) + return confirmed + return True async def _update_plan(self, max_tasks: int = 3): plan_confirmed = False