Italy has been on the front line of migrants arriving across the Mediterranean and has been pushing for agreements with governments in North Africa to facilitate returns.
"The bodies of eight people have been recovered. Four people have been saved, and they say 107 migrants were onboard the boat in all," the agency's press office said.
Search operations were continuing after nightfall in poor weather and sea conditions, it said.
A French warship, patrolling under the EU's Frontex border operation, picked up the survivors and two merchant ships were heading for the area, located about 50 kilometres (30 miles) north of the Libyan coast.
A Frontex plane and an Italian naval helicopter also joined the operation.
On Friday, around 550 migrants were picked up from four inflatable dinghies by Italian coastguard vessels, an an Italian naval ship, an NGO boat and a merchant vessel.
In recent years Italy has been on the front line of migrants arriving across the Mediterranean and has been pushing for agreements with governments in North Africa to facilitate returns.
People-smugglers have exploited the chaos in Libya since the 2011 uprising that overthrew dictator Moamer Kadhafi to traffic migrants in boats to Italy 300 km (185 miles) away.
According to the Italian interior ministry, over 180,000 migrants landed in Italy last year, an annual record.
The UN has said more than 5,000 people died in 2016 trying to cross the Mediterranean, most of them on the Libya-Italy route.
In another incident, the bodies of six migrants were found washed up on beaches near Algeciras, the port on the southern tip of Spain near Gibraltar, the Spanish sea rescue service said on Saturday.
The six were all men, apparently from sub-Saharan Africa.