Letting the model pick its own next action and loop — calling tools, reading the results, deciding for itself when it's finished.