Unifying distributed constraint algorithms in a BDI negotiation framework