def execute_plan(self, plan): for step in plan.steps: result = self.execute_step(step) if result.indicates_replanning_needed(): updated_plan = self.planner.replan( original_plan=plan, execution_context=result, remaining_steps=plan.get_remaining_steps() ) return self.execute_with_feedback(updated_plan) plan.update_context(result) return plan.get_final_output() __ __