Faits :
A.
A._, ressortissant de la Sierra Leone né en 1993, a été arrêté le 26 avril 2015 pour avoir agressé au couteau deux agents de sécurité du foyer des Tattes où il réside en tant que requérant d'asile débouté. Il se serait précipité sur le premier agent, d'origine maghrébine, en brandissant un couteau et en tenant une lame, criant qu'il voulait "tuer les arabes". Se protégeant le visage, l'agent avait été légèrement blessé à la main. Il s'en serait ensuite pris à un second agent, sans toutefois le blesser, avant d'être maîtrisé. Le Ministère public genevois l'a prévenu, le 27 avril 2015, de tentative de meurtre, menaces et séjour illégal. Le prévenu a expliqué qu'il avait fait l'objet peu avant les faits d'une agression par cinq personnes d'origine maghrébine, que les agents de sécurité n'avaient rien fait pour l'aider et qu'il était allé chercher un couteau pour récupérer ses affaires perdues lors de l'agression. Le 28 avril 2015, le Tribunal des mesures de contrainte (Tmc) a ordonné sa mise en détention provisoire jusqu'au 28 juillet 2015, en raison des risques de fuite et de collusion.
B.
Par ordonnance du 6 juillet 2015, le Tmc a rejeté une demande de mise en liberté, ajoutant aux risques de fuite et de collusion un danger de réitération. Une expertise psychiatrique était en cours afin notamment d'évaluer la dangerosité du prévenu. Par ordonnance du 24 juillet 2015, le Tmc a prolongé la détention jusqu'au 24 octobre 2015.
Par arrêt du 30 juillet 2015, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté les recours formés par le prévenu contre les deux décisions du Tmc. Les charges étaient suffisantes car les déclarations des deux agents de sécurité étaient crédibles quant à l'attaque qu'ils avaient subie en essayant de s'interposer alors que le prévenu avait déclaré vouloir tuer "des arabes". Le recourant était en situation illégale sans famille ni ressources, et avait refusé de coopérer à l'expertise psychiatrique. Le fait qu'il soit partie plaignante dans une procédure parallèle (relative à l'incendie du foyer, et dans laquelle l'un des agents était prévenu) n'enlevait rien au risque de fuite. Les risques de collusion et de réitération n'avaient dès lors pas à être examinés.
C.
Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler l'arrêt cantonal et d'ordonner sa libération immédiate. Subsidiairement, il conclut au renvoi de la cause à l'autorité précédente pour nouvelle décision dans le sens des considérants. Il requiert l'assistance judiciaire.
La Cour de justice se réfère à son arrêt, sans formuler d'observations. Le Ministère public conclut au rejet du recours. Le recourant a répliqué le 17 septembre 2015, contestant le risque de collusion évoqué par le Ministère public.

