Currently, all sub-agents are implemented using the pre-built ReAct (Reason + Act) agent. It is likely that implementing the agents as custom graphs would yield better, more predictable outcomes. This has to be discovered and evaluated.
Note: this issue can probably be broken down to multiple issues, each dedicated to transforming a single sub-agent.