Gmail Auto-Label
Ziel
Posteingangs-E-Mails abrufen, sie über parallele Subagenten in die Kategorien „Action Required“ / „Waiting On“ / „Reference“ einteilen und die Labels über die Gmail-API in Bulk anwenden.
Skripte
./scripts/gmail_label_fetch.py– E-Mail-Zusammenfassungen als kompaktes JSON abrufen./scripts/gmail_label_split.py– E-Mails in N Teile für die parallele Klassifizierung aufteilen./scripts/gmail_label_merge.py– Klassifizierte Teile in einer einzigen Dateilabels.jsonzusammenführen./scripts/gmail_label_apply.py– Label-Klassifizierungen in Bulk anwenden
Subagent
email-classifier– definiert in.claude/agents/email-classifier.md- Modell: Sonnet 4.5 (schnell, kosteneffiziente Klassifizierung)
- Jeder Subagent liest einen Teil und schreibt eine Ausgabedatei mit Klassifizierungen
Ablauf (Parallel – Standard)
Schritt 1: E-Mails abrufen
python3 .claude/skills/gmail-label/scripts/gmail_label_fetch.py \
--account ACCOUNT --query "in:inbox" --limit 100 --output .tmp/emails.json
Schritt 2: In Teile aufteilen
python3 .claude/skills/gmail-label/scripts/gmail_label_split.py \
--input .tmp/emails.json --chunks 10 --output-dir .tmp/chunks
Schritt 3: Parallel klassifizieren (10 Subagenten starten)
10 email-classifier-Subagenten im Hintergrund starten, einen pro Teil. Jeder Subagent:
- Liest
.tmp/chunks/chunk_N.json - Klassifiziert jede E-Mail
- Schreibt
.tmp/chunks/classified_N.json
Verwenden Sie das Task-Tool mit run_in_background: true und model: "sonnet". Starten Sie ALLE 10 in einer einzigen Nachricht für echte Parallelität:
Für jeden Teil 0–9 einen Task starten mit:
subagent_type: "email-classifier"
model: "sonnet"
run_in_background: true
prompt: "Lese /absoluter/pfad/.tmp/chunks/chunk_N.json, klassifiziere jede E-Mail, schreibe Ergebnisse nach /absoluter/pfad/.tmp/chunks/classified_N.json"
KRITISCH: Verwenden Sie TaskOutput NICHT, um Subagenten-Ergebnisse zu lesen. Die Subagenten schreiben ihre Ergebnisse in Dateien – der Hauptagent muss die Klassifizierungsdaten nie sehen. Das Lesen von TaskOutput überflutet den Kontext und verursacht bei großen Stapeln (500+ E-Mails) „Prompt too long“-Fehler.
Stattdessen auf Dateiexistenz prüfen:
# Warten, bis alle klassifizierten Dateien existieren (Timeout nach 120s)
for i in $(seq 0 9); do
while [ ! -f ".tmp/chunks/classified_$i.json" ]; do sleep 2; done
done
Dann direkt mit Schritt 4 (Zusammenführen) fortfahren.
Schritt 4: Klassifizierungen zusammenführen
python3 .claude/skills/gmail-label/scripts/gmail_label_merge.py \
--input-dir .tmp/chunks --output .tmp/labels.json
Schritt 5: Labels anwenden
python3 .claude/skills/gmail-label/scripts/gmail_label_apply.py \
--account ACCOUNT --input .tmp/labels.json
Klassifizierungsrichtlinien
Action Required (Handlungsbedarf):
- Sicherheitswarnungen, die überprüft werden müssen
- Ablaufende Kreditkarten / Domain-Verlängerungen mit Fristen
- Slack-@Erwähnungen mit Fragen
- Neue Teammitglieder, die begrüßt werden müssen (Slack-Beitrittsbenachrichtigungen)
- Kunden-E-Mails, die eine Antwort benötigen
- Aktualisierungen von Geschäftseinträgen (Google Business Profile, Bing Places)
- Stripe-Hinweise mit erforderlichen Aktionen
Waiting On (Warten auf):
- Ausgehende Vertriebs-E-Mails, die auf Antwort warten
- Support-Tickets, die auf Lösung warten
- Gesendete Angebote, die auf Antwort warten
Reference (Referenz):
- Marketing-Newsletter (DigitalMarketer usw.)
- Wohltätigkeits-/Non-Profit-Newsletter (RAPS usw.)
- Leistungsberichte des Google Business Profiles
- Werbeangebote (Blinkist, Sonderaktionen usw.)
- Plattform-Update-Benachrichtigungen (Google Play, Apify usw.)
- Bestätigungscodes (bereits verwendet)
- Immobilien-Newsletter (Westbank usw.)
- E-Mails zu Gaming-Konten (Riot Games usw.)
- Informative Sicherheitswarnungen (2FA aktiviert usw.)
- Gesundheitshinweise
- Hinweise zu Rechts-/Richtlinienaktualisierungen
Kontoregister
Konten werden in gmail_accounts.json im Stammverzeichnis des Arbeitsbereichs gespeichert. Jedes Konto benötigt:
email– Gmail-Adressetoken_file– Pfad zum OAuth-Token
Neue Konten hinzufügen
python3 .claude/skills/gmail-inbox/scripts/gmail_multi_auth.py --account ACCOUNT_NAME --email EMAIL
Leistung
- Serieller Ablauf: ~36s für 100 E-Mails (Abruf 1s + Klassifizierung 34s + Anwenden 1s)
- Paralleler Ablauf: ~30s für 100 E-Mails (Klassifizierung 19s + Zusammenführen <1s + Anwenden ~10s)
- Die Klassifizierung ist der Engpass; 10 parallele Subagenten reduzieren die Zeit von 34s auf 19s (~1,8x Beschleunigung)
- Der Start-Overhead der Agenten (~4s Verzögerung) begrenzt die theoretischen Gewinne
- Der Schritt zum Anwenden kann aufgrund der Gmail-API-Drosselung variieren
Schema
Eingaben
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
account | string | Ja | Gmail-Kontoname aus dem Register |
query | string | Nein | Gmail-Suchabfrage (Standard: 'in:inbox') |
limit | integer | Nein | Maximale Anzahl zu klassifizierender E-Mails (Standard: 100) |
chunks | integer | Nein | Parallele Klassifizierungsteile (Standard: 10) |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
labels_applied | object | Anzahl pro Kategorie: Action Required, Waiting On, Reference |
Anmeldeinformationen
| Name | Quelle |
|---|---|
credentials.json | Datei |
token_*.json | Datei (automatisch generiert) |
Kompatibel mit
Skills, die gut mit diesem Skill kombinierbar sind: gmail-inbox
Kosten
Claude Sonnet API für die Klassifizierung