Faits: A. M._, née en 1964, mariée et mère de deux enfants nés en 1997 et 2004, a travaillé en tant que réceptionniste dans un restaurant (de 2000 à 2001). Souffrant d'asthme bronchique, de fatigue à l'effort et de rhumatisme depuis 2002 environ, elle s'est annoncée à l'assurance-invalidité le 19 avril 2007. Dans un projet de décision du 16 juillet 2008, l'Office de l'assurance-invalidité du canton de Genève a informé l'assurée qu'il envisageait de lui allouer une rente entière d'invalidité du 1er juillet 2006 au 31 janvier 2008, le droit prenant fin trois mois à partir de la date à laquelle le SMR estimait que la capacité de travail était complète dans toute activité. Le 26 octobre 2009, l'office AI a rendu une décision conforme à son projet. B. M._ a déféré cette décision au Tribunal cantonal des assurances sociales de la République et canton de Genève (aujourd'hui : Cour de justice de la République et canton de Genève, Chambre des assurances sociales), en indiquant notamment que son état de santé ne s'était pas suffisamment amélioré pour lui permettre de reprendre une activité professionnelle, même à temps partiel. Par jugement du 23 mars 2010, la juridiction cantonale a partiellement admis le recours, annulé la décision administrative dans la mesure où le droit à la rente était supprimé dès le 1er février 2008, et mis l'assurée au bénéfice d'une demi-rente d'invalidité depuis cette date-là. C. L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation. A titre principal, il conclut à sa réforme en ce sens qu'un quart de rente soit alloué à l'assurée depuis le 1er février 2008; subsidiairement, il conclut à ce que la cause lui soit renvoyée pour instruction complémentaire. Dans son préavis, l'Office fédéral des assurances sociales (OFAS) propose d'admettre le recours. L'intimée s'en remet à justice. Par ordonnance du 26 juillet 2010, le Juge instructeur a admis la requête d'effet suspensif au recours présentée par l'office AI. 