Identification of agent abilities within a header of some sort, and subcontractor request/queries based upon service requirements beyond initial agent, should solve much of this.

It is however a long way away from lateral thinking and the ability to draw upon other resources in a intuitive fashion.

Though there would have to be some kind of standardisation which perhaps would place boundaries, which is kind of against our ethos. Bens ontologies post suggested a way to categories services.