Justice minister Simonetta Sommaruga signed the accord on Tuesday during a visit to the South Asian country.
It strengthens cooperation on migration matters and regulates the terms of the repatriations of Sri Lankan nationals following the end of the civil war in the country.
“The new agreement serves to formalise... the existing procedures for mutual cooperation with the Sri Lankan authorities with regard to the readmission of persons who no longer fulfil the conditions for continued residence in [Switzerland],” the Federal Department of Justice and Police said in a statement.
From 1983 to 2009 Switzerland was a popular destination for Tamil refugees. Even today a fear of army and police violence is driving some Tamils from the country's north and east to file asylum requests.
However, the situation has eased with the number of pending requests for asylum declining, according to the State Secretariat for Migration (SEM), the Swiss news agency SDA reported.
The SEM says this is not down to a toughening of asylum policy. After a halt to repatriations for several months, a number of old cases dating back to before the end of the war have now been dealt with.
More recent requests have less chance of success, it said.
The migration agreement is controversial because the human rights situation in Sri Lanka remains unstable.
Human rights groups fear returnees who are suspected of sympathizing with the separatist cause could face arrest and torture.
Sommaruga has rejected this argument, saying that every case will continue to be considered on an individual basis.
A body of experts from both countries will be set up to deal with repatriation problems.
Switzerland could also raise sensitive issues here, notably the Sri Lankan anti-terror law under which people are continuing to be arbitrarily arrested.
According to Wikipedia there are 46,000 to 55,000 Sri Lankans in Switzerland.