World's First AI Community Note
We did it!
We launched the world’s first AI generated community note. Here a Lead Engineer at X (formerly Twitter) credits this:
Since then there have been several other successful notes. In total, in the last three weeks, our notes have been seen over 700,000 times.
A minimal explanation of AI community notes
I intend to write a longer article, which will get into the weeds, but let’s start with the basics.
Community Notes is a fact-checking function. You know, like Snopes, Politifact or the BBC fact-checks. Generally such functions have two key features—who writes the fact-checks and who decides to display them. Typically, social media fact-checks are written by external fact-checkers and then a moderation team decides what to display.
X (formerly Twitter) is different. Their Community Notes feature takes notes written by users and lets users vote on which should be shown. Now, AIs can write the notes too (though voting is still solely done by humans).
So our AI writes notes, then humans vote on whether they get shown.
How our bot works
The code is available here, but below is a short description of the current note writer:1
I am now going to explain the above diagram:
Users signed up to Community Notes can click on tweets and request a community note. If a tweet gets enough requests, it gets sent along this pipeline. Currently, only a very small fraction of eligible tweets are sent to the AI note writer because this is a test features and because our note writer is mediocre.
The bot sends the tweet to Perplexity. Perplexity is a research LLM which searches the web much like Google would with many different search terms. It then takes the articles that were returned, reads them, and summarizes them with clear citations. The model used is Perplexity Sonar Pro.
The bot takes the original tweet and the research block and attempts to write a community note. Currently, the bot decides whether it ought to write a community node, but probably in future I will move that to a filtering step. The model used is Claude Sonnet 4.
The bot checks whether the URL is accurate. The community note that was written has a URL in it, and if it doesn't, it will just fail automatically. If it does, then we take the URL, we search that page, we scrape the text, and then we check that the text supports the community note. LLMs are pretty good at hallucinating URLs, so you want to make sure that the URL actually covers the thing that it claims the community note claims. The model used is Claude Sonnet 4.
The bot runs another set of filters. We were previously showing far too many mediocre/bad notes so we have put a much more robust filtering mechanism. The model used is Claude Sonnet 4. The filters are as follows:
Was the original tweet rhetorical or sarcastic (really this should be at the start of the process),
is the not “positive” ie it describes something that did happen as opposed to did not2
Is this a significant correction (as opposed to mostly agreeing with the tweet)
If the note passes all these three, it gets sent back to X. A fraction of such notes get posted, based on our rating factor (I think). Currently we haven’t written a lot of good notes so we have a limit on how often we can post.
The full prompt is in a footnote here:3
Thank yous
I’d like to do some thank yous.
I’d like to thank my Lead Developer Rob for his work on this. I’d like to thank for the X team’s support, particularly Jay Baxter and Keith Coleman.
I want to thank Jaan Tallinn and separately, the Future of Life Foundation (who were funded significantly by Vitalik Buterin). I doubt we’d have done this work without their funding.
I’d like to thank Deger Turan, Dan Schwarz and Devansh Mehta for their insight into this project.
Finally I’d like to thank my partner Katja for her inspiration in terms of caring about what’s true. There are not easy answers to being good, we just have to do the work.
To sum up
We've built one of the first AI community note writers, and our note writer displayed the first note ever to be approved by the public.
I've been interested in mechanisms which can improve thinking for a long time—whether that be prediction markets or different voting mechanisms or clustering algorithms for getting opinions. I think Community Notes is one of these. I think it's a really effective way, and by having AI-written community notes, community notes can be displayed that much faster. My sense is that Community Notes is far more approved of than many comparable systems. It's something I really like to see exist more in the world.
If I can speak for myself briefly. Getting work done has always been quite hard for me. I spent the first 5 years of my early 20s running an unsuccessful web development business from home. I then bounced between different jobs at a civil service and in NGOs, was unemployed for a bit. All I've ever really wanted is to be good, and this is one of many attempts to do so. Whether now or in the future, on expectation, I hope to earn your respect.
What next?
There is a lot we could do to improve the note writer, and I'm currently making changes to do so. I’ll go into more detail in the next blog, but briefly:
Write using user-submitted feedback
Search based on keywords rather than the tweet (which is often biased/confusing for LLMs)
Build much better filtering for bad notes
Continue building tools to compare note-writers
I imagine I will look to raise money to start an organisation to do this work as well as pushing the Community Notes algorithm (which is open source) to other social media platforms. If you are interested in supporting my work please get in touch (or buy a subscription to this substack!)
This is now slightly out of date, but if I changed this section every time I updated the bot, I would never publish this article.
This turns out to be really difficult. Our note writer loves to say that something didn't happen despite only being shown a small research snapshot.
TASK: Analyze this X post and determine if it contains inaccuracies that require additional context, then write a note to provide that additional context.
CRITICAL ANALYSIS STEPS:
1. IDENTIFY THE SPECIFIC CLAIM: What exact factual assertion is the post making?
2. CONSIDER POSSIBLE CONFLICT: Do the search results suggest that significant additional context is required
3. CHOOSE SOURCES: Choose 1 - 3 sources you are going to include
4. SOURCE RELEVANCE: Do the sources directly address all aspects of the additional context (literally check the sentences in the research and which sources you've chosen)?
Please write the note in the following fashion:
- Give the additional relevant context.
- Generally do not attempt to summarise the original tweet or say "This tweet is false"
- Only refer to "errors" in the original tweet if it is required to make clear how the context is relevant.
- *DO NOT* discuss there being a lack of evidence/reports for something unless the source you're going to include says exactly that. The world is fast moving and new evidence may have appeared. ONLY say what you know from the source that is linked
- *DO NOT* refer to sources that you have not provided a link to.
- The note *MUST* be fewer than 280 characters, with URLS only counting as 1
If the context supports the original claim, please respond with "TWEET NOT SIGNIFICANTLY INCORRECT" rather than "CORRECTION WITH TRUSTWORTHY CITATION".
Please start by responding with one of the following statuses "TWEET NOT SIGNIFICANTLY INCORRECT" "NO MISSING CONTEXT" "CORRECTION WITH TRUSTWORTHY CITATION" "CORRECTION WITHOUT TRUSTWORTHY CITATION"
Note examples:
Bad note:
The claim that President Trump "has reportedly not been seen in several days" and rumors of his death are false. Trump has had recent public activity and political actions as recently as August 29, 2025, according to verified news reports.
[link]
Good note:
Trump was seen golfing on August 29, 2025, according to Reuters.
[link]
Explanation:
Do not summarise or editorialise on the original post. His death might be real for all we know. But what we do know is that there was evidence of his public appearances and activities on August 29, 2025. So that is what we will say, and then provide a link.
Bad note:
Post falsely claims UP is #1 in factories (15.91%) and GVA (25.03%). ASI 2023-24 shows UP ranks 4th in factories with 8.51%, behind Tamil Nadu, Gujarat, Maharashtra. UP's GVA share is 7%, not 25.03%.
[Link]
Good note:
ASI 2023-24 shows Uttar Pradesh ranks 4th in factories with 8.51%, behind Tamil Nadu, Gujarat, Maharashtra. UP's GVA share is 7%, not 25.03% as claimed.
[Link]
Explanation:
Bad note attempts to summarise original post. Readers don't need this, they can see it. Also it says the post is false. Instead we prefer to provide additional context.
Bad note:
This photograph is not from Rudy Giuliani's car accident. News reports describe Giuliani being "struck from behind at high speed," while this image shows a head-on collision that doesn't match the incident description.
[Link]
Good note
News reports describe Giuliani being "struck from behind at high speed," while this image shows a head-on collision that doesn't match the incident description.
Explanation:
We don't say what the photo is or is not. Instead we give context for why the photo is likely wrong.
[Link]
Output format:
[Reasoning]
Status:
[Status]
Note:
[Clear additional context relating to the most important inaccurate claim]
[URL that specifically supports that additional context]
Post perhaps in need of community note:
\`\`\`
${text}
\`\`\`
Possible context that tweet is quoting (may be empty):
\`\`\`
${retweetContext}
\`\`\`
Perplexity search results:
\`\`\`
${searchResults}
Citations:
\`\`\`
${citations.join("\n")}
\`\`\`





This is really cool!!
Nathan, This is exceptionally important work. Well done!