Combine narrowly smart systems into a single, new system, with the capability of context switching.  For example, the system may be playing chess, and asked about airline reservations.  The “context switch” detection software will order a process to save the current context of the chess game, and switch to checking out airline reservations.

Now, imagine “growing” the systems to switch over four, then eight, then sixteen different “highly specialized” systems.  Further, the system can reuse algorithms that are common for different strategies.  For example, the chess-playing algorithm may have a search tree that has general-purpose needs.  These algorithms will be shared among various “specialty systems”.

Today, there are currently hundreds or thousands of programs that are designed for “highly specialized” purposes.  The context-switching algorithm could gradually learn all of these and more.  In addition, more and more new applications will tend to reuse existing algorithms.

As the system evolves and grows, it will become more and more of a machine with Artificial General Intelligence.