Inhalt: Abgrenzung · Sechs Schritte · Minimalrechte · Schema und Breaker · Fehler-Envelope · Störungsdiagnose
Verwandte Orchestrierung: LangGraph-Toolknoten betonen Zustandsgraphen, Checkpoints und Kanten; CrewAI-Gateway-Routing Rollen, Tasks und Routing-Schlüssel; AutoGen-Teams Gruppenchat und Parallelitätsbudget. Strands fokussiert Workflow-Schritte und die Toolkette innerhalb einer Lauf — das Gateway bleibt der gemeinsame Vertrauensrand. Für Schema-Retries und Transportsemantik siehe JSON-Schema-Tool-Retries und PydanticAI mit Gateway-Schema; für LiteLLM-Aggregation LiteLLM-Proxy-Routing. Öffentliche Einstiege ohne Login: Startseite, Hilfezentrum, Preise, Kauf und Miete.
Abgrenzung: Strands vs. LangGraph, CrewAI, AutoGen
Strands modelliert Reihenfolge, Kompensation und Toolaufrufe als erste Bürger — nicht den expliziten gerichteten Graphen wie LangGraph, nicht die Rollenmatrix wie CrewAI und nicht die Konversationsrunden wie AutoGen. Trotzdem gilt: jede tool_calls-Payload aus dem Modell muss zuerst die erlaubte Namensliste passieren, dann Entwurfs-JSON gegen Schema, erst danach lokale Skills oder HTTP-Upstreams. So vergrößern weder Framework-Upgrades noch alte Bearer heimlich die Angriffsfläche.
Praktisch heiß das: Wenn Sie bereits LangGraph für Checkpoint-Wiederholungen oder CrewAI für Rollenrouting betreiben, bleibt OpenClaw die gemeinsame Schicht für Namen, Verträge und Breaker — Strands ersetzt weder den Graphen noch die Crew, sondern ergänzt eine schrittweise Workflow-Sicht, in der jedes Blatt-Tool dieselbe Gateway-Politik sieht wie ein Graph-Knoten oder ein Agentenaufruf.
Reproduzierbarkeit: Jede Abnahme sollte Build-IDs von Gateway, strands-Paket und Python-Minor notieren; ein zweiter Lauf auf frischem venv mit identischen Umgebungsvariablen muss dieselbe Reihenfolge von Gateway-Events erzeugen. Ohne diese Disziplin vermischen sich „funktioniert auf meinem Laptop“ und produktionsnahe Remote-Macs.
Sechs reproduzierbare Schritte (Remote-Mac)
1 Laufzeit fixieren. Node.js 22 LTS und gesperrte [email protected] installieren; openclaw doctor --json bis alles grün; Konfigurationswurzel chmod 700, Bearer-Datei chmod 600, JSONL auf schnellem SSD-Pfad.
2 Loopback. Gateway nur an 127.0.0.1:${PORT}; vom Laptop z. B. ssh -R 0.0.0.0:8742:127.0.0.1:8742 user@remote. Ohne mTLS kein öffentliches 0.0.0.0-Bind am Gateway.
3 Minimal-Bearer. Im Dashboard einen Bucket „Strands-Workflow“: Scopes nur tools.invoke plus nötige Skills, kurze TTL, Widerruf möglich; Staging und Produktion getrennte Tokens, damit kein Token über Umgebungen wandert.
4 Strands auf Gateway zeigen. OpenAI-kompatible base_url auf http://127.0.0.1:${PORT}/v1; Modellalias wie im Gateway-Routing. Im Workflow registrierte Toolnamen müssen exakte echte Teilmenge der Whitelist sein (Groß-/Kleinschreibung identisch).
5 Schema und Timeouts. Eine kanonische JSON-Schema-Datei pro Toolargumente (optional strukturierte Modellausgabe); identisch auf das Gateway spiegeln und vor Weiterleitung validieren. Verbindungs-Timeout wenige Sekunden; Gateway-Wanduhr mindestens fünf Sekunden unter dem SDK-Gesamt-Timeout, damit Halboffen-Proben nicht gegeneinander laufen.
6 Breaker und Rückmeldung. Fortlaufende 422-Validierungsfehler, Lesetimeouts und upstream-5xx in ein gleitendes Fenster legen; nach Cooldown halboffen wenige Proben erlauben. Catch-Knoten mappen 429, 503, breaker_open und 422 auf ein einheitliches Envelope mit stage, code, einer Zeile hint, correlation_id, tool_name in Schrittstatus und JSONL — ohne Nutzerrohtext oder Schlüsselfragmente.
# Platzhalter — Port und doctor anpassen; Secrets nicht committen
export OPENAI_API_KEY="${OPENCLAW_BEARER}"
export OPENAI_BASE_URL="http://127.0.0.1:8742/v1"
export STRANDS_TOOL_ALLOWLIST="read_repo,run_unit_tests,post_review_comment"
export OPENCLAW_CONNECT_TIMEOUT_S=8
export OPENCLAW_GATEWAY_WALL_S=50
export OPENCLAW_SDK_TOTAL_TIMEOUT_S=58
export OPENCLAW_BREAKER_THRESHOLD=4
export OPENCLAW_BREAKER_COOLDOWN_S=40Minimalrechte (Kurzmatrix)
| Objekt | Empfehlung |
|---|---|
| Token | Pro Umgebung eigener Bucket; keine Wildcards in Toolnamen; nach Widerruf sofort aus Strands-Secret-Injection entfernen. |
| Toolfläche | In Produktion keine interaktive Shell, keine beliebigen Schreibpfade; Schreibpfade mit Idempotenz-Keys und Temp-Quota. |
| Egress | Standard verweigern; nur registrierte Upstreams am Gateway; Firewall-Änderungen auf dem Remote-Mac mit Ticket. |
JSON Schema und Breaker gemeinsam betreiben
Validierungsfehler sollten pointer und keyword tragen, damit das Modell in der nächsten Runde gezielt korrigiert. Doppelte exponentielle Backoffs vermeiden: transientes Netz am Gateway mit begrenztem Retry und Jitter; der Workflow wiederholt nur geschäftlich kompensierbare Schritte. Auf Apple Silicon mit Unified Memory etwa 20 % Puffer für Tokenizer- und Validator-Threadpools freihalten, wenn Vektor- oder Audiojobs auf demselben Host laufen — siehe auch OpenTelemetry-GenAI-Observability und Multi-Modell-Routing-Kosten.
Fehlerzusammenfassung ins Workflow-Ledger
Die correlation_id aus dem Gateway-Access-Log übernehmen, damit Postmortems PR-Beschreibungen und Metriken verknüpfen. Für IDE-nahe Sandboxes und Health-Sonden ergänzend IDE-Bridge und Health-Probes. Wer strukturierte Antworten ohne PydanticAI erzwingt, kann Instructor und Gateway-JSON-Schema parallel lesen.
Störungsdiagnose
- 401/403: Bearer abgelaufen oder Scope ohne
tools.invoke; prüfen, ob ein zweiter Prozess Staging-Token gegen Produktionsroute setzt. - 422-Spitzen: Schema driftet gegen Code-Enums; in CI Schema-Hash snapshotten und mit Gateway-Artefakt diffen.
- Breaker dauerhaft offen: Schwelle zu streng oder echter Downstream-Ausfall; JSONL-Feld
breaker_statelesen, Einzelprobe im Halboffen, dann Last erhöhen. - Workflow hängt: SDK-Gesamt-Timeout kleiner oder gleich Gateway-Wanduhr erzeugt gegenseitiges Warten; Schicht-Timeouts im Runbook an
openclaw doctorkoppeln. - Toolname „fast richtig“: Modell liefert z. B.
readRepostattread_repo— Whitelist ist case-sensitiv; entweder Alias im Gateway pflegen oder Prompt/Beispiele an exakte Namen koppeln. - Doctor grün, Strands rot: Interaktive Shell lädt andere
OPENAI_BASE_URLals launchd — Unit-Datei und Terminal mitprintenv | sortabgleichen; Reverse-Tunnel nur von einer SSH-Sitzung halten, damit Port nicht springt.
Kurz: Strands steuert wie Schritte laufen; OpenClaw entscheidet am Rand, was erlaubt ist. Whitelist, Schema, Timeout-Breaker und einheitliches Fehler-Envelope machen den Betrieb auf einem Remote-Mac auditierbar und reproduzierbar.