Methods, systems, and apparatus, including computer programs encoded on computer storage media, for implementing an intelligence aggregation system. One of the methods includes receiving, by an agent, one or more goal criteria. A search to identify one or more other agents in the system is performed. Connections with the one or more other agents are established, with each connection having an initial weight. Data outputs generated by each connected agent are received to iteratively update a model using the received data outputs and associated weights. If the current model generated from current weights for the connections of the one or more connected agents satisfies the one or more goal criteria, the output of the current model is published to a search engine.