We have had our house listed with a real estate agent who has had little contact with us in the past 4 months. We have been approached by a private buyer – can we legally break our sales contract?

sure, but you would still pay the agent his commission,, wait until the contract expires
some contracts say that even if the time has expired, the agent is entitled to fee for so many months, read your contract