Allora non c'è nessuna informazione utile nella tabella AGENTI.

La query diventa:

$agenteloggato = $_SESSION[idagenti];

SELECT COUNT(*) AS nonletti
FROM comunicazioni
WHERE (id_agenti = $agenteloggato) AND (messaggio_letto = 'no')

Ho messo "no", ma non so nel DB come l'hai impostato. Se è un intero 0/1 modifica la query di conseguenza, ovviamente...