Considérant en droit :
1.
Le recours en matière pénale (<ref-law>) est ouvert contre les décisions relatives à la détention provisoire ou pour des motifs de sûreté au sens des <ref-law>. Le recours a été formé à l'échéance du délai fixé à l'<ref-law> contre une décision prise en dernière instance cantonale (<ref-law> et 80 LTF). L'arrêt cantonal confirme un refus de mise en liberté, ainsi qu'une nouvelle prolongation de la détention. Le recourant a qualité pour agir (art. 81 al. 1 let. a et b ch. 1 LTF) et les conclusions présentées sont recevables au regard de l'<ref-law>.
2.
Contestant l'existence de charges suffisantes, le recourant se plaint d'arbitraire dans l'établissement des faits. Il reproche à la cour cantonale de ne pas avoir mentionné l'agression dont il avait été victime peu avant les faits, le refus des agents de sécurité de l'aider, les contradictions dans les déclarations des plaignants et le peu de gravité de la blessure subie par l'un d'eux. Les autres témoignages n'accréditeraient pas la thèse de l'accusation.
2.1. Une mesure de détention préventive n'est compatible avec la liberté personnelle garantie aux art. 10 al. 2 Cst. et 5 CEDH que si elle repose sur une base légale (art. 31 al. 1 et art. 36 al. 1 Cst.), soit en l'espèce l'<ref-law>. Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.). Pour que tel soit le cas, la privation de liberté doit être justifiée par les besoins de l'instruction, par un risque de fuite ou par un danger de collusion ou de réitération (art. 221 al. 1 let. a, b et c CPP). Préalablement à ces conditions, il doit exister des charges suffisantes, soit de sérieux soupçons de culpabilité, à l'égard de l'intéressé (<ref-law>; art. 5 par. 1 let. c CEDH), c'est-à-dire des raisons plausibles de le soupçonner d'avoir commis une infraction. Il n'appartient cependant pas au juge de la détention de procéder à une pesée complète des éléments à charge et à décharge et d'apprécier la crédibilité des personnes qui mettent en cause le prévenu. Il doit uniquement examiner s'il existe des indices sérieux de culpabilité justifiant une telle mesure. L'intensité des charges propres à motiver un maintien en détention préventive n'est pas la même aux divers stades de l'instruction pénale; si des soupçons, même encore peu précis, peuvent être suffisants dans les premiers temps de l'enquête, la perspective d'une condamnation doit apparaître vraisemblable après l'accomplissement des actes d'instruction envisageables (<ref-ruling> consid. 3.2 p. 126 s.).
2.2. Contrairement à ce que soutient le recourant, l'arrêt attaqué retient dans ses considérants en droit que le prévenu avait été agressé peu avant de s'en prendre aux agents de sécurité. Tenant compte de ce fait, la cour cantonale a émis l'hypothèse que le recourant serait retourné dans sa chambre pour prendre un couteau, afin de revenir sur les lieux pour récupérer ses affaires et "faire peur à ses agresseurs". Les agents auraient été agressés parce qu'ils s'étaient interposés. Quels que soient les mobiles du recourant, celui-ci est clairement mis en cause par les deux agents de sécurité, dont les accusations sont confirmées par un troisième agent. Les déclarations concordent sur le fait que le recourant serait rentré dans le foyer après une agression, qu'il serait retourné dans sa chambre et en serait redescendu armé d'un couteau et d'une lame en criant qu'il voulait "tuer les arabes" (dans un état d'excitation que le recourant lui-même a confirmé), puis qu'il s'en serait pris successivement aux deux agents en tentant de les frapper avec un couteau, blessant légèrement l'un d'eux. Ces déclarations à charge constituent des éléments de preuve suffisants à ce stade, quand bien même d'autres témoignages viendraient disculper le recourant. Comme cela est relevé ci-dessus, il n'appartient pas au juge de la détention de se livrer à une pesée complète de l'ensemble des preuves. L'argumentation à décharge, de nature appellatoire, doit dès lors être écartée.
3.
Le recourant conteste ensuite l'existence d'un risque de fuite et se plaint d'une violation de l'<ref-law>. Il se réfère à ses griefs concernant l'absence de charges suffisante. Le fait qu'il ne collabore pas à l'expertise psychiatrique ne permettrait pas d'en déduire qu'il aurait l'intention de se soustraire à la justice. Il relève qu'il est partie plaignante dans la procédure relative à l'agression dont il a été victime, ainsi que dans celle relative à l'incendie du foyer dans laquelle l'un des agents est prévenu. Il indique enfin qu'il est en Suisse depuis plusieurs années et qu'il s'est engagé à se présenter à toute convocation.
Conformément à l'<ref-law>, la détention pour des motifs de sûreté peut être ordonnée s'il y a sérieusement lieu de craindre que le prévenu se soustraie à la procédure pénale ou à la sanction prévisible en prenant la fuite. Le risque de fuite doit s'analyser en fonction d'un ensemble de critères tels que le caractère de l'intéressé, sa moralité, ses ressources, ses liens avec l'Etat qui le poursuit ainsi que ses contacts à l'étranger. La gravité de l'infraction ne peut pas, à elle seule, justifier la prolongation de la détention, même si elle permet souvent de présumer un danger de fuite en raison de l'importance de la peine dont le prévenu est menacé (<ref-ruling> consid. 3a p. 62 et les arrêts cités).
Le recourant est notamment prévenu de tentative de meurtre et de menaces, et peut ainsi craindre une condamnation à une peine privative de liberté d'une certaine durée. En situation irrégulière, il n'a ni famille ni ressources en Suisse. Le fait qu'il y réside depuis plusieurs années et qu'il est partie plaignante dans deux autres procédures ne saurait pallier un risque de fuite qui apparaît en l'occurrence évident. Pour le surplus, le recourant n'invoque pas le principe de la proportionnalité. Cette question devra être examinée à l'occasion d'une éventuelle prolongation de la détention, sur le vu notamment des nouveaux éléments de l'enquête.
4.
Sur le vu de ce qui précède, le recours doit être rejeté. Le recourant a demandé l'assistance judiciaire et les conditions en paraissent réunies (<ref-law>). Il y a lieu de désigner Me Magali Buser en qualité d'avocate d'office et de fixer ses honoraires, qui seront supportés par la caisse du Tribunal fédéral (<ref-law>). Le recourant est en outre dispensé des frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est admise; Me Magali Buser est désignée comme avocate d'office du recourant et une indemnité de 1'500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires.
3.
Le présent arrêt est communiqué à la mandataire du recourant, au Ministère public et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 18 septembre 2015
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Fonjallaz
Le Greffier : Kurz