1. A method performed by a device comprising a processor and a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the device to perform the method, the method comprising: receiving, by a personal agent executing on the device, personal information relating to a user of the device, the personal information being provided by a plurality of trusted components included in a plurality of applications executing on the device, wherein the personal information comprises location information obtained by one or more location sensors of the device; accessing, by the personal agent via an interface of the device, one or more interest ontologies from one or more first content providers; generating, by the personal agent based on the personal information, a personal ontology graph for the user, the personal ontology graph comprising location nodes relating to the user derived from at least one or more inferences based on the location information and the one or more interest ontologies; receiving, by the personal agent via the interface, a plurality of first content items from the one or more first content providers; receiving, by the personal agent via the interface, an objective function from a second content provider; selecting, by the personal agent, based at least in part on the personal ontology graph and the objective function, a content item of the plurality of first content items for rendering in connection with a second content item associated with the second content provider; and rendering, by the device, the selected content item of the first content items in connection with the second content item, wherein the personal ontology graph further comprises at least one attribute of an edge associating a node representing the user with a node representing an interest.