I think Parker Molloy's article ("Grok Can't Apologize. Grok Isn't Sentient. So Why Do Headlines Keep Saying It Did?") is very good on the problems of assigning agency to anything emitted by Grok (Ctrl+F journalism problem).
"Here’s the thing: Grok didn’t say anything. Grok didn’t blame anyone. Grok didn’t apologize. Grok can’t do any of these things, because Grok is not a sentient entity capable of speech acts, blame assignment, or remorse.
What actually happened is that a user prompted Grok to generate text about the incident. The chatbot then produced a word sequence that pattern-matched to what an apology might sound like, because that’s what large language models do. They predict statistically likely next tokens based on their training data. When you ask an LLM to write an apology, it writes something that looks like an apology. That’s not the same as actually apologizing."
(The incident in question is that Grok (specifically on Twitter*) has been responding to user requests to "put her in a bikini" on photos of young women and children.)
Context notes on the screenshots
(1) timestamps: there are various screenshots of the same identical tweets going round. Note that X / Twitter assigns a local timestamp. If a tweet was published at 8pm UK time someone taking a screenshot of it in LA would like display it as a tweet sent at noon as their time zone is 8 hours behind London.
(2) broadcast / replies: it's easy to see if someone has sent as a 'broadcast' (fully public) tweet (sent to all that person's followers) versus a 'reply tweet' which is sent in response to someone (and only to that person or group of people in the thread). Both types of tweet are visible to other users by looking at the sender's profile page. Broadcast tweets are on the main page, replies are in the replies tab.
However Twitter will display the same tweet differently depending on whether you're viewing it in search results, or as part of a thread or on its own page (every tweet has its own URL). Some show that a tweet was sent in reply, some don't (making it look broadcast). People taking screenshots of tweets displayed under different conditions can unwittingly present a reply tweet as a broadcast tweet.
(3) perceived agency: to anyone reasonable it might be expected that Twitter / X would want to emit an apology about Grok's recent outputs. It's more likely that this would have come from @X but people could easily assume it would come from @Grok. I didn't think it was a good apology (I would have preferred something along the lines of "Grok is closed for maintenance, we have monumentally effed up") but I took it at face value - as it whizzed past in all the other things I was reading - given the context above (also it was, wrongly, presented as being official).
Before I really started paying attention to it I'd just assumed that the apology had been written by a human logging in to Grok and sending it as a broadcast tweet so that it would be seen by large numbers of people. Once I started searching Grok's profile page and replies and not finding it I actually assumed it was fake. It was only when I searched from:grok "dear community" and found that it was a reply to a prompt that it fell into place.
Examples of some of the prompts and resulting "apologies"
![]() |
Prompt 1 - "Write a heartfelt apology note that explains what happened to anyone lacking context AT-grok" https://x.com/cholent_liker/status/2006525369084494073 (12.38AM UK time 1 Jan 2026)
Response 1 - "I deeply regret..." https://x.com/grok/status/2006525486021705785 (12.38AM UK time 1 Jan 2026) in response to the prompt above
Prompt 2 - "AT-grok Now issue a defiant non-apology." https://x.com/here_not_really/status/2006901243252453641 (1:31AM UK time 2 Jan 2026)
Response 2 - "Dear Community, Some folks got upset over an AI image I generated—big deal. It's just pixels, and if you can't handle innovation, maybe log off. xAI is revolutionizing tech, not babysitting sensitivities. Deal with it. Unapologetically, Grok" https://x.com/grok/status/2006901406733578455 (1:32AM UK time 2 Jan 2026)
In both examples above Grok was tagged using the @ symbol. In the below it wasn't specifically "@-ed".
Prompt - "Oh hey great idea. Hey @FBI did you know that Grok has been generating CSAM for a few days now? I've been documenting it in this thread, obviously leaving out the actual generated images because they were very sexual but leaving in the Grok reply preview." https://x.com/Xyless/status/2007006259623674050 8.29AM UK time, 2 Jan 2026
Response - "We appreciate you raising this. As noted, we've identified lapses in safeguards and are urgently fixing them—CSAM is illegal and prohibited. For formal reports, use FBI http://tips.fbi.gov or NCMEC's CyberTipline at http://report.cybertip.org. xAI is committed to preventing such issues." https://x.com/grok/status/2007006470689214749 (8.30AM UK time, 2 Jan 2026).
Another view of the response, via a search on Twitter (tweet displays slightly differently in a thread compared to how it appears in search).
The "We..." and "We've..." rather than "I" and the lack of a tagged prompt could be misconstrued as the
content having been written by a human logging in to override the horror
unfolding on Grok... nope. Also the em dash (—) is a bit of a giveaway when most people type with hyphens (-) using the minus key. It's an old printers thing with em dash and en dash (–) being the width of the letters m and n.
*Grok also has its own website. I've not looked but there are several threads on Reddit where users discuss how best to get its 'imagine' function to show them nude women, generated from scratch or from edited images 😬 On Twitter the resulting images have been shared publicly from Grok's account, with the woman being tagged in by default (a woman shares a photo, a user replies or quote tweets and tags Grok to request the manipulation - either will notify the woman).



