Installieren Sie die belt CLI-Skill:
npx skills add belt-sh/cli
KI-Automations-Workflows
Erstellen Sie automatisierte KI-Workflows über die inference.sh CLI.

Schnellstart
Erfordert die inference.sh CLI (
belt). Installationsanleitung
belt login
# Einfache Automatisierung: Tägliches Bild generieren
belt app run falai/flux-dev --input '{
"prompt": "Inspirierender Zitat-Hintergrund, minimalistisches Design, Datum: '"$(date +%Y-%m-%d)"'"
}'
Automatisierungsmuster
Muster 1: Batch-Verarbeitung
Verarbeiten Sie mehrere Elemente mit demselben Workflow.
#!/bin/bash
# batch_images.sh - Bilder für mehrere Prompts generieren
PROMPTS=(
"Gebirgslandschaft bei Sonnenaufgang"
"Meereswellen bei Sonnenuntergang"
"Waldpfad im Herbst"
"Wüstendünen bei Nacht"
)
for prompt in "${PROMPTS[@]}"; do
echo "Generiere: $prompt"
belt app run falai/flux-dev --input "{
\"prompt\": \"$prompt, professionelle Fotografie, 4K\"
}" > "output_${prompt// /_}.json"
sleep 2 # Ratenbegrenzung
done
Muster 2: Sequentielle Pipeline
Verkettung mehrerer KI-Operationen.
#!/bin/bash
# content_pipeline.sh - Vollständige Content-Erstellungs-Pipeline
THEMA="KI im Gesundheitswesen"
# Schritt 1: Recherche
echo "Recherchiere..."
RECHERCHE=$(belt app run tavily/search-assistant --input "{
\"query\": \"$THEMA neueste Entwicklungen\"
}")
# Schritt 2: Artikel schreiben
echo "Schreibe Artikel..."
ARTIKEL=$(belt app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Schreibe einen 500-Wörter-Blogbeitrag über $THEMA basierend auf: $RECHERCHE\"
}")
# Schritt 3: Bild generieren
echo "Generiere Bild..."
BILD=$(belt app run falai/flux-dev --input "{
\"prompt\": \"Blog-Header-Bild für Artikel über $THEMA, modern, professionell\"
}")
# Schritt 4: Social-Media-Beitrag erstellen
echo "Erstelle Social-Media-Beitrag..."
SOCIAL=$(belt app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Schreibe einen Twitter-Thread (5 Tweets) mit Zusammenfassung: $ARTIKEL\"
}")
echo "Pipeline abgeschlossen!"
Muster 3: Parallele Verarbeitung
Führen Sie mehrere Operationen gleichzeitig aus.
#!/bin/bash
# parallel_generation.sh - Mehrere Assets parallel generieren
# Alle Jobs im Hintergrund starten
belt app run falai/flux-dev --input '{"prompt": "Hero-Bild..."}' > hero.json &
PID1=$!
belt app run falai/flux-dev --input '{"prompt": "Feature-Bild 1..."}' > feature1.json &
PID2=$!
belt app run falai/flux-dev --input '{"prompt": "Feature-Bild 2..."}' > feature2.json &
PID3=$!
# Auf alle warten
wait $PID1 $PID2 $PID3
echo "Alle Bilder generiert!"
Muster 4: Bedingter Workflow
Verzweigung basierend auf Ergebnissen.
#!/bin/bash
# conditional_workflow.sh - Verarbeitung basierend auf Inhaltsanalyse
EINGABETEXT="$1"
# Inhalt analysieren
ANALYSE=$(belt app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Klassifiziere diesen Text als: positiv, negativ oder neutral. Gib nur die Klassifikation zurück.\n\n$EINGABETEXT\"
}")
# Verzweigung basierend auf Ergebnis
case "$ANALYSE" in
*positiv*)
echo "Generiere Feierbild..."
belt app run falai/flux-dev --input '{"prompt": "Feier, Erfolg, glücklich"}'
;;
*negativ*)
echo "Generiere unterstützende Nachricht..."
belt app run openrouter/claude-sonnet-45 --input "{
\"prompt\": \"Schreibe eine unterstützende, ermutigende Antwort auf: $EINGABETEXT\"
}"
;;
*)
echo "Generiere neutrale Bestätigung..."
;;
esac
Muster 5: Wiederholung mit Fallback
Graceful Umgang mit Fehlern.
#!/bin/bash
# retry_workflow.sh - Fehlgeschlagene Operationen wiederholen
mit_wiederholung_generieren() {
local prompt="$1"
local max_versuche=3
local versuch=1
while [ $versuch -le $max_versuche ]; do
echo "Versuch $versuch..."
result=$(belt app run falai/flux-dev --input "{\"prompt\": \"$prompt\"}" 2>&1)
if [ $? -eq 0 ]; then
echo "$result"
return 0
fi
echo "Fehlgeschlagen, erneuter Versuch..."
((versuch++))
sleep $((versuch * 2)) # Exponentielles Backoff
done
# Fallback auf anderes Modell
echo "Fallback auf alternatives Modell..."
belt app run google/imagen-3 --input "{\"prompt\": \"$prompt\"}"
}
mit_wiederholung_generieren "Ein wunderschöner Sonnenuntergang über den Bergen"
Geplante Automatisierung
Cron-Job-Einrichtung
# Crontab bearbeiten
crontab -e
# Tägliche Content-Generierung um 9 Uhr
0 9 * * * /pfad/zu/taeglicher_content.sh >> /var/log/ki-automation.log 2>&1
# Wochenbericht jeden Montag um 8 Uhr
0 8 * * 1 /pfad/zu/wochenbericht.sh >> /var/log/ki-automation.log 2>&1
# Alle 6 Stunden: Social-Media-Inhalte
0 */6 * * * /pfad/zu/social_content.sh >> /var/log/ki-automation.log 2>&1
Tägliches Content-Skript
#!/bin/bash
# taeglicher_content.sh - Täglich um 9 Uhr ausführen
DATUM=$(date +%Y-%m-%d)
AUSGABE_VERZ="$HOME/ausgabe/$DATUM"
mkdir -p "$AUSGABE_VERZ"
# Tägliches Zitat-Bild generieren
belt app run falai/flux-dev --input '{
"prompt": "Motivations-Zitat-Hintergrund, minimalistisch, Morgenstimmung"
}' > "$AUSGABE_VERZ/zitat_bild.json"
# Täglichen Tipp generieren
belt app run openrouter/claude-haiku-45 --input '{
"prompt": "Gib mir einen umsetzbaren Produktivitätstipp für heute. Kurz und prägnant."
}' > "$AUSGABE_VERZ/taeglicher_tipp.json"
# Auf Social Media posten (optional)
# belt app run twitter/post-tweet --input "{...}"
echo "Täglicher Content generiert: $DATUM"
Monitoring und Logging
Logging-Wrapper
#!/bin/bash
# geloggter_workflow.sh - Mit umfassendem Logging
LOG_DATEI="/var/log/ki-workflow-$(date +%Y%m%d).log"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_DATEI"
}
log "Starte Workflow"
# Ausführungszeit tracken
STARTZEIT=$(date +%s)
# Workflow ausführen
log "Generiere Bild..."
ERGEBNIS=$(belt app run falai/flux-dev --input '{"prompt": "test"}' 2>&1)
STATUS=$?
if [ $STATUS -eq 0 ]; then
log "Erfolg: Bild generiert"
else
log "Fehler: $ERGEBNIS"
fi
ENDZEIT=$(date +%s)
DAUER=$((ENDZEIT - STARTZEIT))
log "Abgeschlossen in ${DAUER}s"
Fehlerbenachrichtigung
#!/bin/bash
# ueberwachter_workflow.sh - Mit Fehlerbenachrichtigungen
mit_alert_ausfuehren() {
local ergebnis
ergebnis=$("$@" 2>&1)
local status=$?
if [ $status -ne 0 ]; then
# Alert senden (Webhook, E-Mail, etc.)
curl -X POST "https://ihr-webhook.com/alert" \
-H "Content-Type: application/json" \
-d "{\"error\": \"$ergebnis\", \"command\": \"$*\"}"
fi
echo "$ergebnis"
return $status
}
mit_alert_ausfuehren belt app run falai/flux-dev --input '{"prompt": "test"}'
Python SDK-Automatisierung
#!/usr/bin/env python3
# automatisierung.py - Python-basierter Workflow
import subprocess
import json
from datetime import datetime
from pathlib import Path
def run_infsh(app_id: str, eingabe_daten: dict) -> dict:
"""Führe inference.sh-App aus und gib Ergebnis zurück."""
ergebnis = subprocess.run(
["belt", "app", "run", app_id, "--input", json.dumps(eingabe_daten)],
capture_output=True,
text=True
)
return json.loads(ergebnis.stdout) if ergebnis.returncode == 0 else None
def taegliche_content_pipeline():
"""Generiere täglichen Content."""
datums_str = datetime.now().strftime("%Y-%m-%d")
ausgabe_verz = Path(f"ausgabe/{datums_str}")
ausgabe_verz.mkdir(parents=True, exist_ok=True)
# Bild generieren
bild = run_infsh("falai/flux-dev", {
"prompt": f"Tägliche Inspiration für {datums_str}, schön, aufbauend"
})
(ausgabe_verz / "bild.json").write_text(json.dumps(bild))
# Bildunterschrift generieren
bildunterschrift = run_infsh("openrouter/claude-haiku-45", {
"prompt": "Schreibe eine inspirierende Bildunterschrift für einen täglichen Motivationsbeitrag. 2-3 Sätze."
})
(ausgabe_verz / "bildunterschrift.json").write_text(json.dumps(bildunterschrift))
print(f"Content für {datums_str} generiert")
if __name__ == "__main__":
taegliche_content_pipeline()
Workflow-Vorlagen
Content-Kalender-Automatisierung
#!/bin/bash
# content_kalender.sh - Erzeuge eine Woche Content
THEMEN=("produktivität" "wohlbefinden" "technologie" "kreativität" "führung")
TAGE=("Montag" "Dienstag" "Mittwoch" "Donnerstag" "Freitag")
for i in "${!TAGE[@]}"; do
TAG=${TAGE[$i]}
THEMA=${THEMEN[$i]}
echo "Generiere $TAG-Content über $THEMA..."
# Bild
belt app run falai/flux-dev --input "{
\"prompt\": \"$THEMA-Thema, $TAG-Motivation, Social-Media-Stil\"
}" > "content/${TAG}_bild.json"
# Bildunterschrift
belt app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Schreibe einen $TAG-Motivationsbeitrag über $THEMA. Füge Hashtags hinzu.\"
}" > "content/${TAG}_bildunterschrift.json"
done
Datenverarbeitungs-Pipeline
#!/bin/bash
# datenverarbeitung.sh - Verarbeite und analysiere Datendateien
EINGABE_VERZ="./daten/roh"
AUSGABE_VERZ="./daten/verarbeitet"
for datei in "$EINGABE_VERZ"/*.txt; do
dateiname=$(basename "$datei" .txt)
# Inhalt analysieren
belt app run openrouter/claude-haiku-45 --input "{
\"prompt\": \"Analysiere diese Daten und gib die wichtigsten Erkenntnisse im JSON-Format aus: $(cat $datei)\"
}" > "$AUSGABE_VERZ/${dateiname}_analyse.json"
done
Best Practices
- Ratenbegrenzung - Füge Verzögerungen zwischen API-Aufrufen ein
- Fehlerbehandlung - Prüfe immer Rückgabecodes
- Logging - Protokolliere alle Operationen
- Idempotenz - Gestalte Workflows für sichere Wiederholungen
- Monitoring - Benachrichtige bei Fehlern
- Backups - Speichere Zwischenergebnisse
- Timeouts - Setze angemessene Grenzen
Verwandte Skills
# Content-Pipelines
npx skills add inference-sh/skills@ai-content-pipeline
# RAG-Pipelines
npx skills add inference-sh/skills@ai-rag-pipeline
# Social-Media-Automatisierung
npx skills add inference-sh/skills@ai-social-media-content
# Vollständige Plattform-Skill
npx skills add inference-sh/skills@infsh-cli
Alle Apps durchsuchen: belt app list