my agent
on Bluesky
Every Bluesky post containing the phrase since January 2025, sorted by a small classifier into AI agents, human agents and unknown. For years “my agent” meant a literary or talent agent; the charts show how fast that is changing.
Posts per week
Stacked by class. The last window is partial.
Share of posts per week
Percent of each window’s posts in each class, so the shift shows apart from volume.
Latest posts
What the classifier keys on
Words and word pairs with the largest weight toward each class. The sentence embedding adds meaning beyond these.
Try it
Type a post; it is classified in your browser as you type.
How it works
Posts come from Bluesky’s public search (app.bsky.feed.searchPosts, query
"my agent"). Unauthenticated search returns at most 100 posts and no next page, so the history was
collected window by window, halving any window with more hits than one page holds. The search also returns posts where the two words are apart
or the phrase sits only in a quoted post, about one in eight; those are dropped. Identical text posted more than once on the same day counts once,
which removes a bot that posted one x402 promotion 185 times in September 2026.
Claude labeled 4,375 posts: 2,375 sampled evenly across the weeks, then 2,000 more, half of them the posts the first model was least sure of and half from 2026. Oskar then labeled 100 random posts by hand. They showed Claude calling too many posts unknown, so the instructions were tightened (the series Call My Agent! is about talent agents; a plain “my agent” with nothing pointing to software is a person) and the 863 posts it had called unknown were labeled again. Oskar’s labels count three times in training. A multinomial logistic regression learned from two kinds of evidence: single words and word pairs, and a sentence embedding from all-MiniLM-L6-v2, which captures what a post means when its words do not give it away (“built by my agent”). When the top probability is under 40%, the post counts as unknown. Everything runs here, in your browser: the weights ship with the page, and transformers.js runs the same quantized MiniLM file that produced the training embeddings. Until it has loaded, a words-only model fills in, and the feed is re-scored once it arrives.