Most of this answer comes from material in
Alkire, Ti, and Rosen, Carol. Romance languages: A historical introduction. Cambridge University Press, 2010
However this answer is a bit more speculative that my previous answer with the same source, because I couldn't find a complete treatment of the evolution of sapĕo either in that book or anywhere else. So the following answer is essentially me applying the regular changes found in that book (in particular the existence "analogic group" {sapere, fare, dare, stare, avere}) to this special case and describing what happens. I'm not a linguist, neither by formation nor by trade, so a lot of the explanations I write might be rubbish. The reconstructed and attested forms however do come from the book, so they should be reliable.
The Italian verb sapere (as the French savoir and Spanish saber) comes from Latin sapĕre, which is one of the few Latin verbs of the III conjugation that got pushed to the II (hence becoming **sapēre). Let us take a look at its reconstructed conjugation in Vulgar Latin and its attested Old Italian forms.
Vulgar Latin | Old Italian
----------------------------------------------------------
*sapĕo > *sapio | sàccio/sappo/sao
*sapes > *sapei | sapi
*sapet > *sape | sape
*sapēmus > *sapemoi | sapemo > sapiamo
(*sapēte) > *sapete | sapete
*sapent > *sapen | sàcciono
Note that in the plural first person, the original form (*sapētis) got replaced by the imperative form in all Italian verbs. Similarly, the plural first person got replaced by the present subjunctive form (*sapeamus) (possibly because of the imperative value of present subjunctive).
In the passage to Old Italian, the third person plural is replaced by an analogic form obtained from the first person singular, probably because the original third plural forms were perceived as apocopes (for whatever reason, Italian developed a strong link between the first singular and third plural forms in all its verbs). Moreover the first singular form regularly turned the yod in a gemination of the previous consonant (possibly accompanied by palatalization).
The form sao, the one that prevailed in the end, is more mysterious. The best guess I can give is that it was interpreted as part of a family of very common verbs ending with -ao at the singular first person: vao > vo, fao > fo, *dao > do, *stao > sto (where most of them got this form from a regular lenition). The same phenomenon should be responsible for the change *ajo> ho (and not the attested aggio) and for the apocopes that happen at the other singular forms (again, the third plural form is probably dragged by analogy with the first singular). This seems also to be the interpretation in Rohlfs, G. Grammatica storica dell'italiano e dei suoi dialetti (pg.284, my translation)
The present of 'sapere'. The current Tuscan inflection sò, sai, sa, sappiamo (early sapemo), sapete, sanno shows a clear connection with the conjugation of hò, stò, dò, vò, fò. The ancient step of sò can be seen in the sao of the «Carte capuane» (960 d.C.). Ancient forms are saccio 'I know' (Guido Cavalcanti, Forese) and sape 'he knows' (Purg. 18,56, uom non sape). The first form is perhaps modelled on faccio and taccio, but it propagated also by the influx of the Sicilian poetic school: cfr. Sicilian and Calabrian sacciu.
So we end up with the modern forms
sao > so
sai
sa
sappiamo
sapete
sanno
(In fact it is almost certain that the attested form sao is a residual that survived in Campania, and that most of Italy was already using so at a very early period).
sappiamo
isn't irregular, because of regular gemination befor/j/
. See e.g.doppio
< Lat.duplus
.