One to three years, with a review after the first year. Shorter is almost always too short, and open-ended is not freedom but a postponed conversation.
Why not shorter than a year
A new agency does not know your brand. The first months are learning costs: questions you have answered before, a first proposal that is still off, a team that does not yet sense your sensitivities. That investment only pays back in the second year.
A six-month contract means paying those learning costs twice a year, and giving the agency no interest in investing in you.
Why not longer than three years
After three years there is a good chance their team has turned over, your own need has shifted, and the price is no longer in line with the market without anyone noticing. A longer term without review is an invitation to sit still.
The form that works best
A first term of one year, renewable in one or two-year steps, with a real review before each renewal. Not a tick box but a two-hour conversation based on the same questions you asked at the start. See how to evaluate your agency.
A reciprocal notice period, usually three to six months. See what a normal notice period is.
A price agreement per term. Set when rates are reviewed and on what basis. Automatic indexation is normal and belongs in the contract; a price rise out of nowhere makes for a conversation nobody handles well.
What to avoid
Open-ended with no review moment. It looks flexible and is the opposite: there is never a natural moment to open the conversation, so it only happens once someone is unhappy. And then it is no longer a review but a conflict.
A term tied to a campaign. Campaigns overrun, and then you negotiate an extension at the worst possible moment.
The review that should sit in front of such a renewal is what IKAg runs with COLLAB, answered on both sides. See Agency evaluation & remuneration.
See also: what to put in an agency contract and how often to evaluate.