About moderation
The Atproto model is that speech and reach should be two separate layers, built to work with each other. The “speech” layer should remain permissive, distributing authority and designed to ensure everyone has a voice. The “reach” layer lives on top, built for flexibility and designed to scale. Atproto moderation is implemented using Labels.
Our moderation architecture is provided by two services: Osprey, an event stream decisions engine and analysis UI designed to investigate and take automatic action; and Ozone, a labeling service and web frontend for making moderation decisions.
Read more about moderation on our blog.
Algorithmic moderation
Osprey is an event stream decisions engine and analysis UI designed to investigate and take automatic action, to enable sustainable at-scale moderation. It makes use of Kafka with its own rules engine.
From another perspective, Osprey is a Python library for processing actions through human written rules and outputting labels, webhooks back to an API and other sinks. It evaluates events using structured logic, user-defined functions, and external signals to assign labels, verdicts, and actions. It can make use of fine-tuned LLMs and other classifiers that expose their own web endpoints to Osprey. LLMs can be a useful tool for surfacing moderation reports; these reports can be acted on automatically and/or manually depending on your configuration.
Osprey is maintained by Roost, who build open source moderation tools.
Further Reading and Resources
Learn all about the types and format of moderation labels. Then, you can subscribe to moderation labelers to have their labels applied in your application. You can also create your own labeler to publish labels. If you need to moderate content manually, you can use Ozone as a web interface for labeling content.