Wiederkehrende Arbeit automatisieren
# Wiederkehrende Arbeit automatisieren
Derselbe Prompt, den Sie jeden Montagmorgen von Hand ausführen, kann sich selbst ausführen, ein Competitive Brief erzeugen und in Ihrem Postfach liegen, bevor Sie Ihren Kaffee ausgetrunken haben. Der Abstand zwischen einer einmaligen Claude-Aufgabe und einer selbstlaufenden PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → ist kleiner, als ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → aussieht, und diese Lektion schließt ihn.
Sie wissen bereits, wie Sie einmal ein gutes Ergebnis aus Claude herausholen. Jetzt machen wir es wiederholbar, geplant und sicher.
Die drei Orte, an denen Automatisierung lebt
Die Automatisierungsleiter hat drei Sprossen, und Sie klettern sie je nachdem hoch, wie viel Kontrolle und Infrastruktur Sie wollen.
Sprosse 1: Innerhalb der Claude-Apps. Projects, Connectors und Skills erlauben viel, ohne Code anzufassen. Ein Connector verbindet Claude über MCP mit einem externen System (Gmail, Google Drive, Linear, eine Datenbank). MCP steht für Model Context Protocol, den offenen Standard, mit dem ein Modell externe Tools und Datenquellen aufrufen kann. Das ist die No-Code-Sprosse.
Sprosse 2: Claude Code und geplante Agents. Claude Code kann unbeaufsichtigt in einem Terminal oder Container laufen. Kombinieren Sie es mit cron (dem Standard-Job-Scheduler von Unix) und Sie haben einen wiederkehrenden Agent auf Ihrer eigenen Maschine oder einem kleinen Server.
Sprosse 3: CI wie GitHub Actions. Ihre Automatisierung lebt in einem Repo, läuft auf der Infrastruktur von Anthropic oder GitHub, hat Logs und wird zeitgesteuert oder durch ein Event ausgelöst. Das ist die auditierbarste und „produktivste“ Variante.
Wir bauen das Montags-Brief auf Sprosse 3, aber ich zeige Ihnen, wo Sprosse 1 und 2 hineinpassen.
Was „geplant“ eigentlich bedeutet
Ein Schedule ist nur ein Trigger. Die Arbeit selbst ist ein normaler Claude-Agent: ein Prompt, ein paar Tools und ein Modellaufruf. Neu ist, dass *niemand zusieht, während ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → läuft*. Das ändert, wie Sie ihn designen.
Im Chatfenster sind Sie das Guardrail. Sie sehen eine schlechte Antwort und lassen sie neu laufen. Eine unbeaufsichtigte PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → hat keinen Menschen in diesem Loop, also müssen die Guardrails in die PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → selbst geschrieben werden. Behalten Sie das im Kopf, es bestimmt jede Designentscheidung unten.
Der konkrete Build: ein Montags-Competitive-Brief
Das ist das Ziel. Jeden Montag um 7 Uhr:
1. Zieht Claude aktuelle News und Pricing-Seiten von drei Wettbewerbern.
2. Vergleicht sie mit dem Brief der letzten Woche.
3. Schreibt ein einseitiges Brief, das hervorhebt, was sich verändert hat.
4. Mailt es dem Team, aber nur nachdem ein Kosten- und Sanity-Check bestanden ist.
Schritt 1: Die Aufgabe einmal von Hand zum Laufen bringen
Automatisieren Sie nie etwas, das Sie nicht vorher manuell ausgeführt haben. Bauen Sie es als Claude Code-Session oder als Project, bis das Ergebnis wirklich gut ist. Das ist Ihre Spezifikation.
Halten Sie die funktionierenden Anweisungen als wiederverwendbares Asset fest. Ein Skill ist ein gebündeltes Set aus Anweisungen und Ressourcen, das Claude bei Bedarf lädt, etwa ein Playbook für Wettbewerbsanalyse mit Ihrer Brief-Vorlage, Tonalitätsregeln und Quellenliste. Ein Skill macht dasselbe Verhalten portabel, von Ihrer Desktop-Session in die automatisierte.
Schritt 2: Die Engine wählen
Für einen geplanten Job ist das Claude Agent SDK (früher Claude Code SDK) das richtige Werkzeug. Es gibt Ihnen den Agent Loop von Claude Code (Planung, Tool-Calls, Datei-Edits) als programmierbare Library, sodass sich Ihr geplanter Lauf wie die interaktive Session verhält, die Sie bereits getunt haben.
Hier der Kern des Jobs. ErErThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → ist absichtlich klein: die Intelligenz liegt im Prompt und im Skill, nicht im Python.
import os
from claude_agent_sdk import query, ClaudeAgentOptions
async def generate_brief() -> str:
options = ClaudeAgentOptions(
system_prompt="You are a competitive intelligence analyst. "
"Use the competitive-brief skill. Be concise and cite sources.",
allowed_tools=["WebFetch", "Read", "Write"],
permission_mode="acceptEdits",
max_turns=20,
)
prompt = (
"Generate this week's competitive brief comparing Acme, Globex, and Initech. "
"Compare against last_week.md. Output a one-page brief to brief.md. "
"Flag only what materially changed."
)
result = []
async for message in query(prompt=prompt, options=options):
result.append(message)
return open("brief.md").read()Zwei Dinge fallen auf. allowed_tools ist eine Whitelist: der Agent darf Webseiten abrufen sowie Dateien lesen und schreiben, und sonst nichts. max_turns begrenzt, wie lange der Agent Loop laufen kann. Beides sind Guardrails, und wir fangen gerade erst an.
Schritt 3: Planen
Auf Ihrer eigenen Maschine oder Ihrem Server reicht cron. Ein Crontab-Eintrag besteht aus fünf Zeitfeldern plus einem Befehl. Das hier läuft jeden Montag um 7 Uhr:
# m h dom mon dow command
0 7 * * 1 cd /opt/briefs && /usr/bin/python run_brief.py >> brief.log 2>&1Die 1 im fünften Feld ist Montag. Die Umleitung am Ende hält ein Log, das Sie beim ersten Mal brauchen, wenn um 7 Uhr etwas kaputtgeht, während Sie schlafen.
Cron ist gut für einen persönlichen Server, aber es stirbt, wenn Ihr Laptop in den Ruhezustand geht, und es hat keinen Audit Trail jenseits einer Textdatei. Für alles, worauf ein Team angewiesen ist, gehen Sie zu CI.
Schritt 4: Zu GitHub Actions hochstufen
GitHub Actions führt Ihren Job zeitgesteuert mit derselben cron-Syntax aus, aber in einem sauberen Cloud-Container mit Logs, Secrets-Management und Historie. Die offizielle Claude GitHub Integration ist dafür gebaut.
name: weekly-competitive-brief
on:
schedule:
- cron: "0 7 * * 1" # Mondays 07:00 UTC
workflow_dispatch: # lets you trigger a manual run too
jobs:
brief:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install claude-agent-sdk
- name: Generate brief
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: python run_brief.pyIhr APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →-Key liegt in den verschlüsselten Secrets von GitHub, nie im Code. workflow_dispatch ist eine kleine, aber wichtige Ergänzung: damit kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Sie die PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → bei Bedarf zum Testen starten, statt auf den Montag zu warten.
Die Guardrails, die es sicher machen
Das ist der Teil, den die meisten überspringen, und der Teil, der zählt. Ein unbeaufsichtigter Agent mit einer Kreditkarte und einem E-Mail-Button ist ein Risiko, solange Sie ihn nicht einschränken.
Kostengrenzen
Setzen Sie ein hartes Budget auf Account-Ebene in der Anthropic Console, mit Usage Limits und Spend Alerts auf dem APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →-Key, den diese PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → nutzt. Geben Sie der Automatisierung ihren eigenen Key, damit ein aus dem Ruder gelaufener Loop nicht Ihr gesamtes Budget leersaugt. Die max_turns-Grenze im SDK ist Ihre zweite Schicht: sie begrenzt einen einzelnen Lauf, selbst wenn der Prompt den Agent im Kreis schickt.
Wählen Sie außerdem das passende Modell für die Aufgabe. Ein wöchentliches Brief braucht nicht für jede Teilaufgabe Ihr teuerstes Modell. Günstigere Modelle für Abrufen und Zusammenfassen, ein stärkeres für die finale Synthese, das hält die Kosten vorhersehbar.
Ein Review-Schritt vor allem Unumkehrbaren
Eine E-Mail zu senden ist unumkehrbar. Teilen Sie die PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → also: generate läuft unbeaufsichtigt, aber send wartet auf ein menschliches Nicken, mindestens so lange, bis Sie ihr vertrauen.
Das saubere Muster in GitHub Actions: das Draft-Brief als Output ausgeben und vor dem Send-Schritt eine manuelle Freigabe verlangen (eine Environment Protection Rule). Sie bekommen die E-Mail automatisch entworfen und ein „ship it“ mit einem Klick.
Wissenscheck
1. Was ändert sich laut der Lektion grundlegend, wenn eine Claude-Aufgabe zeitgesteuert läuft und niemand zusieht?
2. Was ist MCP (das Model Context Protocol) laut der Lektion?
3. Warum bestehen die Lektion darauf, eine Aufgabe vor der Automatisierung manuell auszuführen?
4. Wählen Sie ALLE Aussagen, die die drei Sprossen der Automatisierungsleiter korrekt beschreiben.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Punkte, die echte Schritte der Montags-Competitive-Brief-Automatisierung sind.
Wählen Sie alle richtigen Antworten aus.
Den Output validieren, nicht nur den Lauf
Ein Job, der „erfolgreich“ ist, kann trotzdem Müll produzieren. Fügen Sie vor dem Send-Schritt ein günstiges Validierungs-Gate ein: existiert brief.md, liegt es unter einer plausiblen Länge, enthält es die drei Wettbewerbsnamen, zitiert es mindestens eine Quellen-URL? Fällt einer der Checks durch, stoppen und alarmieren, statt Unsinn zu mailen.
def validate(brief: str) -> None:
assert 500 < len(brief) < 8000, "brief length looks wrong"
for name in ("Acme", "Globex", "Initech"):
assert name in brief, f"missing competitor: {name}"
assert "http" in brief, "no sources cited"Das ist absichtlich dummer Code. Deterministische Checks fangen die Fehler, die ein modellbasiertes Review wegargumentieren kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnte.
Tools eng zuschneiden
Beachten Sie: wir haben dem Agent im SDK-Call nie ein „E-Mail senden“-Tool gegeben. Der Versand passiert in einem separaten, dummen Skript *nach* der Freigabe. Halten Sie destruktive oder nach außen wirkende Aktionen aus der Tool-Liste des Agents heraus und in einfachem Code, den Sie kontrollieren. Der Agent schreibt eine Datei; Ihre PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → entscheidet, was damit passiert.
Building Agents with the Claude Agent SDK
Wo die No-Code-Sprosse hineinpasst
Sie brauchen nicht immer ein Repo. Wenn Ihre wiederkehrende Aufgabe „fasse die Linear-Issues dieser Woche in einem Slack-Post zusammen“ ist, reichen vielleicht ein Connector plus ein zeitgesteuerter Trigger in einem Automatisierungstool, ganz ohne Python. Der Connector-Marketplace wächst schnell, prüfen Sie also, ob es für Ihre Datenquelle schon einen gibt, bevor Sie einen eigenen MCP-Server bauen.
Die Entscheidungsregel: bleiben Sie no-code, solange die Aufgabe einfach und der Blast Radius klein ist. Wechseln Sie zu SDK und CI, wenn Sie Versionskontrolle, echtes Logging, Kostenkontrolle und Review-Gates brauchen. Das Montags-Brief liegt genau auf der Grenze, deshalb ist es ein gutes Lehrbeispiel.
Idempotenz: die stille Anforderung
Ein letztes Konzept, das ein Spielzeug von einer PipelinePipelineAll active sales opportunities across the stages of the sales process, together with their combined potential value and probability of closing.Vollständige Definition ansehen → trennt. Idempotenz heißt: der Job zweimal ausgeführt produziert ein korrektes Ergebnis, nicht zwei Bescherungen. Wenn GitHub einen Lauf wiederholt oder Sie ihn manuell zum Testen auslösen, wollen Sie keine zwei E-Mails und keine korrumpierte Historien-Datei.
Machen Sie den Lauf wiederholbar: schreiben Sie in eine datierte Datei (brief-2026-01-19.md), prüfen Sie vor dem Versand, ob das Brief dieser Woche schon existiert, und behandeln Sie „schon erledigt“ als Erfolg. Billig hinzuzufügen, schmerzhaft nachzurüsten, nachdem Sie zwei Briefs und ein verwirrtes Team hatten.
Key Takeaways
- Erst von Hand zum Laufen bringen, dann planen. Ihre getunte Claude Code- oder Project-Session ist die Spezifikation; verpacken Sie das funktionierende Verhalten als Skill, damit es sauber in den automatisierten Lauf übergeht.
- Passen Sie die Sprosse an die Risiken an. Connectors und die App für einfache Aufgaben mit geringem Risiko; das Claude Agent SDK plus cron für persönliche Jobs; GitHub Actions, wenn ein Team auf Logs, Secrets und Historie angewiesen ist.
- Schreiben Sie die Guardrails in die Pipeline, weil kein Mensch zusieht. Nutzen Sie einen dedizierten APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →-Key mit Usage Limits, begrenzen Sie
max_turns, setzen Sie Tools auf eine Whitelist und führen Sie vor jeder unumkehrbaren Aktion eine deterministische Validierung aus. - Halten Sie unumkehrbare Aktionen aus dem Agent heraus. Claude erzeugt die Datei; einfacher Code, abgesichert durch eine menschliche Freigabe, übernimmt den Versand.
- Machen Sie jeden Lauf idempotent. Datierte Outputs und „schon erledigt“-Checks sorgen dafür, dass ein Retry oder ein Testlauf niemals doppelte E-Mails oder korrupte Zustände produziert.
Was Sie aus dieser Lektion umsetzen
Diese Maßnahmen sind im Playbook der Rolle zusammengefasst.
- Jeden geplanten Run idempotent machen: datierte Outputs und Done-Checks