Sea Watch sade män från speedboat bordade dingen och slog invandrare med käppar, orsakar en "mass panik".
Minst fyra av de 150 personer som var ombord på dingen föll ner i vattnet och drunknade, sade Sea Watch.
En talesman för Libyens flottstyrkor i Tripoli sade att han inte hade hört talas om händelsen.
Motivet till attacken var inte klart, men Ruben Neugebauer, talesman för Sea Watch, sa att angriparna försökte stjäla dingens motor.
Neugebauer sade att 25 personer fortfarande saknas.
Sea Watch, en tysk organisation, sade i ett uttalande: " Det libyska kustbevakningens våldsamma ingripande orsakade en situation av masspanik ombord på gummibåten i nöd.
"Ett rör av gummibåten kollapsade, vilket fick majoriteten av de 150 människorna att halka ner i vattnet."
Omkring 120 människor räddades och fördes ombord på fartyget Sea Watch 2. Fyra var medvetslösa och fick behandling.
Italiens kustbevakning bekräftade att Sea Watch hade deltagit i några av de nio räddningsinsatser som ägde rum på fredagen.
Både de libyska och italienska kustbevakningarna sade att de ännu inte hade fått någon information om attacken.
Italien har tagit in mer än 146.000 båt migranter hittills i år och är på rätt spår för att se fler ankomster än förra året, när 153.000 anlände.
I augusti sade den humanitära gruppen Läkare utan gränser, som driver räddningsfartyg utanför Libyens kust, att de attackerades av beväpnade män på en libysk marinbåt.
Den libyska flottan sa att den trodde att fartyget var inblandat i människosmuggling.
Minst fyra migranter har dött efter en fartbåt märkt "Libyan Coast Guard" attackerade en jolle, enligt en räddningsorganisation för migranter.