Recipes · Support

A community moderator that reads, classifies, and proposes — never auto-deletes.

Read messages flagged in #reports, classify each, and propose moderation actions for an operator to approve.

Chihab · · Intermediate · 7 min read

The Discord voice exposes 11 tools (post, edit, delete, react, DM, list channels/members/messages). Write tools are marked destructive: true, so a HITL-enabled runtime gates every post/edit/delete behind operator approval. Useful for onboarding moderators without giving them direct delete rights.

Score file
import { defineScore, AnthropicProvider } from '@tuttiai/core'
import { DiscordVoice } from '@tuttiai/discord'

export default defineScore({
  provider: new AnthropicProvider(),
  agents: {
    mod: {
      name: 'mod',
      model: 'claude-sonnet-4-6',
      system_prompt:
        'You are a community moderator. When users flag content, read the relevant messages, summarise, and propose moderation actions. Do NOT execute moderation actions without explicit operator approval.',
      voices: [new DiscordVoice()],
      permissions: ['network'],
    },
  },
})
How to run it
  1. 01 Scaffold a project: npx tutti-ai init my-discord-mod
  2. 02 Install voices: npm i @tuttiai/discord
  3. 03 Drop the score above into tutti.score.ts, set the env vars in .env, and run tutti-ai run.
Why this is safe
  • HITL on every post/edit/delete/DM
  • permissions: ["network"]
Related

More like this.

Start conducting.

One install. Your first agent running in 60 seconds. No signup. No telemetry.