Both single-agent and multi-agent architectures can be used to solve challenging tasks by employing reasoning and tool calling steps. Many methods use multiple iterations of reasoning, memory, and reflection to effectively and accurately complete problems [16; 23; 32]. They often do this by breaking a larger problem into smaller subproblems, and then solving each one with the appropriate tools in sequence.