The qualitative leap: from Python routing on model output to the model picking what happens next. This changes everything about how agents behave.
Traditional agent design: the model produces text, Python reads it, a router function calls the next node. The model is a component. The routing is code. In this architecture, the model is the router. It reads tool docstrings and decides. No if-statements. No hard-coded paths. The model owns the decision.
This is where the architecture shift happens. The model receives a menu and decides.
Two tools. Both first-class. Both documented. The model reads both before choosing.
Why this matters for agent design
When the model chooses, you design tools differently. Every tool needs a clear contract. Every docstring is a prompt. Add a tool and the model can use it tomorrow. Remove a tool and the model adapts. The architecture is extensible by documentation, not by code changes to a routing function. That's the qualitative leap.