A method comprising: receiving , by one or more processors, a representation of an utterance spoken at a computing device by a user; identifying , by a first computational agent from a plurality of computational agents and based on the utterance, a multi-element task to be performed; and performing , by the first computational agent, a first sub-set of elements of the multi-element task, wherein performing the first sub-set of elements comprises: selecting a second computational agent from the plurality of computational agents to perform a second sub-set of elements of the multi-element task, the selecting comprising: determining capability levels of respective computational agents of the plurality of computational agents to perform the second sub-set of elements; and responsive to determining that a capability level of a particular agent of the plurality of computational agents is a greatest of the determined capability levels, and that the capability level of the particular agent satisfies a threshold capability level, selecting the particular agent as the second computational agent, wherein: the first computational agent is a first party computational agent and the second computational agent is a third party computational agent, or the first computational agent is a third party computational agent and the second computational agent is a first party computational agent. receiving , by one or more processors, a representation of an utterance spoken at a computing device by a user; identifying , by a first computational agent from a plurality of computational agents and based on the utterance, a multi-element task to be performed; and performing , by the first computational agent, a first sub-set of elements of the multi-element task, wherein performing the first sub-set of elements comprises: selecting a second computational agent from the plurality of computational agents to perform a second sub-set of elements of the multi-element task, the selecting comprising: determining capability levels of respective computational agents of the plurality of computational agents to perform the second sub-set of elements; and responsive to determining that a capability level of a particular agent of the plurality of computational agents is a greatest of the determined capability levels, and that the capability level of the particular agent satisfies a threshold capability level, selecting the particular agent as the second computational agent, wherein: determining capability levels of respective computational agents of the plurality of computational agents to perform the second sub-set of elements; and responsive to determining that a capability level of a particular agent of the plurality of computational agents is a greatest of the determined capability levels, and that the capability level of the particular agent satisfies a threshold capability level, selecting the particular agent as the second computational agent, wherein: the first computational agent is a first party computational agent and the second computational agent is a third party computational agent, or the first computational agent is a third party computational agent and the second computational agent is a first party computational agent. <EOS>